ええと、tgif は一般には Bézier 曲線は本当に描いてなくて、
制御点が 3 つ以下の場合は、tgif が描いているのは、
2 次 Bézier 曲線 です。
n (> 3) 個の制御点がある場合は、tgif は
n-2 個の曲線をつないで、全体として連続で、
一階微分もすべての点で連続 (近似) な一本の曲線を描きます。
この場合おのおのの部分的曲線は完全に 3 個の制御点を持ちますので、
その部分は 2 次 Bézier 曲線
として描きます。
よって、tgif が描くのは
区分的 2 次 Bézier 曲線
だと言っていいでしょう。
以下は、n > 3 に対して、
n-2 個の部分曲線がどこからくるかの基本を示しています。
n = 5 に対する例で説明します。
まず、線種を直線に変更し、図 A のように
n 個の元の制御点につながる
n-1 個の線分を取ります。
図 B で見られるように、
内部の n-3 個の線分の中点と元の 2 端点を取ります。
それらが 2 次 Bézier 曲線に対する端点になります。
これは、tgif が図 2 の隣接するすべての 2 点の間に
2 次の Bézier 曲線を書くことを示しています。
よって、n-2 個の 2 次 Bézier 曲線ができます。
隣接するこれらの 2 点 (P1, P2
と呼ぶことにします) すべての間に頂点 (P3 と呼びます)
があることに注意してください。
これは、元の tgif スプラインオブジェクトの制御点になります。
tgif はあらかじめ 3 個の制御点から 2 次 Bézier 曲線を
書く方法を知っています (このページの先頭を見てください) ので、
tgif は n-2 個の 2 次 Bézier 曲線を
それと同じアルゴリズムを使って描きます。
以下は、制御点 P1, P3, P2 を持つ
(近似) 2 次 Bézier 曲線を描くのに tgif が利用する
アルゴリズムのより詳細な説明です。
制御点 P1, P3, P2から 2 次 Bézier
曲線を描く基本的なアルゴリズムを、以下の図 C に示しています。
2 次 Bézier 曲線は赤で示しています。
この曲線は、点 P1 で線分 P1-P3 に接し、
点 P2 で線分 P2-P3 に接することに注意してください。
P4 は線分 P1-P3 の中点で、
P5 は線分 P2-P3 の中点で、
さらに P6 は線分 P4-P5 の中点です。
このアルゴリズムは、2 つの 2 次 Bézier 曲線を
再帰的に描画します。
一方は制御点 P1, P4, P6 を持ち、
一方は制御点 P2, P5, P6 を持ちます。
明らかに、この曲線自身とその 1 階微分は点 P6
で連続になっています。図 B のアルゴリズムを使うことで、
図 D, E, F の 3 つの 2 次 Bézier 曲線が表れます。
図 D, E, F を重ねた結果が、下の図 G です。