ベジェ曲線の円弧についていままで90度で計算してきた。
しかし、この数字に意味付けはなかった。
ただ単にドローソフトがそういう実装になっていたからだ。
そこで、任意の中心角の円弧をベジェ曲線で曲線近似するときの
制御点の位置を算出してみよう。
ベジェ曲線の近似円弧の制御点位置
AOBのなす角度を90度からθに拡張する。
頂点Bはそのままで、
BB'が頂点Bでの接線、BB'の長さがκとする。
AA'が頂点Aでの接線、AA'の長さも対称性よりκである。
すると、各点の座標は下記のようになる
|
(3.1) |
ベジェ曲線の定義より、ベジェ曲線上の任意の点はパラメータを使って、下記の通りとなる:
|
(3.2) |
ベジェ曲線の中間点Cはu=1/2として
|
(3.3) |
となる。
(3.3)式に(3.1)の頂点データを代入することで、x座標成分として
|
(3.4) |
同様に、y座標成分として
|
(3.5) |
が得られる。
ここが円弧の中心点Cになるようにすればよい。
よって(3.4)式から
|
(3.6) |
とκの値が得られた。
なお、この算出過程でを除外
してしまっている。この場合のみだけ、y軸成分の(3.5)式から計算して出すと
|
(3.6) |
となり、結局以下の単一の式で表現できる:
|
(3.7) |
アタリマエのことながら、この結果に対してを代入することで
よく知られた90度の場合のκの値が得られる。
|
(3.8) |
ベジェ曲線の円弧の中心角
θを変えて描画させてみると、
180度まではまずまずの近似であるが、180度を超えるとかけ離れた概形になってしまう。
180度以上の円弧を描くときは分割が必須である。
まとめ
- 円を分割してベジェ曲線で描画するとき、2分割(中心角180度)以上した方がよい
しかし、この感覚的な結論は正しくないことが後で判明
参考文献