Scurve

Scurveを描く
下のアプレットで、Newボタンを押し、マウスのクリックで、多角形を作図します。draw を押すとScurveを表示します。この状態で、多角形の頂点をドラッグすることができます。closed をチェックすると、閉じた多角形になります。

概要
多角形を曲線にするには、「多角形の角を丸くすれば良い」の発想から生まれた曲線の生成手法です。

閉じている場合
元の折れ線が閉じている場合は、次の例のように生成する曲線の始点と終点を始点Aを頂点とする三角形Y-A-Xの重心Sとします。

S曲線の生成手法
 S曲線は線分を分割することにより簡単に曲線を生成することができる。まず、閉じていない折れ線A-B-C-Dを考えます。A-Bの中点をX、B-Cの中点をYとします。三角形X-B-Yの重心をPとします。同様にC-Dの中点をZ、三角形Y-C-Zの重心をQとします。A-X-P-Y-Q-Z-Dは元の折れ線A-B-C-Dを中点で補間した折れ線となります。

重心
三角形A-B-Cの重心Pを、中央の点Bに2倍の重みを付けて次のように定めます。ここで、A.xはA点のx座標です。
 P.x = (A.x + 2* B.x + C.x)/4
P.y = (A.y + 2* B.y + C.y)/4

繰り返し
次にA-X-P-Y-Q-Z-Dを同じ手法で補間する。これを繰り返すと、A-B-C-Dを制御点とする曲線が生成できる。1回繰り返す毎に頂点の数は2倍-1となる。通常2−3回程度繰り返せば、十分滑らかな曲線となる。この場合、頂点の数はほぼ8倍となる。