Quaternion (クラス)
public final Quaternion
インポート元: CURL.GUI.STANDARD. package 内で定義されています CURL.GRAPHICS.BASE.

四元数の実装。

説明

Quaternion は四元数を実装します。回転でオブジェクトをアニメーション化するのに役立つ数学的なツールです。四元数は、回転軸および回転角度として考えられます。

四元数は次のようにして作成されます。

{let q:Quaternion = 
    {Quaternion.from-axis-rotation angle, axis-of-rotation}
}


回転軸は正確に動作するために上記のコード部で正規化される必要があります。

コンストラクタ
default:Quaternion を直接その構成要素から構成します。
コンストラクタ public {Quaternion.default x:float, y:float, z:float, w:float}
from-axis-rotation:指定された角度と軸に基づいて Quaternion を作成します。
ファクトリ public {Quaternion.from-axis-rotation
angle:Angle,
axis:Direction3d
}:Quaternion

プロパティ
is-identity?:この Quaternion が恒等変換と等しい回転を表す場合、true を返します。
アクセサ public Quaternion.is-identity?:bool
w:Quaternion オブジェクトの w コンポーネントを取得します。
アクセサ public Quaternion.w:float
x:Quaternion オブジェクトの x コンポーネントを取得します。
アクセサ public Quaternion.x:float
y:Quaternion オブジェクトの y コンポーネントを取得します。
アクセサ public Quaternion.y:float
z:Quaternion オブジェクトの z コンポーネントを取得します。
アクセサ public Quaternion.z:float

クラス変数と定数
identity:単位元 Quaternion を表すクラス定数。
public constant Quaternion.identity:Quaternion ={Quaternion 0f, 0f, 0f, 1f}

クラス プロシージャ
divide:Quaternion dividenddivisor で除算し、その結果を返します。
public {Quaternion.divide
dividend:Quaternion,
divisor:Quaternion
}:Quaternion
interpolate:2 つの Quaternion オブジェクト間を補間し、その結果を返します。
public {Quaternion.interpolate
quaternion0:Quaternion,
blend-factor:double,
quaternion1:Quaternion,
spherical-interpolation?:bool = true
}:Quaternion
multiply:2 つの Quaternion の積を算出し、返します。
public {Quaternion.multiply
quaternion0:Quaternion,
quaternion1:Quaternion
}:Quaternion

メソッド
invert:self で参照される Quaternion の逆数を算出し、返します。
public {Quaternion.invert}:Quaternion
normalize:この Quaternion の正規化バージョンを算出し、返します。
public {Quaternion.normalize}:Quaternion
scale-angle:この四元数で表される回転角度のスケールを変更します。
public {Quaternion.scale-angle factor:double}:Quaternion
to-axis-rotation:この Quaternion に対応する角度と軸を算出し、返します。
public {Quaternion.to-axis-rotation
normalize?:bool = true
}:(angle:FloatAngle, axis:FloatDirection3d)
to-Matrix3d:この Quaternion から派生した回転を含む Matrix3d を返します。
public {Quaternion.to-Matrix3d out-hint:#Matrix3d = null}:Matrix3d



コンストラクタ詳細
default (コンストラクタ)
public {Quaternion.default x:float, y:float, z:float, w:float}

Quaternion を直接その構成要素から構成します。



from-axis-rotation (ファクトリ)
public {Quaternion.from-axis-rotation
angle:Angle,
axis:Direction3d
}:Quaternion

指定された角度と軸に基づいて Quaternion を作成します。




プロパティ詳細
is-identity? (アクセサ)
アクセサ public Quaternion.is-identity?:bool

この Quaternion が恒等変換と等しい回転を表す場合、true を返します。

説明

Quaternion.w コンポーネントが 1.0f の場合、または Quaternion.x コンポーネント、Quaternion.y コンポーネントおよび Quaternion.z コンポーネントがすべてゼロの場合、四元数は恒等変換を表します。


w (アクセサ)
アクセサ public Quaternion.w:float

Quaternion オブジェクトの w コンポーネントを取得します。



x (アクセサ)
アクセサ public Quaternion.x:float

Quaternion オブジェクトの x コンポーネントを取得します。



y (アクセサ)
アクセサ public Quaternion.y:float

Quaternion オブジェクトの y コンポーネントを取得します。



z (アクセサ)
アクセサ public Quaternion.z:float

Quaternion オブジェクトの z コンポーネントを取得します。




クラス変数と定数の詳細
identity (クラス定数)
public constant Quaternion.identity:Quaternion ={Quaternion 0f, 0f, 0f, 1f}

単位元 Quaternion を表すクラス定数。




クラス プロシージャ詳細
divide (クラスプロシージャ)
public {Quaternion.divide
dividend:Quaternion,
divisor:Quaternion
}:Quaternion

Quaternion dividenddivisor で除算し、その結果を返します。

注意事項

入力の Quaternion はどちらもこのメソッドでは変更されません。


interpolate (クラスプロシージャ)
public {Quaternion.interpolate
quaternion0:Quaternion,
blend-factor:double,
quaternion1:Quaternion,
spherical-interpolation?:bool = true
}:Quaternion

2 つの Quaternion オブジェクト間を補間し、その結果を返します。

quaternion0: 開始する回転を表す Quaternion
blend-factor: 0.0 から 1.0 までの間のファクターで、これは算出された Quaternionquaternion0quaternion1 の間でどれだけ離れているかを示します。
quaternion1: 終了する回転を表す Quaternion
spherical-interpolation?: true の場合、このプロシージャは球型補間を使用して結果の Quaternion を算出します。false の場合、代わりにリニア補間が使用されます。Quaternion 補間の完全な説明は、この API ドキュメントの対象ではありません。完全な解説については、コンピュータ グラフィックの、特にアニメーションの幾何的側面についての本を調べてください。

説明

入力の Quaternion オブジェクトはどちらもこのプロシージャでは変更されません。


multiply (クラスプロシージャ)
public {Quaternion.multiply
quaternion0:Quaternion,
quaternion1:Quaternion
}:Quaternion

2 つの Quaternion の積を算出し、返します。

quaternion0: 乗算する Quaternion オペランド。
quaternion1: 乗算する Quaternion オペランド。

戻り値

quaternion0quaternion1 の積の Quaternion

説明

quaternion0(w0, x0, y0, z0) で与えられ、quaternion1(w1, x1, y1, z1) で与えられた場合、quaternion0 * quaternion1 の積は次のようになります。x = w0 * x1 + x0 * w1 + y0 * z1 - z0 * y1 y = w0 * y1 + y0 * w1 + z0 * x1 - x0 * z1 z = w0 * z1 + z0 * w1 + x0 * y1 - y0 * x1 w = w0 * w1 - x0 * x1 - y0 * y1 - z0 * z1



メソッド詳細
invert (メソッド)
public {Quaternion.invert}:Quaternion

self で参照される Quaternion の逆数を算出し、返します。



normalize (メソッド)
public {Quaternion.normalize}:Quaternion

この Quaternion の正規化バージョンを算出し、返します。

戻り値

正規化された Quaternion

説明

Quaternion は、x * x + y * y + z * z + w * w の平方根をとり、各コンポーネントをそれで除算することによって正規化されます。self で参照される Quaternion が既に正規化されている場合、このメソッドは単に self を返すだけになります。self が正規化されていない場合は、結果を保持するために新しい Quaternion が作成され、それが返されます。このメソッドは self を変更しません。


scale-angle (メソッド)
public {Quaternion.scale-angle factor:double}:Quaternion

この四元数で表される回転角度のスケールを変更します。

説明

たとえば、この四元数が 30 度の回転を表し、この関数が 1.5 のファクターで呼び出された場合、結果は、同じ軸を中心に 45 度ずつ回転する Quaternion になります。


to-axis-rotation (メソッド)
public {Quaternion.to-axis-rotation
normalize?:bool = true
}:(angle:FloatAngle, axis:FloatDirection3d)

この Quaternion に対応する角度と軸を算出し、返します。



to-Matrix3d (メソッド)
public {Quaternion.to-Matrix3d out-hint:#Matrix3d = null}:Matrix3d

この Quaternion から派生した回転を含む Matrix3d を返します。

out-hint: 出力マトリックスとして使用される Matrix3d。これによりメモリ割り当てを回避できます。これは単なるヒントです。開発者は、これが使用されることを想定するべきではありません。常に戻り値を使用するようにしてください。