Platform SDK: DirectX

D3DXQuaternionLn

D3DXQuaternionLn 関数は、自然対数を計算する。

D3DXQUATERNION* D3DXQuaternionLn(
  D3DXQUATERNION* pOut,
  const D3DXQUATERNION* pQ
); 

パラメータ

pOut
演算結果である D3DXQUATERNION 構造体へのポインタ。
pQ
ソースの D3DXQUATERNION 構造体へのポインタ。

戻り値

自然対数である 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 関数を別の関数のパラメータとして使用できる。

動作環境

  Windows NT/2000 : Windows 2000 が必要。
  Windows 95/98 : Windows 95 以上が必要。Windows 95 用に再配布可能な形で使用可能。
  バージョン : DirectX 7.0 が必要。
  ヘッダー : d3dxmath.h で宣言。
  ライブラリ : d3dx.lib を使用。

参照

D3DXQuaternionExpD3DXQuaternionSquad