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.