Quaternion Struktur
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Eine Struktur, die eine Drehung in drei Dimensionen darstellt.
public value class Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
public struct Quaternion : IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
[<System.Serializable>]
type Quaternion = struct
interface IFormattable
[<System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))>]
type Quaternion = struct
interface IFormattable
Public Structure Quaternion
Implements IFormattable
- Vererbung
- Attribute
- Implementiert
Beispiele
<!-- Trigger the rotation animation when the 3D object loads. -->
<Viewport3D.Triggers>
<EventTrigger RoutedEvent="Viewport3D.Loaded">
<BeginStoryboard>
<Storyboard>
<!-- This animation animates the Rotation property of the RotateTransform3D
causing the 3D shape to rotate. -->
<QuaternionAnimation
Storyboard.TargetName="myQuaternionRotation3D"
Storyboard.TargetProperty="Quaternion" From="0,0,1,0" To="0.3, 0.3, 1, 0"
Duration="0:0:2" />
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Viewport3D.Triggers>
//Read new settings
try
{
Double WValue = System.Convert.ToDouble(QuaternionWText.Text);
Double XValue = System.Convert.ToDouble(QuaternionXText.Text);
Double YValue = System.Convert.ToDouble(QuaternionYText.Text);
Double ZValue = System.Convert.ToDouble(QuaternionZText.Text);
endQuaternion = new Quaternion(XValue, YValue, ZValue, WValue);
}
catch
{
MessageBox.Show("Set non-null values for the quaternion.");
}
myQuaternionRotation3D = new QuaternionRotation3D(endQuaternion);
myRotateTransform3D.Rotation = myQuaternionRotation3D;
//update matrix display
qrotationMatrix3D = myRotateTransform3D.Value;
'Read new settings
Try
Dim WValue As Double = Convert.ToDouble(QuaternionWText.Text)
Dim XValue As Double = Convert.ToDouble(QuaternionXText.Text)
Dim YValue As Double = Convert.ToDouble(QuaternionYText.Text)
Dim ZValue As Double = Convert.ToDouble(QuaternionZText.Text)
endQuaternion = New Quaternion(XValue, YValue, ZValue, WValue)
Catch
MessageBox.Show("Set non-null values for the quaternion.")
End Try
myQuaternionRotation3D = New QuaternionRotation3D(endQuaternion)
myRotateTransform3D.Rotation = myQuaternionRotation3D
'update matrix display
qrotationMatrix3D = myRotateTransform3D.Value
Hinweise
Quaternions ermöglichen es Ihnen, zwischen Drehtransformationen zu interpolieren, die auf ein Objekt angewendet werden, wodurch es einfacher wird, reibungslose Animationen von Drehungen zu berechnen. Eine Quaternion stellt eine Drehachse und eine Drehung um diese Achse dar. Es ist möglich, die Achse und den Winkel der Drehung der Anfangs- und Endpositionen eines gedrehten Objekts einzeln zu definieren, aber die Zwischenpositionen dieses Objekts während einer Animation sind rechnerisch unsicher. Durch die Bestimmung einer Quaternion, die die ursprüngliche Ausrichtung eines 3D-Objekts darstellt und eine, die die Zielausrichtung darstellt, können Sie zwischen diesen Ausrichtungen reibungslos interpolieren.
In XAML kann das Trennzeichen zwischen den Werten eines Quaternion Trennzeichens entweder ein Komma oder ein Leerzeichen sein.
Einige Kulturen verwenden möglicherweise das Kommazeichen als Dezimaltrennzeichen anstelle des Punktzeichens. XAML-Verarbeitung für invariante Kulturstandardeinstellungen für die meisten XAML-Prozessorimplementierungen und erwartet, dass der Zeitraum das Dezimaltrennzeichen ist. Sie sollten vermeiden, das Kommazeichen als Dezimaltrennzeichen zu verwenden, wenn Sie einen Quaternion XAML-Code angeben, da dies mit der Konvertierung eines Zeichenfolgentyps eines Quaternion Attributwerts in seine Komponenten zusammentreffen wird.
Verwendung von XAML-Attributen
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
XAML-Werte
x
Die X-Komponente dieser Quaternion-Struktur.
y
Die Y-Komponente dieser Quaternion-Struktur.
z
Die Z-Komponente dieser Quaternion-Struktur.
w
Die W-Komponente dieser Quaternion-Struktur.
Konstruktoren
Quaternion(Double, Double, Double, Double) |
Initialisiert eine neue Instanz der Quaternion-Struktur. |
Quaternion(Vector3D, Double) |
Initialisiert eine neue Instanz der Quaternion-Struktur. |
Eigenschaften
Angle |
Ruft den Winkel der Quaternion in Grad ab. |
Axis |
Ruft die Achse der Quaternion ab. |
Identity |
Ruft die Identity-Quaternion ab. |
IsIdentity |
Ruft einen Wert ab, der angibt, ob die angegebene Quaternion eine Identity-Quaternion ist. |
IsNormalized |
Ruft einen Wert ab, der angibt, ob die Quaternion normalisiert ist. |
W |
Ruft die w-Komponente der Quaternion ab. |
X |
Ruft die x-Komponente der Quaternion ab. |
Y |
Ruft die y-Komponente der Quaternion ab. |
Z |
Ruft die z-Komponente der Quaternion ab. |
Methoden
Add(Quaternion, Quaternion) |
Addiert die angegebenen Quaternionen. |
Conjugate() |
Ersetzt eine Quaternion durch ihre Konjugation. |
Equals(Object) |
Überprüft zwei Quaternion-Instanzen auf Gleichheit. |
Equals(Quaternion) |
Überprüft zwei Quaternion-Instanzen auf Gleichheit. |
Equals(Quaternion, Quaternion) |
Überprüft zwei Quaternion-Instanzen auf Gleichheit. |
GetHashCode() |
Gibt den Hashcode für den Quaternion zurück. |
Invert() |
Ersetzt die angegebene Quaternion durch ihre Umkehrfunktion. |
Multiply(Quaternion, Quaternion) |
Multipliziert die angegebenen Quaternion-Werte. |
Normalize() |
Gibt eine normalisierte Quaternion zurück. |
Parse(String) |
Konvertiert eine Zeichenfolgendarstellung eines Quaternion in die entsprechende Quaternion-Struktur. |
Slerp(Quaternion, Quaternion, Double) |
Interpoliert zwischen zwei Ausrichtungen mit der Methode der sphärischen linearen Interpolation. |
Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpoliert mithilfe sphärischer linearer Interpolation zwischen Ausrichtungen, die als Quaternion-Strukturen dargestellt werden. |
Subtract(Quaternion, Quaternion) |
Subtrahiert eine Quaternion von einer anderen Quaternion. |
ToString() |
Erstellt eine Zeichenfolgendarstellung des Objekts. |
ToString(IFormatProvider) |
Erstellt eine Zeichenfolgendarstellung des Objekts. |
Operatoren
Addition(Quaternion, Quaternion) |
Fügt die angegebenen Quaternion-Werte hinzu. |
Equality(Quaternion, Quaternion) |
Überprüft zwei Quaternion-Instanzen auf genaue Gleichheit. |
Inequality(Quaternion, Quaternion) |
Überprüft zwei Quaternion-Instanzen auf genaue Ungleichheit. |
Multiply(Quaternion, Quaternion) |
Multipliziert die angegebene Quaternion mit einer anderen Quaternion. |
Subtraction(Quaternion, Quaternion) |
Subtrahiert eine angegebene Quaternion von einer anderen Quaternion. |
Explizite Schnittstellenimplementierungen
IFormattable.ToString(String, IFormatProvider) |
Dieses Mitglied unterstützt die Windows Presentation Foundation-Infrastruktur (WPF) und ist nicht für die direkte Verwendung aus Ihrem Code vorgesehen. Eine Beschreibung dieses Elements finden Sie unter ToString(String, IFormatProvider). |