2013年1月15日火曜日

プロットされた点を曲線で結ぶ件。

久々の更新。 どーもFBには書くけど、BLOGの更新をしないようになってしまった。
今年はもうちょっと書こう。
 ってことで、ありがちだけど、プロットされた点を結んで曲線補完。  
今回の条件は、
【XによってYが一意に決まること。】
よって、曲線としては滑らかであっても、XによってYが2つ3つ値をとるようでは困るので、
 制御点の取り方を工夫。 

また、最初と最後(点A-B間、D-E間)に関しては、 制御点を2つ取れないので、
この部分は2次Bスプラインで考える。
1つの点を共用して3次(ベジェ)で考えてもいいのだが、
やってみたらあまり滑らかな線にならなかったので、2次とした。

 流れ。
A,B,C,D,Eが与えられる。
B,C,D(最初と最後を除いた点)については、その左右に制御点をとる。
制御点の取り方だが、Bを例にして考えるならば、B1-B-B2は一直線となり、
直線A-Cと平行になるような点をとる。
あとは、B1-B、B-B2の長さだが、B1-B2が直線A-Cの長さの固定倍とし、
Bが内分する点となるようにするのだが、 今回はX座標の比率(X(B-A):X(C-B)の比率となるように、 B1,B2をとってみた。 

まぁ所詮、曲線補完なので、何が正しいってわけじゃないので、
今回の要件はこの程度で。。

 2次のBスプラインの説明は、
http://opentype.jp/fontguide_doc2.htm
ベジェの説明は、
http://opentype.jp/fontguide_doc3.htm

がわかりやすい。と思う。思うだけかも。。

0 件のコメント:

コメントを投稿