Quaternion Struktura
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Struktura, která představuje otočení ve třech rozměrech.
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
- Dědičnost
- Atributy
- Implementuje
Příklady
<!-- 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
Poznámky
Quaternions umožňují interpolovat mezi transformacemi otočení použitými u objektu, což usnadňuje výpočet hladkých animací otočení. Quaternion představuje osu otáčení a otočení kolem této osy. Je možné jednotlivě definovat osu a úhel otočení počáteční a koncové pozice otočného objektu, ale střední pozice tohoto objektu během animace jsou výpočetně nejisté. Určením kvazternionu, který představuje původní orientaci 3D objektu a jednoho, který představuje jeho cílovou orientaci, můžete mezi těmito orientacemi hladce interpolovat.
V JAZYCE XAML může oddělovač mezi hodnotami znaku Quaternion být čárkou nebo mezerou.
Některé jazykové verze můžou místo znaku tečky použít znak čárky jako oddělovač desetinných míst. Zpracování XAML pro invariantní jazykovou verzi je ve většině implementací procesoru XAML ve výchozím nastavení en-US a očekává, že tečka bude oddělovačem desetinných míst. Pokud zadáte Quaternion v XAML znak čárky, měli byste se vyhnout použití znaku čárky jako oddělovače desetinných míst, protože to bude kolidovat s převodem Quaternion typu řetězce hodnoty atributu na jeho součásti.
Použití atributu XAML
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
Hodnoty XAML
x
Komponenta X této Quaternion struktury.
Y
Komponenta Y této Quaternion struktury.
Z
Komponenta Z této Quaternion struktury.
w
Komponenta W této Quaternion struktury.
Konstruktory
Quaternion(Double, Double, Double, Double) |
Inicializuje novou instanci Quaternion struktury. |
Quaternion(Vector3D, Double) |
Inicializuje novou instanci Quaternion struktury. |
Vlastnosti
Angle |
Získá kvazternionův úhel ve stupních. |
Axis |
Získá kvazternionovou osu. |
Identity |
Získá kvazternii identity. |
IsIdentity |
Získá hodnotu, která označuje, zda zadaný quaternion je Identity kvazternion. |
IsNormalized |
Získá hodnotu, která označuje, zda je quaternion normalizován. |
W |
Získá W součást kvarternionu. |
X |
Získá X komponentu quaternionu. |
Y |
Získá komponentu Y quaternionu. |
Z |
Získá Z komponentu kvazternionu. |
Metody
Add(Quaternion, Quaternion) |
Přidá zadanou kvaternionu. |
Conjugate() |
Nahradí kvaternion jeho konjugate. |
Equals(Object) |
Porovná dvě Quaternion instance rovnosti. |
Equals(Quaternion) |
Porovná dvě Quaternion instance rovnosti. |
Equals(Quaternion, Quaternion) |
Porovná dvě Quaternion instance rovnosti. |
GetHashCode() |
Vrátí kód hash pro Quaternionhodnotu . |
Invert() |
Nahradí zadanou kvazternion inverzní hodnotou. |
Multiply(Quaternion, Quaternion) |
Vynásobí zadané Quaternion hodnoty. |
Normalize() |
Vrátí normalizovanou kvaternii. |
Parse(String) |
Převede řetězcovou reprezentaci objektu Quaternion na ekvivalentní Quaternion strukturu. |
Slerp(Quaternion, Quaternion, Double) |
Interpoluje mezi dvěma orientacemi pomocí sférické lineární interpolace. |
Slerp(Quaternion, Quaternion, Double, Boolean) |
Interpoluje mezi orientacemi, reprezentovanými jako Quaternion strukturami, pomocí sférické lineární interpolace. |
Subtract(Quaternion, Quaternion) |
Odečte quaternion od jiného. |
ToString() |
Vytvoří řetězcovou reprezentaci objektu. |
ToString(IFormatProvider) |
Vytvoří řetězcovou reprezentaci objektu. |
Operátory
Addition(Quaternion, Quaternion) |
Přidá zadané Quaternion hodnoty. |
Equality(Quaternion, Quaternion) |
Porovná dvě Quaternion instance pro přesnou rovnost. |
Inequality(Quaternion, Quaternion) |
Porovná dvě Quaternion instance přesné nerovnosti. |
Multiply(Quaternion, Quaternion) |
Vynásobí zadaný kvazternion jiným. |
Subtraction(Quaternion, Quaternion) |
Odečte zadanou kvazternii od jiného. |
Explicitní implementace rozhraní
IFormattable.ToString(String, IFormatProvider) |
Tento člen podporuje infrastrukturu Windows Presentation Foundation (WPF) a není určena k použití přímo z vašeho kódu. Popis tohoto člena najdete v tématu ToString(String, IFormatProvider). |