Quaternion Struktur

Definition

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
Quaternion
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).

Gilt für