Microsoft DirectX 8.0 (C++) |
自然対数を計算する。
D3DXQUATERNION* D3DXQuaternionLn( D3DXQUATERNION* pOut, CONST D3DXQUATERNION* pQ );
自然対数である D3DXQUATERNION 構造体へのポインタ。
D3DXQuaternionLn 関数は、正規化されたクオータニオンでのみ機能する。
この関数は、次のように実装される。
q = (cos(theta), sin(theta) * v) |v| = 1 ln(q) = (0, theta * v)
D3DXQuaternionExp 関数と D3DXQuaternionLn 関数は、D3DXQuaternionSquad 関数を使用するとき有用である。クオータニオン キー セット (q0, q1, q2, ..., qn) を指定すると、隣接セグメントをまたいで接線を連続させるために、次のように内部四角形の点 (a1, a2, a3, ..., an-1) を計算できる。
a1 a2 a3 q0 q1 q2 q3 q4 a[i] = q[i] * exp( -(ln(inv(q[i])*q[i+1]) + ln(inv(q[i])*q[i-1])) / 4 )
(a1, a2, a3, ...) が計算されたら、この結果を使用し、カーブに沿って補間できる。
qt = Squad(t, q[i], a[i], a[i+1], q[i+1])
この関数の戻り値は、pOut パラメータの戻り値と同じである。このように、D3DXQuaternionLn 関数を別の関数のパラメータとして使用できる。
ヘッダー : D3dx8math.h で宣言。
インポート ライブラリ : D3dx8.lib を使用。