Quaternion Quaternion Quaternion Quaternion Struct

定義

回転を 3 次元で表す構造体。Structure that represents a rotation in three dimensions.

public value class Quaternion : IFormattable
[System.ComponentModel.TypeConverter(typeof(System.Windows.Media.Media3D.QuaternionConverter))]
[System.Serializable]
public struct Quaternion : IFormattable
type Quaternion = struct
    interface IFormattable
Public Structure Quaternion
Implements IFormattable
継承
QuaternionQuaternionQuaternionQuaternion
属性
実装

<!-- 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

注釈

四元数を使用すると、オブジェクトに適用される回転変換を補間することができるため、回転の滑らかなアニメーションを簡単に計算できます。Quaternions allow you to interpolate between rotation transformations applied to an object, thereby making it easier to compute smooth animations of rotations. 四元数は、回転の軸とその軸を中心とする回転を表します。A quaternion represents an axis of rotation and a rotation around that axis. 回転したオブジェクトの開始位置と終了位置の軸と回転角度を個別に定義することはできますが、アニメーション中のオブジェクトの中間の位置は、計算が不明確です。It's possible to individually define the axis and angle of rotation of the starting and ending positions of a rotated object ,but the intermediate positions of that object during an animation are computationally uncertain. 3-d オブジェクトの元の向きを表す四元数と、その変換先の方向を表す四元数を決定することで、これらの向きを滑らかに補間できます。By determining a quaternion that represents the original orientation of a 3-D object and one that represents its destination orientation, you can smoothly interpolate between those orientations.

XAML では、のQuaternion値の間の区切り記号には、コンマまたはスペースを使用できます。In XAML, the delimiter between the values of a Quaternion can be either a comma or a space.

カルチャによっては、ピリオド文字の代わりにコンマ文字が小数点の区切り記号として使用される場合があります。Some cultures might use the comma character as the decimal delimiter instead of the period character. インバリアントカルチャの XAML 処理は、ほとんどの XAML プロセッサ実装では en-us に既定で設定されており、ピリオドは小数点の区切り記号になります。XAML processing for invariant culture defaults to en-US in most XAML processor implementations, and expects the period to be the decimal delimiter. XAML でをQuaternion指定する場合、小数点区切り文字としてコンマ文字を使用しないようにする必要があります。 Quaternionこれは、属性値からそのコンポーネントへの文字列型の変換と競合するためです。You should avoid using the comma character as the decimal delimiter if specifying a Quaternion in XAML, because that will clash with the string type conversion of a Quaternion attribute value into its components.

XAML 属性の使用方法XAML Attribute Usage

<object property="x,y,z,w"/>  
-or-  
<object property="x y z w"/>  

XAML 値XAML Values

xx
この X 構造体の Quaternion コンポーネント。The X component of this Quaternion structure.

yy
この Y 構造体の Quaternion コンポーネント。The Y component of this Quaternion structure.

zz
この Z 構造体の Quaternion コンポーネント。The Z component of this Quaternion structure.

ww
この W 構造体の Quaternion コンポーネント。The W component of this Quaternion structure.

コンストラクター

Quaternion(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double) Quaternion(Vector3D, Double)

Quaternion 構造体の新しいインスタンスを初期化します。Initializes a new instance of the Quaternion structure.

Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double) Quaternion(Double, Double, Double, Double)

Quaternion 構造体の新しいインスタンスを初期化します。Initializes a new instance of the Quaternion structure.

プロパティ

Angle Angle Angle Angle

四元数の角度を取得します。Gets the quaternion's angle, in degrees.

Axis Axis Axis Axis

四元数の軸を取得します。Gets the quaternion's axis.

Identity Identity Identity Identity

恒等四元数を取得します。Gets the Identity quaternion

IsIdentity IsIdentity IsIdentity IsIdentity

指定された四元数が Identity 四元数であるかどうかを示す値を取得します。Gets a value that indicates whether the specified quaternion is an Identity quaternion.

IsNormalized IsNormalized IsNormalized IsNormalized

四元数が正規化されているかどうかを示す値を取得します。Gets a value that indicates whether the quaternion is normalized.

W W W W

四元数の W コンポーネントを取得します。Gets the W component of the quaternion.

X X X X

四元数の X コンポーネントを取得します。Gets the X component of the quaternion.

Y Y Y Y

四元数の Y コンポーネントを取得します。Gets the Y component of the quaternion.

Z Z Z Z

四元数の Z コンポーネントを取得します。Gets the Z component of the quaternion.

メソッド

Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion) Add(Quaternion, Quaternion)

指定した四元数を加算します。Adds the specified quaternions.

Conjugate() Conjugate() Conjugate() Conjugate()

四元数をその共役で置き換えます。Replaces a quaternion with its conjugate.

Equals(Object) Equals(Object) Equals(Object) Equals(Object)

2 つの Quaternion インスタンスを比較し、相互に等価かどうかを判断します。Compares two Quaternion instances for equality.

Equals(Quaternion) Equals(Quaternion) Equals(Quaternion) Equals(Quaternion)

2 つの Quaternion インスタンスを比較し、相互に等価かどうかを判断します。Compares two Quaternion instances for equality.

Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion) Equals(Quaternion, Quaternion)

2 つの Quaternion インスタンスを比較し、相互に等価かどうかを判断します。Compares two Quaternion instances for equality.

GetHashCode() GetHashCode() GetHashCode() GetHashCode()

Quaternion のハッシュ コードを返します。Returns the hash code for the Quaternion.

Invert() Invert() Invert() Invert()

指定した四元数をその逆四元数で置き換えます。Replaces the specified quaternion with its inverse

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

指定した Quaternion 値を乗算します。Multiplies the specified Quaternion values.

Normalize() Normalize() Normalize() Normalize()

正規化した結果の四元数を返します。Returns a normalized quaternion.

Parse(String) Parse(String) Parse(String) Parse(String)

Quaternion の文字列形式を、等価の Quaternion 構造体に変換します。Converts a string representation of a Quaternion into the equivalent Quaternion structure.

Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double) Slerp(Quaternion, Quaternion, Double)

球面線形補間を使用して 2 つの方向の間を補間します。Interpolates between two orientations using spherical linear interpolation.

Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean) Slerp(Quaternion, Quaternion, Double, Boolean)

球面線形補間を使用して、Quaternion として表される方向の間を補間します。Interpolates between orientations, represented as Quaternion structures, using spherical linear interpolation.

Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion) Subtract(Quaternion, Quaternion)

Quaternion を別の四元数から減算します。Subtracts a Quaternion from another.

ToString() ToString() ToString() ToString()

オブジェクトの文字列表現を作成します。Creates a string representation of the object.

ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider) ToString(IFormatProvider)

オブジェクトの文字列表現を作成します。Creates a string representation of the object.

演算子

Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion) Addition(Quaternion, Quaternion)

指定した Quaternion 値を加算します。Adds the specified Quaternion values.

Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion) Equality(Quaternion, Quaternion)

2 つの Quaternion インスタンスを比較し、完全に等しいかどうかを確認します。Compares two Quaternion instances for exact equality.

Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion) Inequality(Quaternion, Quaternion)

2 つの Quaternion インスタンスを比較し、完全に等しくないかどうかを判断します。Compares two Quaternion instances for exact inequality.

Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion) Multiply(Quaternion, Quaternion)

指定した四元数を別の四元数と乗算します。Multiplies the specified quaternion by another.

Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion) Subtraction(Quaternion, Quaternion)

指定した四元数を別の四元数から減算します。Subtracts a specified quaternion from another.

明示的なインターフェイスの実装

IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider) IFormattable.ToString(String, IFormatProvider)

このメンバーは、Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) インフラストラクチャをサポートしますが、独自に作成したコードから直接使用するためのものではありません。This member supports the Windows Presentation Foundation (WPF)Windows Presentation Foundation (WPF) infrastructure and is not intended to be used directly from your code. このメンバーの詳細については、「ToString(String, IFormatProvider)」をご覧ください。For a description of this member, see ToString(String, IFormatProvider).

適用対象