Quaternion 構造体
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
3 次元の回転を表す構造体。
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
注釈
四元数を使用すると、オブジェクトに適用された回転変換間を補間できるため、回転のスムーズなアニメーションを計算しやすくなります。 四元数は、回転軸とその軸の周りの回転を表します。 回転したオブジェクトの開始位置と終了位置の回転の軸と角度を個別に定義できますが、アニメーション中のオブジェクトの中間位置は計算上不確かです。 3-D オブジェクトの元の向きを表す四元数と、その移動先の向きを表す四元数を決定することで、それらの向きをスムーズに補間できます。
XAML では、 Quaternion の値間の区切り記号にはコンマまたはスペースを指定できます。
カルチャによっては、ピリオド文字の代わりにコンマ文字を 10 進区切り記号として使用する場合があります。 インバリアント カルチャの XAML 処理は、ほとんどの XAML プロセッサ実装で既定で en-US され、ピリオドは 10 進区切り記号であると想定されます。 XAML で Quaternion を指定する場合は、コンマ文字を 10 進区切り記号として使用しないでください。これは、 Quaternion 属性値のコンポーネントへの文字列型変換と競合するためです。
XAML 属性の使用法
<object property="x,y,z,w"/>
-or-
<object property="x y z w"/>
XAML 値
x このX構造体のQuaternionコンポーネント。
y このY構造体のQuaternionコンポーネント。
z このZ構造体のQuaternionコンポーネント。
w このW構造体のQuaternionコンポーネント。
コンストラクター
| 名前 | 説明 |
|---|---|
| Quaternion(Double, Double, Double, Double) |
Quaternion構造体の新しいインスタンスを初期化します。 |
| Quaternion(Vector3D, Double) |
Quaternion構造体の新しいインスタンスを初期化します。 |
プロパティ
| 名前 | 説明 |
|---|---|
| Angle |
四元数の角度を度単位で取得します。 |
| Axis |
四元数の軸を取得します。 |
| Identity |
ID 四元数を取得します。 |
| IsIdentity |
指定した四元数が Identity 四元数であるかどうかを示す値を取得します。 |
| IsNormalized |
四元数が正規化されているかどうかを示す値を取得します。 |
| W |
四元数の W コンポーネントを取得します。 |
| X |
四元数の X コンポーネントを取得します。 |
| Y |
四元数の Y コンポーネントを取得します。 |
| Z |
四元数の Z 要素を取得します。 |
メソッド
| 名前 | 説明 |
|---|---|
| Add(Quaternion, Quaternion) |
指定した四元数を追加します。 |
| Conjugate() |
四元数をそのコンジュゲートに置き換えます。 |
| Equals(Object) |
2 つの Quaternion インスタンスの等価性を比較します。 |
| Equals(Quaternion, Quaternion) |
2 つの Quaternion インスタンスの等価性を比較します。 |
| Equals(Quaternion) |
2 つの Quaternion インスタンスの等価性を比較します。 |
| GetHashCode() |
Quaternionのハッシュ コードを返します。 |
| Invert() |
指定した四元数を逆に置き換えます。 |
| Multiply(Quaternion, Quaternion) |
指定した Quaternion 値を乗算します。 |
| Normalize() |
正規化された四元数を返します。 |
| Parse(String) |
Quaternionの文字列形式を等価のQuaternion構造体に変換します。 |
| Slerp(Quaternion, Quaternion, Double, Boolean) |
球面線形補間を使用して、 Quaternion 構造体として表される向き間を補間します。 |
| Slerp(Quaternion, Quaternion, Double) |
球面線形補間を使用して、2 つの向きの間を補間します。 |
| Subtract(Quaternion, Quaternion) |
別の四元数から四元数を減算します。 |
| ToString() |
オブジェクトの文字列形式を作成します。 |
| ToString(IFormatProvider) |
オブジェクトの文字列形式を作成します。 |
演算子
| 名前 | 説明 |
|---|---|
| Addition(Quaternion, Quaternion) |
指定した Quaternion 値を追加します。 |
| Equality(Quaternion, Quaternion) |
2 つの Quaternion インスタンスを正確に等しいかどうかを比較します。 |
| Inequality(Quaternion, Quaternion) |
2 つの Quaternion インスタンスを正確に等しくないかどうかを比較します。 |
| Multiply(Quaternion, Quaternion) |
指定した四元数を別の四元数で乗算します。 |
| Subtraction(Quaternion, Quaternion) |
指定した四元数を別の四元数から減算します。 |
明示的なインターフェイスの実装
| 名前 | 説明 |
|---|---|
| IFormattable.ToString(String, IFormatProvider) |
このメンバーは、Windows Presentation Foundation (WPF) インフラストラクチャをサポートしており、コードから直接使用するためのものではありません。 このメンバーの説明については、 ToString(String, IFormatProvider)を参照してください。 |