Quaternion 構造体

定義

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
継承
Quaternion
属性
実装

<!-- 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)を参照してください。

適用対象