Udostępnij za pośrednictwem


Quaternion Struktura

Definicja

Struktura reprezentująca obrót 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

Kwestiony umożliwiają interpolację między przekształceniami obrotu zastosowanymi do obiektu, co ułatwia obliczanie płynnych animacji rotacji. Kwaternion reprezentuje oś obrotu i obrót wokół tej osi. Istnieje możliwość indywidualnego zdefiniowania osi i kąta obrotu pozycji początkowych i końcowych 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 niezmiennej kultury jest domyślnie ustawione na 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 kolidować z konwersją Quaternion typu ciągu wartości atrybutu do jej składników.

Użycie atrybutu języka 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ładnik W tej Quaternion struktury.

Konstruktory

Quaternion(Double, Double, Double, Double)

Inicjuje Quaternion nowe wystąpienie struktury.

Quaternion(Vector3D, Double)

Inicjuje Quaternion nowe wystąpienie struktury.

Właściwości

Angle

Pobiera kąt kwaternionu w stopniach.

Axis

Pobiera oś kwaternionu.

Identity

Pobiera kwestion tożsamość.

IsIdentity

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

IsNormalized

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

W

Pobiera składnik W kwestionu.

X

Pobiera składnik X kwaternionu.

Y

Pobiera składnik Y kwestionu.

Z

Pobiera składnik Z kwestionu.

Metody

Add(Quaternion, Quaternion)

Dodaje określone kwestiony.

Conjugate()

Zastępuje quaternion jego conjugate.

Equals(Object)

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

Equals(Quaternion)

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

Equals(Quaternion, Quaternion)

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

GetHashCode()

Zwraca kod skrótu dla .Quaternion

Invert()

Zamienia określone kwaternion na odwrotność.

Multiply(Quaternion, Quaternion)

Mnoży określone Quaternion wartości.

Normalize()

Zwraca znormalizowaną kwestionę.

Parse(String)

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

Slerp(Quaternion, Quaternion, Double)

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

Slerp(Quaternion, Quaternion, Double, Boolean)

Interpoluje między orientacjami reprezentowanymi jako Quaternion struktury przy użyciu interpolacji liniowej sferycznej.

Subtract(Quaternion, Quaternion)

Odejmuje quaternion od innego.

ToString()

Tworzy reprezentację ciągu obiektu.

ToString(IFormatProvider)

Tworzy reprezentację ciągu obiektu.

Operatory

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śloną kwestionę przez inną.

Subtraction(Quaternion, Quaternion)

Odejmuje określone kwestion z innego.

Jawne implementacje interfejsu

IFormattable.ToString(String, IFormatProvider)

Ten element członkowski obsługuje infrastrukturę Windows Presentation Foundation (WPF) i nie jest przeznaczony do użycia bezpośrednio z kodu. Aby uzyskać opis tego członka, zobacz ToString(String, IFormatProvider).

Dotyczy