Platform SDK: DirectX |
D3DXQuaternionExp 関数は、指数関数を計算する。
D3DXQUATERNION* D3DXQuaternionExp( D3DXQUATERNION* pOut, const D3DXQUATERNION* pQ );
指数関数である D3DXQUATERNION 構造体へのポインタ。
D3DXQuaternionExp 関数は、w == 0 の単一クオータニオンでのみ機能する。
この関数は、次のように実装される。
q = (0, theta * v)
exp(q) = (cos(theta), sin(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 パラメータの戻り値と同じである。このように、D3DXQuaternionExp 関数を別の関数のパラメータとして使用できる。
Windows NT/2000 : Windows 2000 が必要。
Windows 95/98 : Windows 95 以上が必要。Windows 95 用に再配布可能な形で使用可能。
バージョン : DirectX 7.0 が必要。
ヘッダー : d3dxmath.h で宣言。
ライブラリ : d3dx.lib を使用。