Quaternion Struktura

Definicja

Struktura reprezentująca rotację w trzech wymiarach.

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
Dziedziczenie
Quaternion
Atrybuty
Implementuje

Przykłady

<!-- 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

Uwagi

Kwanty umożliwiają interpolację między przekształceniami obrotu zastosowanymi do obiektu, co ułatwia obliczanie płynnych animacji rotacji. Quaternion reprezentuje oś obrotu i rotację wokół tej osi. Istnieje możliwość indywidualnego zdefiniowania osi i kąta obrotu położenia początkowego i końcowego obróconego obiektu, ale pośrednie pozycje tego obiektu podczas animacji są obliczanie niepewne. Określając quaternion, który reprezentuje oryginalną orientację obiektu 3-W i taki, który reprezentuje jego orientację docelową, można płynnie interpolować między tymi orientacjami.

W języku XAML ogranicznik między wartościami elementu Quaternion może być przecinkiem lub spacją.

Niektóre kultury mogą używać znaku przecinka jako ogranicznika dziesiętnego zamiast znaku kropki. Przetwarzanie XAML dla niezmiennych wartości domyślnych kultury en-US w większości implementacji procesora XAML i oczekuje, że okres będzie ogranicznikiem dziesiętnym. Należy unikać używania znaku przecinka jako ogranicznika dziesiętnego, jeśli określono Quaternion znak w języku XAML, ponieważ będzie to starcie z konwersją Quaternion typu ciągu wartości atrybutu na jego składniki.

Użycie atrybutu XAML

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

Wartości XAML

x Składnik X tej Quaternion struktury.

y Składnik Y tej Quaternion struktury.

z Składnik Z tej Quaternion struktury.

W składniku tej Quaternion struktury.

Konstruktory

Nazwa Opis
Quaternion(Double, Double, Double, Double)

Inicjuje nowe wystąpienie Quaternion struktury.

Quaternion(Vector3D, Double)

Inicjuje nowe wystąpienie Quaternion struktury.

Właściwości

Nazwa Opis
Angle

Pobiera kąt kwaternionu w stopniach.

Axis

Pobiera oś kwaternionu.

Identity

Pobiera kwaternion Tożsamość.

IsIdentity

Pobiera wartość wskazującą, czy określona kwaternion jest kwaternionem Identity .

IsNormalized

Pobiera wartość wskazującą, czy kwaternion jest znormalizowany.

W

Pobiera składnik W kwaternionu.

X

Pobiera składnik X kwaternionu.

Y

Pobiera składnik Y kwaternionu.

Z

Pobiera składnik Z kwaternionu.

Metody

Nazwa Opis
Add(Quaternion, Quaternion)

Dodaje określone kwanty.

Conjugate()

Zamienia kwaternion na jego conjugate.

Equals(Object)

Porównuje dwa Quaternion wystąpienia równości.

Equals(Quaternion, Quaternion)

Porównuje dwa Quaternion wystąpienia równości.

Equals(Quaternion)

Porównuje dwa Quaternion wystąpienia równości.

GetHashCode()

Zwraca kod skrótu dla elementu Quaternion.

Invert()

Zamienia określone kwanty na odwrotność.

Multiply(Quaternion, Quaternion)

Mnoży określone Quaternion wartości.

Normalize()

Zwraca znormalizowane kwantyjnie.

Parse(String)

Konwertuje reprezentację ciągu na Quaternion równoważną Quaternion strukturę.

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpolacja między orientacjami, reprezentowana jako Quaternion struktury, przy użyciu interpolacji liniowej spherical.

Slerp(Quaternion, Quaternion, Double)

Interpolacja między dwiema orientacjami przy użyciu interpolacji liniowej spherical.

Subtract(Quaternion, Quaternion)

Odejmuje quaternion z innego.

ToString()

Tworzy reprezentację ciągu obiektu.

ToString(IFormatProvider)

Tworzy reprezentację ciągu obiektu.

Operatory

Nazwa Opis
Addition(Quaternion, Quaternion)

Dodaje określone Quaternion wartości.

Equality(Quaternion, Quaternion)

Porównuje dwa Quaternion wystąpienia pod kątem dokładnej równości.

Inequality(Quaternion, Quaternion)

Porównuje dwa Quaternion wystąpienia pod kątem dokładnej nierówności.

Multiply(Quaternion, Quaternion)

Mnoży określone quaternion przez inną.

Subtraction(Quaternion, Quaternion)

Odejmuje określone trzęsienie z innego.

Jawne implementacje interfejsu

Nazwa Opis
IFormattable.ToString(String, IFormatProvider)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie ma być używany bezpośrednio z kodu. Aby uzyskać opis tego elementu członkowskiego, zobacz ToString(String, IFormatProvider).

Dotyczy