- 目次
- 絵描き
- 理解
- まとめ
- センス
【絵描き】実際にベジェ曲線を使う技法
ベジェ曲線ついて
ベクター形式とは
【ベクター形式】画像やコンピュータグラフィックを、座標や数学的な計算による図形として表現する方式のこと。
(画像形式の例)PDF, SVG, EPSなど
ベジェ曲線はベクター形式の代表的な手法である。
【発案者】ベジェ曲線の成り立ち
この曲線の理論は、フランス自動車メーカーのド・カステリョとピエール・ベジェが独立に考案しました。
1900年の真ん中ごろのお話です。
ベジェ曲線のパーツ
(アンカーポイント・ハンドル・セグメント)
【絵描き】Illustratorのベジェ曲線を使おう
【ペンツール機能】線分を描く
【ペンツール機能】カーブを描く
【理解】ベジェ曲線の数学的解説
ベジェ曲線の数式について
ベジェ曲線の定義
$\displaystyle \mathbf{P}(t) = \sum_{k=0}^{n} {}_n \mathrm{C}_k (1-t)^{n-k}t^k \mathbf{P}_k$
ド・カステリョのアルゴリズム
$\mathbf{P}_{i, j}(t) = (1-t) \mathbf{P}_{i, j-1}(t) + t \mathbf{P}_{i+1, j-1}(t)$, $1 \leqq j \leqq n$, $0 \leqq i \leqq n-j$
De Casteljauのアルゴリズムの直感的説明
ベジェ曲線の性質について
ベジェ曲線で描いた図は拡大縮小しても明瞭である
ベジェ曲線は有限個の制御点によってのみ定義される。したがって、拡大縮小をしても制御点の相対的な位置さえ変わらなければ、実際の画像は計算(アルゴリズム)によって補完される。
ゆえに、ベジェ曲線で描いた図は拡大縮小しても明瞭なままである。
これはベクター形式の画像の特徴である。
$\mathbf{P}(t)$ $= (1-t)\mathbf{P}_{0}$ $+t\mathbf{P}_{1}$, $0 \leqq t \leqq 1$
(1次ベジェ曲線は線分である)
ベジェ曲線の接線方向は $\mathbf{P}_0$ では $\overrightarrow{\mathbf{P}_0\mathbf{P}_1}$, $\mathbf{P}_n$ では $\overrightarrow{\mathbf{P}_{n-1}\mathbf{P}_n}$
(ハンドルはアンカーポイントでの接線)
ベジェ曲線は、制御点が作る凸包内にある(準備中)
[系]アンカーポイント以外の制御点はベジェ曲線上の点ではない(準備中)
まとめノート
ベジェ曲線とは
直感的に描きやすく、コンピュータやイラストソフトで滑らかに描ける曲線のこと。
制御点
$n+1$ 個の点 $\mathbf{P}_0$, $\mathbf{P}_1$, $\ldots$ , $\mathbf{P}_n$ をとる.
A. $n$ 次ベジェ曲線
$t \in [0, \ 1]$ のときの $\mathbf{P}(t)$ が描く軌跡を $n$ 次ベジェ曲線という.
$\displaystyle \mathbf{P}(t) = \sum_{k=0}^{n} {}_n \mathrm{C}_k (1-t)^{n-k} \ t^k \ \mathbf{P}_k$
B. ド・カステリョのアルゴリズム
$t \in [0, \ 1]$ とする. 下記の漸化式で定まる $\mathbf{P}(t) = \mathbf{P}_0^n(t)$ は $n$ 次ベジェ曲線と一致する. ただし, $k \in \{ 0,\ \cdots , \ n -i \}$ とする.
$$\mathbf{P}_k^i(t) = \left\{ \begin{array}{cl} \mathbf{P}_k, & i =0 \\
(1-t)\mathbf{P}_k^{i-1}(t) + t\mathbf{P}_{k+1}^{i-1}(t), & i \in \{ 1,\ \cdots , \ n\}
\end{array}\right.$$
C. ベジェ曲線の性質
- ハンドルはアンカーポイントの接線である
- アンカーポイント以外の制御点はベジェ曲線上の点ではない
- $1$次ベジェ曲線は, アンカーポイントを結ぶ線分を描く
ポイント解説
制御点
$\mathbf{P}_0$ と $\mathbf{P}_1$ は曲線の端点を決める
アンカーポイント
という. $\mathbf{P}_0\mathbf{P}_1$と $\mathbf{P}_n\mathbf{P}_{n-1}$ は, 端点での曲線の接線方向と曲がり具合を決める
ハンドル
という.

B
制御点の間を $(1-t):t$ に内分する点を繰り返し取るアルゴリズム:

C
拡大縮小に最適(
ベクター形式
)

モチベーション







