Quaternion 結構
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
以三維表示旋轉的結構。
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
- 繼承
- 屬性
- 實作
範例
<!-- 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
備註
四元數可讓您在套用至物件的旋轉轉換之間插補,以便更輕鬆地計算旋轉的平滑動畫。 四元數代表旋轉軸,以及繞該軸旋轉的旋轉。 您可以個別定義旋轉物件之開始和結束位置的座標軸和角度,但動畫期間該物件的中繼位置在計算上不確定。 藉由判斷代表 3D 物件原始方向的四元數,以及代表其目的地方向的四元數,您可以在這些方向之間順暢地插補。
在 XAML 中,的值 Quaternion 之間的分隔符號可以是逗號或空格。
某些文化特性可能會使用逗號字元做為小數分隔符號,而不是句號字元。 在大部分 XAML 處理器實作中,非變異文化特性的 XAML 處理預設為 en-US,而且預期期間為小數分隔符號。 在 XAML 中指定 Quaternion 時,您應該避免使用逗號字元做為十進位分隔符號,因為這將會與屬性值的 Quaternion 字串類型轉換成其元件發生衝突。
XAML Attribute Usage
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
XAML 值
x
這個 Quaternion 結構的 X 元件。
y
這個 Quaternion 結構的 Y 元件。
z
這個 Quaternion 結構的 Z 元件。
w
這個 Quaternion 結構的 W 元件。
建構函式
Quaternion(Double, Double, Double, Double) |
初始化 Quaternion 結構的新執行個體。 |
Quaternion(Vector3D, Double) |
初始化 Quaternion 結構的新執行個體。 |
屬性
Angle |
取得四元數的角度,以度數為單位。 |
Axis |
取得四元數的軸。 |
Identity |
取得單位四元數。 |
IsIdentity |
取得值,這個值表示指定的四元數是否為 Identity 四元數。 |
IsNormalized |
取得值,這個值表示四元數是否已標準化。 |
W |
取得四元數的 W 元件。 |
X |
取得四元數的 X 元件。 |
Y |
取得四元數的 Y 元件。 |
Z |
取得四元數的 Z 元件。 |
方法
Add(Quaternion, Quaternion) |
將指定的四元數相加。 |
Conjugate() |
將四元數取代成它的共軛。 |
Equals(Object) |
比較兩個 Quaternion 執行個體是否相等。 |
Equals(Quaternion) |
比較兩個 Quaternion 執行個體是否相等。 |
Equals(Quaternion, Quaternion) |
比較兩個 Quaternion 執行個體是否相等。 |
GetHashCode() |
傳回 Quaternion 的雜湊程式碼。 |
Invert() |
將指定的四元數反轉。 |
Multiply(Quaternion, Quaternion) |
乘以指定的 Quaternion 值。 |
Normalize() |
傳回標準化的四元數。 |
Parse(String) |
將 Quaternion 的字串表示轉換成對等的 Quaternion 結構。 |
Slerp(Quaternion, Quaternion, Double) |
使用球面線性插補,在兩個四元數間進行插補。 |
Slerp(Quaternion, Quaternion, Double, Boolean) |
使用球面線性插補,在表示為 Quaternion 的方向間進行插補。 |
Subtract(Quaternion, Quaternion) |
從另一個四元數減去四元數。 |
ToString() |
建立物件的字串表示。 |
ToString(IFormatProvider) |
建立物件的字串表示。 |
運算子
Addition(Quaternion, Quaternion) |
加入指定的 Quaternion 值。 |
Equality(Quaternion, Quaternion) |
比較兩個 Quaternion 執行個體是否完全相等。 |
Inequality(Quaternion, Quaternion) |
比較兩個 Quaternion 執行個體是否完全不相等。 |
Multiply(Quaternion, Quaternion) |
將指定的四元數乘以另一個四元數。 |
Subtraction(Quaternion, Quaternion) |
從另一個四元數減去指定的四元數。 |
明確介面實作
IFormattable.ToString(String, IFormatProvider) |
此成員支援Windows Presentation Foundation (WPF) 基礎結構,而且不適合直接從您的程式碼使用。 如需這個成員的說明,請參閱 ToString(String, IFormatProvider)。 |