らんだむな記憶

blogというものを体験してみようか!的なー

graphics

2次Bézierと3次Bézier

コントロールポイント$Q_0,\ Q_1,\ Q_2$からなる2次Bézier曲線は実は厳密に、ある3次Bézier曲線として実現できる。その3次Bézier曲線はコントロールポイント$P_0,\ P_1,\ P_2, P_3$からなるとして、パラメータを$t$として、素朴に以下の等式を考える。 \begi…

de Casteljau's algorithm

面倒臭そうだったので、ずっと放置していたが、Bézier曲線のde Casteljau's algorithmに触れてみた。 実際に計算したらそんなに面倒臭くもなかった。 Paul de Casteljauという物理学者にして数学者なフランス人によるらしいのだが、"ポール・ドゥ・カストゥ…

曲線の交点2

さて、曲線が$y = f(x),\ y = g(x)$の時は良いのだが、パタメータ表示されている場合が面倒くさい。簡単のためにパラメータの動く範囲を有界閉区間に制限して \begin{equation} p(s) = \{ x_1(s),\ y_1(s) \},\ 0 \le s \le 1,\ q(t) = \{ x_2(t),\ y_2(t) \…

曲線の交点

高校とかでよく曲線の交点を求めよなんて問題が出たものだ。 単純なものでは、2次元平面内の曲線 \begin{equation} y = f(x),\ y = g(x) \end{equation} の交点を求めるというもので、$y$同士を等号で結んで$f(x) = g(x)$として、$x$についての方程式を解く…

3次Bézierスプライン曲線の極値

3次Bézierスプライン曲線の極値を求めたい。あるセグメントが \begin{equation} P_0 = (x_0, y_0),\ P_1 = (x_1, y_1),\ P_2 = (x_2, y_2),\ P_3 = (x_3, y_3) \end{equation} から定まるとする。 この時、セグメントは \begin{equation} \ell(t) = (1-t)^3 …

ますますBézier曲線

TrueTypeフォントとか滑らかなやつはベクターデータで書かれていたりする。 AppleのマニュアルDigitizing letterformsを斜め読みすると「Bezier quadratic curves」なんて出てくるし、 \begin{equation} p(t) = (1-t)^2 p_{0} + 2t(1-t) p_{1} + t^2 p_{2} \…

Bézier曲線

なんか、svgタグでパスが書けちゃうらしいので実験。 とりあえずパス – SVG 1.1 (第2版)でも参考にしてみる。 ははぁ、随分楽に描ける。 <svg width="5cm" height="4cm" viewBox="0 0 500 400" xmlns="http://www.w3.org/2000/svg" version="1.1"> <path d="M 0,100 C 0,200 200,200 200,100" fill="none" stroke="red" /> </path></svg>