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.
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
Quaternionen ermöglichen es Ihnen, zwischen Drehungstransformationen zu interpolieren, die auf ein Objekt angewendet werden, wodurch die Berechnung reibungsloser Animationen von Drehungen vereinfacht wird. Eine Quaternion stellt eine Drehachse und eine Drehung um diese Achse dar. Es ist möglich, die Achse und den Drehwinkel 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 und eines, das die Zielausrichtung darstellt, können Sie problemlos zwischen diesen Ausrichtungen interpolieren.
In XAML kann das Trennzeichen zwischen den Werten eines Quaternion Kommas oder leer sein.
Einige Kulturen verwenden das Kommazeichen möglicherweise als Dezimaltrennzeichen anstelle des Punktzeichens. Die XAML-Verarbeitung für invariante Kultur ist standardmäßig in den meisten XAML-Prozessorimplementierungen en-US und erwartet, dass der Zeitraum das Dezimaltrennzeichen ist. Sie sollten das Kommazeichen nicht als Dezimaltrennzeichen verwenden, wenn Sie einen Quaternion XAML-Code angeben, da dies mit der Konvertierung des Zeichenfolgentyps eines Quaternion Attributwerts in die zugehörigen Komponenten kollidiert.
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
| Name | Beschreibung |
|---|---|
| Quaternion(Double, Double, Double, Double) |
Initialisiert eine neue Instanz der Quaternion Struktur. |
| Quaternion(Vector3D, Double) |
Initialisiert eine neue Instanz der Quaternion Struktur. |
Eigenschaften
| Name | Beschreibung |
|---|---|
| Angle |
Ruft den Winkel der Quaternion in Grad ab. |
| Axis |
Ruft die Quaternionsachse ab. |
| Identity |
Ruft das Identitätsquaternion ab. |
| IsIdentity |
Ruft einen Wert ab, der angibt, ob es sich bei der angegebenen Quaternion um eine Identity Quaternion handelt. |
| 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
| Name | Beschreibung |
|---|---|
| Add(Quaternion, Quaternion) |
Fügt die angegebenen Quaternionen hinzu. |
| Conjugate() |
Ersetzt eine Quaternion durch seine Konjugierung. |
| Equals(Object) |
Vergleicht zwei Quaternion Instanzen für Gleichheit. |
| Equals(Quaternion, Quaternion) |
Vergleicht zwei Quaternion Instanzen für Gleichheit. |
| Equals(Quaternion) |
Vergleicht zwei Quaternion Instanzen für Gleichheit. |
| GetHashCode() |
Gibt den Hashcode für die Quaternion. |
| Invert() |
Ersetzt die angegebene Quaternion durch ihre Umkehrung. |
| Multiply(Quaternion, Quaternion) |
Multipliziert die angegebenen Quaternion Werte. |
| Normalize() |
Gibt eine normalisierte Quaternion zurück. |
| Parse(String) |
Konvertiert eine Zeichenfolgendarstellung einer Quaternion in die entsprechende Quaternion Struktur. |
| Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpoliert zwischen Ausrichtungen, dargestellt als Quaternion Strukturen, mithilfe der sphärischen linearen Interpolation. |
| Slerp(Quaternion, Quaternion, Double) |
Interpoliert zwischen zwei Ausrichtungen mithilfe der sphärischen linearen Interpolation. |
| Subtract(Quaternion, Quaternion) |
Subtrahiert eine Quaternion von einem anderen. |
| ToString() |
Erstellt eine Zeichenfolgendarstellung des Objekts. |
| ToString(IFormatProvider) |
Erstellt eine Zeichenfolgendarstellung des Objekts. |
Operatoren
| Name | Beschreibung |
|---|---|
| Addition(Quaternion, Quaternion) |
Fügt die angegebenen Quaternion Werte hinzu. |
| Equality(Quaternion, Quaternion) |
Vergleicht zwei Quaternion Instanzen für die genaue Gleichheit. |
| Inequality(Quaternion, Quaternion) |
Vergleicht zwei Quaternion Instanzen für genaue Ungleichheiten. |
| Multiply(Quaternion, Quaternion) |
Multipliziert die angegebene Quaternion durch eine andere. |
| Subtraction(Quaternion, Quaternion) |
Subtrahiert eine angegebene Quaternion von einer anderen. |
Explizite Schnittstellenimplementierungen
| Name | Beschreibung |
|---|---|
| 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 Mitglieds finden Sie unter ToString(String, IFormatProvider). |