ベジェ曲線

は 個の制御点から得られる 次曲線である。ベジエ曲線とも。

 定義 
以下の要素を所与とする：

 次数: 
 パラメータ: 
 制御点: 個のベクトル 

これらを用いて 次ベジェ曲線 は複数の表現により定義される。以下はその一例である。

 バーンスタイン表現 
バーンスタイン基底関数 を用いて、 次ベジェ曲線は以下のように定義される：

この形式でのベジェ曲線の定義は「ベジェ曲線のバーンスタイン表現」とも呼ばれる。

 ド・カステリョのアルゴリズム 
ベクトル に関する漸化式を以下のように定義する：

この漸化式を用い 次ベジェ曲線は で定義される。

このアルゴリズムは（）と呼ばれる。

 陰関数表現 
ベジェ曲線は、シルベスターやケイリーの方法により、陰関数（陰伏方程式） で表現できる。

 性質 

 端点と端制御点の一致 
 次ベジェ曲線の始点は端の制御点 と、終点はもう一方の端の制御点 と一致する。

バーンスタイン基底関数は , である（⇒バーンスタイン多項式#バーンスタイン基底関数の特性）。よってベジェ曲線を構成する殆どの項は端点において 0 となり , となる。つまり始点 が と、終点 が と一致する。

 制御点の加重平均 

ベジェ曲線は制御点座標の加重平均と見做せる。

バーンスタイン基底関数は常に和が1であり（⇒バーンスタイン多項式#1の分割）、かつ において非負である（⇒バーンスタイン多項式#区間非負）。よってベジェ曲線上の点 は各制御点 が で重みづけされた加重平均と見做せる。この意味で各バーンスタイン基底関数は混合比とも呼ばれる。

 全制御点の反映 
ベジェ曲線の端点を除いた領域は、その座標が全ての制御点の座標から影響を受ける。

ベジェ曲線は制御点座標の加重平均であり（⇒#制御点の加重平均）、その重みであるバーンスタイン基底関数は において常に正である（⇒バーンスタイン多項式#区間正値）。よって端点以外では全制御点の座標が大なり小なり曲線の各点へ反映されている。端点は例外であり、単一制御点の座標のみで決定される。

 制御点の通過 
ベジェ曲線は一般には両端以外の制御点は通らない。

ベジェ曲線の制御点の加重平均特性により、制御点を必ず通る が存在するなら が で 1、他で 0 になる点があるはずである。図からわかるように、これは のみに限られる。よって一般にはベジェ曲線は両端以外の制御点を通らない。制御点の座標によっては加重平均がたまたまある制御点と一致する場合がありうるので、制御点を通るのが常に両端のみ、というわけではない。

 分類 
ベジェ曲線は制御点の数に基づいて分類される。以下はその一例である。

 2次ベジェ曲線 
は3つの制御点で構成されるベジェ曲線である。

2次ベジェ曲線は次の式で定義される：

上式よりベジェ曲線の性質を満たすことが容易に確認できる。 の次数より2次ベジェ曲線は高々2次の曲線であると確認でき、代入により と で両端制御点の通過が確認できる。

 2次ベジェ曲線の行列形式 

 2次ベジェ曲線の陰関数表現 

とすると、

となる。

 2次ベジェ曲線の面積 
曲線の始点と終点および原点で囲まれた領域の面積はガウスグリーンの定理で求めることができる。

 2次ベジェ曲線の分割 
ド・カステリョのアルゴリズムを用いて任意の で分割することができる。分割後の2曲線の制御点は
 と 
 である。

 2次→3次変換 
2次ベジェ曲線と等価な3次ベジェ曲線の制御点は である。

 3次ベジェ曲線 
は4つの制御点で構成されるベジェ曲線である。

3次ベジェ曲線は次の式で定義される：

上式よりベジェ曲線の性質を満たすことが容易に確認できる。 の次数より3次ベジェ曲線は高々3次の曲線であると確認でき、代入による と で両端制御点の通過が確認できる。

 を で1階微分し端の制御点を代入することで、端点での接線ベクトルが求まる。これにより、

となり、端点とその隣の制御点で端点の接線が定まることがわかる。

 3次ベジェ曲線の行列形式 

 3次ベジェ曲線の陰関数表現 

とすると、

となる。

 3次ベジェ曲線の面積 

以下は2つの3次ベジェ曲線
 による と
 による の面積の例。 は制御点の並び順が原点に対し反時計回りなので面積は正の値、 は制御点の並び順が原点に対し時計回りなので面積は負の値になる。両者面積を合計することで閉包の面積が求まる。

 3次ベジェ曲線の連続性 
2つの3次ベジェ曲線
 による と
 による 
の連続性は以下のとおり。

なので、とが一致していればC0連続。

なので、 と が一致していればC1連続。

なので、 と が一致していればC2連続。

 3次ベジェ曲線の分割 
ド・カステリョのアルゴリズムを用いて任意の で分割することができる。分割後の2曲線の制御点は
 と 
 である。

 作図法 

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

右図の が与えられた制御点である。今、ベジェ曲線の から の比率の位置の点の座標を求めるためには、次のように計算すればよい。

まず、制御点を順に結んで得られる3つの線分 （水色の折れ線）をそれぞれ の比率で分割する点、 を求める。
次に、これらの点を順に結んで得られる2つの線分 （橙色の折れ線）を再びそれぞれ の比率で分割する点 を求める。
最後に、この2点を結ぶ線分 （緑色の線分）をさらに の比率で分割する点 を求めると、この点がベジェ曲線上の点となる。
この作業を の範囲で繰り返し行うことにより、 を制御点とする3次ベジェ曲線（赤色の曲線）が得られる。

 交点の算出 

 図形分割による方法 
ベジェ曲線は制御点から成る凸包に内包される性質を利用して、交点が存在する範囲を限定し曲線を切り出すことを反復するBezier clippingがある。

 代数方程式による方法（Implicitization） 
直線とベジェ曲線の交点は、直線の式の にベジェ曲線の式（ など）を
代入した方程式を解くことで、交点候補の を求めることができる。
ベジェ曲線どうしの交点は、一方の曲線の陰関数（陰伏方程式）に、他方の曲線の式を代入した方程式の実数根が交点候補となる。
交点候補は値域などの条件により交点か判定される。
この方法では、解の公式が存在しない高次方程式（3次ベジェ曲線どうしであれば9次方程式）の場合の解法が課題となる。
多数のベジェ曲線で構成された対象（PBRTのhairやfurなど）の3Dレイトレーシングにおいては、実根の有無をBudan-Fourier theoremで判定して絞り込み、Muller's methodやRidders' methodで根を求めるほうが、一般的なスツルムの定理とニュートン法などの組み合わせより効率が良いとの報告例
がある。

 Composite Bézier curve 
（）はベジェ曲線を1つのセグメントとして複数セグメントを直列に接続した曲線である。ベジェスプライン（）、ポリベジェ曲線（）とも。

N次ベジェ曲線は次数を変えずに延長できない。なぜなら延長のために制御点を追加することで次数も増加するからである。またN次ベジェ曲線は既存区間に影響を与えずに延長できない。なぜなら全制御点の反映という特性により新しい制御点座標が既存の区間にも反映されるからである。

これに対する方策にはスプライン曲線をはじめとした区分多項式がある。区分多項式ではある区間を1つの多項式で表現し、その続きの区間を別の多項式で表現し、曲線全体を複数の多項式で構成する。新しい区間の多項式は既存区間と独立しているため、上記の次数増や既存区間影響の問題を回避できる。これを採用し、ベジェ曲線で各区分を表現した区分多項式が composite Bézier curve である。

composite Bézier curve はセグメント間の連結に関して制約を置いていない。ゆえに composite Bézier curve 一般には連続性や滑らかさに関する保証がない。これはスプライン曲線・B-スプライン曲線との違いである。一方で適切な制約を課すことで連続性や滑らかさが保証された composite Bézier curve のサブタイプを見出すことができる。

 連続性の保証 
composite Bézier curve の連続性はセグメントの終点制御点と隣接セグメントの始点制御点を共有する制約により保証できる。これは端点と端制御点の一致特性より明らかである。

 滑らかさの保証 
composite Bézier curve の滑らかさはセグメント間で端点での接線を共有する制約により保証できる。これはパラメータに対する一階微分が端点で一致することと等しい。

 3次ポリベジェ曲線の作図 
3次ベジェ曲線からなるポリベジェ曲線は複雑な図形を描くためによく実利用されるため、様々な作図法が考案されている。またベジェ曲線の数学的理解無しで直感的にポリベジェ曲線を描くために、いくつかの用語がしばしば導入されている。

 アンカーポイント 
アンカーポイント（）はセグメント端点にある制御点の別名である。頂点（）、パスポイント（）、通過点とも。端点と端制御点の一致特性により、ベジェ曲線はアンカーポイント間を繋ぐ曲線とみなせる。セグメントが通らない制御点（=方向ハンドル）との区別を直感的にするためにこの用語が導入されている。

 方向ハンドル 
はセグメント端点の隣にある制御点の別名である。方向点とも。方向線の先端に位置する。アンカーポイントと区別することで直接曲線は通らないが曲がり方を決定づけるということを直感的に理解できる。

 方向線 
はセグメント端点から隣の制御点へ伸びる直線である。3次ベジェ曲線では端点での接線ベクトルが隣の制御点へ伸びるベクトルと同じ向きであるため（詳細: #3次ベジェ曲線）、方向線の概念を導入すれば端点での傾きと隣接制御点（=方向ハンドル）の位置を同時に視認できる。

 アンカーポイントと方向線による滑らかさ制御 
ポリベジェ曲線は滑らかさの保証に制約を要する（⇒#滑らかさの保証）。これは各アンカーポイントから伸びる2つの方向線のあいだにどのような制約を課すかで表現できる。

方向線が左右対称であれば接線が一致するため必ず滑らかになる。この制約が課されたアンカーポイントはスムーズポイント（）、設定そのものはシンメトリック（）、曲線、スムーズ（） などと呼称される。

多くのソフトウェアでは「mousedown でアンカーポイント設定、drag で方向ハンドル調整、mouseup で確定」を繰り返すことで滑らかなポリベジェ曲線を作図できる。2ハンドルの連動（smooth 状態）を alt で切り離す、といった操作もしばしば実装されている。

 利用 

 用途 
ベジェ曲線は様々な目的・用途に利用されている。

具体的には、ベジェ曲線は視覚芸術（絵画・アニメ・3DCGなど）に利用され、輪郭線の直接表現（参考: ドローソフト）、手書き線の補正（参考: ペイントソフト）、物体配置の補助線などとして用いられる。またフォント・カリグラフィー・タイポグラフィに利用される。工業デザインでも利用され、設計図中の物体を表現する曲線として直接表現される。GUIではグラフ型設定値の表現として用いられる。

ベジェ曲線のなかでも2次ベジェ曲線と3次ベジェ曲線は広く利用されている。特に3次ベジェ曲線は、始点と第1制御点を結ぶ線分が始点における曲線の接線になり、第2制御点と終点を結ぶ線分が終点における曲線の接線になるため、直感的に理解しやすく多用される。

 サポート 
ベジェ曲線は様々なプラットフォームでサポートされている。

PostScriptやそのフォント (Type1フォント)、SVGやHTML5のcanvasで3次ベジェ曲線を利用できる。Microsoft WindowsのGDI/GDI+、Direct2D、.NET FrameworkのSystem.Drawing.Drawing2D.GraphicsPath、WPFのSystem.Windows.Media.BezierSegmentでは3次ベジェをサポートする。AWT（Java 1.2以降で追加された, の派生クラス）、SkiaのSkPathおよびAndroidのandroid.graphics.Pathは2次と3次のベジェ両方をサポートする。

 歴史 
ベジェ曲線はフランスの自動車メーカー、シトロエン社の とルノー社のピエール・ベジェにより独立に考案された。ド・カステリョの方が先んじていたが、その論文が公知とならなかったためベジェの名が冠されている。

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

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