メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

quatinterp

2つの四元数間の四元数補間

説明

qi=quatinterp(p,q,f,method) は、2 つの正規化された四元数pq の間の四元数補間を間隔分数 f で計算します。

pq は、関数が四元数を計算する 2 つの極端な値です。

Aerospace Toolbox は、スカラー優先規則を使用して定義された四元数を使用します。

すべて折りたたむ

この例では、SLERP メソッドを使用して、2 つの四元数p=[1.0 0 1.0 0] と q=[-1.0 0 1.0 0] の間の四元数を補間によって計算する方法を示します。この例では、quatnormalize 関数を使用して、2 つの四元数をまず pn と qn に正規化します。

pn = quatnormalize([1.0 0 1.0 0])
pn = 1×4

    0.7071         0    0.7071         0

qn = quatnormalize([-1.0 0 1.0 0])
qn = 1×4

   -0.7071         0    0.7071         0

qi = quatinterp(pn,qn,0.5,'slerp')
qi = 1×4

     0     0     1     0

入力引数

すべて折りたたむ

補間を計算する最初の正規化四元数。M四元数を含む M 行 4 列の行列として指定します。この四元数は正規化された四元数でなければなりません。

データ型: double

補間を計算する 2 番目の正規化四元数。M四元数を含む M 行 4 列の行列として指定します。この四元数は正規化された四元数でなければなりません。

データ型: double

四元数補間を計算する間隔分数。M 分数 (スカラー) を含む M 行 1 列の行列として指定します。f は 0 から 1 の間で変化します。計算する四元数の中間回転を表します。

qi=(qp,qn,qf)、ここで:

  • f0 と等しい場合、qiqp と等しくなります。

  • f01 の間にある場合、qimethod と等しくなります。

  • f1 と等しい場合、qiqn と等しくなります。

データ型: double

四元数補間を計算する四元数補間法。これらの方法では、間隔の割合に応じて回転速度が異なります。間隔分数の詳細については、「[1]」を参照してください。

  • slerp

    Quaternion slerp.球面線形四元数補間法。この方法は最も正確ですが、計算量も最も多くなります。

    h[0,1]. での Slerp(p,q,h)=p(p*q)h

  • lerp

    Quaternion lerp.線形四元数補間法。この方法は最も速いですが、最も正確性が低くなります。このメソッドは必ずしも正規化された出力を生成するわけではありません。

    h[0,1]. での LERP(p,q,h)=p(1h)+qh

  • nlerp

    正規化された四元数線形補間法。

    r=LERP(p,q,h), NLERP(p,q,h)=r|r|.

データ型: char

出力引数

すべて折りたたむ

四元数の補間。

参照

[1] ==Dam, Erik B., Martin Koch, Martin Lillholm. "Quaternions, Interpolation, and Animation." University of Copenhagen, København, Denmark, 1998.

バージョン履歴

R2016a で導入