n個の点を通る曲線の一般形
1998年1月30日(土) 川崎 有亮

Xn(t)は、この曲線の時刻tにおける位置ベクトルです。
パラメタのtが0〜1に移動する間に Xn(t) の描く軌跡は、
「滑らか」な曲線になっているはずです。
ただし、Pkは第k+1個目の点の位置ベクトル、
mkはその点を通る時点でのパラメタ t(時刻)を
指定する定数です(0≦k≦n-1, 0≦mk≦1)。
なお、mkは例えば

と一般化することもできます。(この限りでもない)
具体的に解くと、例えばn=1のときX1(t)はこのようになります。

つまり「1点を通る曲線」(?)は、パラメタtの変化に関らず
点P0から移動しません。
これは当たり前とも言え、つまらないので、次に2点を結んでみます。

パラメタtを介してP0〜P1を
直線的に移動しています(1次曲線です)。
「2点を通る曲線」とは直線が最も簡単な形(最短)であり、
また確かにこれは「滑らか」ということもできるでしょう。
続けて、3点を結んでみます。

これは、P1を原点(極値)とした放物線のようなグラフになります
(2次曲線です)。
同様に4点を結ぶ場合は

となります。
これらのマトリックスの演算を行うプログラムを組むことで、
「任意個の点を通る曲線」を描くことができます。
ただし、実際にはX3(t)やX4(t)の連続として
任意個の点を結んだほうが、全体としての計算量が少なく済むと思われます。
(各点間で複数の曲線を生成できてしまう部分は、
それらの間を X2(t) のようにパラメタで補間する)
この一般形を導いた手順は別に記します。
Copyright (C) 1998 Kawasaki Yuusuke <u-suke [at] kawa.net>
All rights reserved.