線形補間(Linear Interpolation)と球面線形補間(Spherical Linear Interpolation, Slerp)
線形補間 (Linear Interpolation)
線形補間は、2つの点の間を直線的に補間する方法です。補間のパラメータ t を使って、2つの値の間の値を計算します。
計算式
線形補間は次のように定義されます。
L(p)=(1−p)⋅A+p⋅B
- L(p): 補間結果のベクトル
- A: 始点
- B: 終点
- p: 補間パラメータ (0≤p≤1)
- A=0, B=10, p=0.5 の場合:
L(0.5)=(1−0.5)⋅0+0.5⋅10=5
この結果から、p=0.5 のとき、A から B の間の中間点(5)が得られます。
球面線形補間 (Spherical Linear Interpolation, Slerp)
球面線形補間は、2つのクォータニオンやベクトルの間を球面上で補間する方法です。通常、回転を補間するために使われます。
計算式
球面線形補間は次のように定義されます。
Slerp(A,B,t)=sin(θ)sin((1−t)θ)A+sin(θ)sin(tθ)B
- Slerp(A,B,t): 補間結果のベクトル
- A: 始点のクォータニオンまたはベクトル
- B: 終点のクォータニオンまたはベクトル
- t: 補間パラメータ ((0 \leq t \leq 1))
- θ: A と B の間の角度(コサイン類似度に基づく)
角度の計算
角度 θ は次のように計算されます。
θ=cos−1(A⋅B)
例