Quaternion Struktur

Definition

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

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

Gilt für: