ベジェ曲線

提供: miniwiki
2018/8/19/ (日) 17:39時点におけるAdmin (トーク | 投稿記録)による版 (1版 をインポートしました)
(差分) ← 古い版 | 最新版 (差分) | 新しい版 → (差分)
移動先:案内検索

ベジェ曲線(ベジェきょくせん、Bézier Curve)またはベジエ曲線とは、N 個の制御点から得られる N − 1曲線である。フランス自動車メーカー、シトロエン社のド・カステリョEnglish版ルノー社のピエール・ベジェにより独立に考案された。ド・カステリョの方が先んじていたが、その論文が公知とならなかったためベジェの名が冠されている[1]コンピューター上で滑らかな曲線を描くのに2次ベジェ曲線 (Quadratic Bézier curve) や 3次ベジェ曲線 (Cubic Bézier curve) などが広く利用されている。

原語(フランス語)における Bézier の発音はベズィエに近く、「ベジェ曲線」より「ベジエ曲線」の方がこれに忠実と言えるが、いずれの呼称も用いられている。

応用

コンピュータ上で滑らかな曲線を書く場合にベジェ曲線はよく利用されており、ベクターグラフィクスなどのコマンドにも用意されていることが多い。

特に、2次だけでなく、3次ベジェ曲線までサポートされていることが多い。これは、始点と第1制御点を結ぶ線分が始点における曲線の接線になり、第2制御点と終点を結ぶ線分が終点における曲線の接線になるため、直感的に理解しやすいことにある。また、始点と第1制御点の距離によって始点付近の曲率が制御できるため、作図を行うソフトウェア(ドローソフト)で手作業により曲線を描く際に線の形を整えやすい。

PostScriptやそのフォント (Type1フォント) 、SVGHTML5canvasで3次ベジェ曲線を使うことができる。Adobe Flash Playerも11.0以降では使える。

一部は2次ベジェ曲線までのサポートである。Adobe Flash Playerは10.3 までは2次までである。

定義

制御点を B0, B1, ..., BN−1 とすると、ベジェ曲線は、

[math]\mathbf{P}(t) = \sum_{i=0}^{N-1} \mathbf{B}_i J_{N-1,i}(t)[/math]

と表現される。ここで、Jn, i(t)バーンスタイン基底関数である。

[math]J_{n,i}(t) = {n \choose i} t^i (1-t)^{n-i}[/math]

t が 0 から 1 まで変化する時、B0BN−1 を両端とするベジェ曲線が得られる。一般には両端以外の制御点は通らない

ベジェ曲面(曲面パッチなどとも)と呼ばれるような、3次元空間内の曲面への拡張にはいくつか手法がある。たとえば、目的の曲面においてパッチの端点となる3点とその3点における接平面を指定するという方法や、4点を指定し2方向のクロスハッチングのようにして面を構成するという方法がある。

作図法

前節の数式を適宜変形するなどして、コンピュータプログラムに実装すれば描画はできるわけだが、以下では3次のベジェ曲線(4個の制御点で示される曲線)を例として、手作業を念頭に置いた作図法を示す。この手順を基にした描画プログラムにも有用性があり、また人によってはベジェ曲線の性質を直観的に把握するにも有効かもしれない。

右図の P0, P1, P2, P3 が与えられた制御点である。今、ベジェ曲線の P0 から t (0 < t < 1) の比率の位置の点の座標を求めるためには、次のように計算すればよい。

  1. まず、制御点を順に結んで得られる3つの線分 P0 - P1, P1 - P2, P2 - P3(緑色の線)をそれぞれ t : 1 − t の比率で分割する点、P4, P5, P6 を求める。
  2. 次に、これらの点を順に結んで得られる2つの線分 P4 - P5, P5 - P6(赤色の線)を再びそれぞれ t : 1 − t の比率で分割する点 P7, P8 を求める。
  3. 最後に、この2点を結ぶ線分 P7 - P8(黄色の線)をさらに t : 1 − t の比率で分割する点 P9 を求めると、この点がベジェ曲線上の点となる。
  4. この作業を 0 < t < 1 の範囲で繰り返し行う事により、P0, P1, P2, P3 を制御点とする3次ベジェ曲線(青い曲線)が得られる。

脚注

  1. 鳥谷 浩志; 千代倉 弘明 (1991). 3次元CADの基礎と応用. 共立出版. ISBN 9784320025394. 

関連項目