Quaternion Struktura
Definicja
Ważne
Niektóre informacje odnoszą się do produktu w wersji wstępnej, który może zostać znacząco zmodyfikowany przed wydaniem. Firma Microsoft nie udziela żadnych gwarancji, jawnych lub domniemanych, w odniesieniu do informacji podanych w tym miejscu.
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
- 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). |