# Quaternion Struktur

## Definition

Eine Struktur, die eine Drehung in drei Dimensionen darstellt.Structure that represents a rotation in three dimensions.

``public value class 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]
public struct Quaternion : IFormattable``````
``````type Quaternion = struct
interface IFormattable``````
``````Public Structure Quaternion
Implements IFormattable``````
Vererbung
Quaternion
Attribute
Implementiert

## Beispiele

``````<!-- Trigger the rotation animation when the 3D object loads. -->
<Viewport3D.Triggers>
<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

Mit Quaternionen können Sie zwischen Rotations Transformationen, die auf ein Objekt angewendet werden, interpolieren und so das Berechnen von rotanimationen vereinfachen.Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. Eine Quaternion stellt eine Achse der Drehung und eine Drehung um diese Achse dar.A quaternion represents an axis of rotation and a rotation around that axis. Es ist möglich, die Achse und den Winkel der Drehung der Anfangs-und Endposition eines gedrehten Objekts einzeln zu definieren, aber die zwischen Positionen dieses Objekts während einer Animation sind rechnerisch unsicher.It's possible to individually define the axis and angle of rotation of the starting and ending positions of a rotated object ,but the intermediate positions of that object during an animation are computationally uncertain. Indem Sie eine Quaternion ermitteln, die die ursprüngliche Ausrichtung eines 3D-Objekts darstellt, und eine Quaternion, die die Ziel Ausrichtung darstellt, können Sie problemlos zwischen diesen Ausrichtungen interpolieren.By determining a quaternion that represents the original orientation of a 3-D object and one that represents its destination orientation, you can smoothly interpolate between those orientations.

In XAML kann das Trennzeichen zwischen den Werten eines Quaternion entweder ein Komma oder ein Leerzeichen sein.In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

In einigen Kulturen kann das Komma Zeichen anstelle des Punkt Zeichens als Dezimaltrennzeichen verwendet werden.Some cultures might use the comma character as the decimal delimiter instead of the period character. Die XAML-Verarbeitung für die invariante Kultur wird standardmäßig in den meisten XAML-Prozessor Implementierungen als "en-US" verwendet und erwartet das Dezimaltrennzeichen.XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. Sie sollten das Komma Zeichen nicht als Dezimaltrennzeichen verwenden, wenn Sie eine Quaternion in XAML angeben, da dies mit der Konvertierung des Zeichen folgen Typs eines Quaternion Attribut Werts in seine Komponenten in Konflikt steht.You should avoid using the comma character as the decimal delimiter if specifying a Quaternion in XAML, because that will clash with the string type conversion of a Quaternion attribute value into its components.

### Verwendung von XAML-AttributenXAML Attribute Usage

``````<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
``````

### XAML-WerteXAML Values

xx
Die X-Komponente dieser Quaternion-Struktur.The X component of this Quaternion structure.

yy
Die Y-Komponente dieser Quaternion-Struktur.The Y component of this Quaternion structure.

zz
Die Z-Komponente dieser Quaternion-Struktur.The Z component of this Quaternion structure.

ww
Die W-Komponente dieser Quaternion-Struktur.The W component of this Quaternion structure.

## Konstruktoren

 Initialisiert eine neue Instanz der Quaternion-Struktur.Initializes a new instance of the Quaternion structure. Initialisiert eine neue Instanz der Quaternion-Struktur.Initializes a new instance of the Quaternion structure.

## Eigenschaften

 Ruft den Winkel der Quaternion in Grad ab.Gets the quaternion's angle, in degrees. Ruft die Achse der Quaternion ab.Gets the quaternion's axis. Ruft die Identity-Quaternion ab.Gets the Identity quaternion. Ruft einen Wert ab, der angibt, ob die angegebene Quaternion eine Identity-Quaternion ist.Gets a value that indicates whether the specified quaternion is an Identity quaternion. Ruft einen Wert ab, der angibt, ob die Quaternion normalisiert ist.Gets a value that indicates whether the quaternion is normalized. Ruft die w-Komponente der Quaternion ab.Gets the W component of the quaternion. Ruft die x-Komponente der Quaternion ab.Gets the X component of the quaternion. Ruft die y-Komponente der Quaternion ab.Gets the Y component of the quaternion. Ruft die z-Komponente der Quaternion ab.Gets the Z component of the quaternion.

## Methoden

 Addiert die angegebenen Quaternionen.Adds the specified quaternions. Ersetzt eine Quaternion durch ihre Konjugation.Replaces a quaternion with its conjugate. Überprüft zwei Quaternion-Instanzen auf Gleichheit.Compares two Quaternion instances for equality. Überprüft zwei Quaternion-Instanzen auf Gleichheit.Compares two Quaternion instances for equality. Überprüft zwei Quaternion-Instanzen auf Gleichheit.Compares two Quaternion instances for equality. Gibt den Hashcode für den Quaternion zurück.Returns the hash code for the Quaternion. Ersetzt die angegebene Quaternion durch ihre Umkehrfunktion.Replaces the specified quaternion with its inverse. Multipliziert die angegebenen Quaternion-Werte.Multiplies the specified Quaternion values. Gibt eine normalisierte Quaternion zurück.Returns a normalized quaternion. Konvertiert eine Zeichenfolgendarstellung eines Quaternion in die entsprechende Quaternion-Struktur.Converts a string representation of a Quaternion into the equivalent Quaternion structure. Interpoliert zwischen zwei Ausrichtungen mit der Methode der sphärischen linearen Interpolation.Interpolates between two orientations using spherical linear interpolation. Interpoliert mithilfe sphärischer linearer Interpolation zwischen Ausrichtungen, die als Quaternion-Strukturen dargestellt werden.Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation. Subtrahiert eine Quaternion von einer anderen Quaternion.Subtracts a Quaternion from another. Erstellt eine Zeichenfolgendarstellung des Objekts.Creates a string representation of the object. Erstellt eine Zeichenfolgendarstellung des Objekts.Creates a string representation of the object.

## Operatoren

 Fügt die angegebenen Quaternion-Werte hinzu.Adds the specified Quaternion values. Überprüft zwei Quaternion-Instanzen auf genaue Gleichheit.Compares two Quaternion instances for exact equality. Überprüft zwei Quaternion-Instanzen auf genaue Ungleichheit.Compares two Quaternion instances for exact inequality. Multipliziert die angegebene Quaternion mit einer anderen Quaternion.Multiplies the specified quaternion by another. Subtrahiert eine angegebene Quaternion von einer anderen Quaternion.Subtracts a specified quaternion from another.

## Explizite Schnittstellenimplementierungen

 Dieser Member unterstützt die Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF)-Infrastruktur und ist nicht für die direkte Verwendung im Code vorgesehen.This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. Eine Beschreibung dieses Members finden Sie unter ToString(String, IFormatProvider).For a description of this member, see ToString(String, IFormatProvider).