同じ色の線分は平行です。$c_{i,0},c_{i,1},c_{i,2}$を3点とする平行四辺形の残りの点($c_{i,1}$の対角位置)を$P$とし、$c_{i,0},c_{i,1},P$を3点とする平行四辺形の残りの点($c_{i,1}$の対角位置)を$R$とします。$c_{i,0}$を原点としたときに、$\frac{1}{2}c_i'(t)=(1-t)(c_{i,1}-c_{i,0})+t(c_{i,2}-c_{i,1})$がどこを示す位置ベクトルになるかというと、見たまんま内分点なので図の点$Q$です。c_{i,1})$は点$R$を示します。c_i''(t)$の絶対値は、以下の領域の面積になります。これは、以下の領域の面積と等しいことが等積変形によってわかります。c_i''(t)=2\triangle(c_{i,0},c_{i,1},c_{i,2})であることが分かります。初等幾何は楽しいですね。いうわけで再掲すると、2次ベジェ曲線の$i$番目のセグメント上の点$c_i(t)$における曲率は、\kappa_i(t)=\frac{\triangle(c_{i,0},c_{i,1},c_{i,2})}{\|(1-t)(c_{i,1}-c_{i,0})+t(c_{i,2}-c_{i,1})\|^3}で求められます。3(\|c_i'(t_i)\|)'}{\|c_i'(t_i)\|^4}&=0\\\\2c_i'(t_i)c_i''(t_i)&=0\\\\((c_{i,0}-2c_{i,1}+c_{i,2})t_i-(c_{i,0}-c_{i,1}))\cdot(c_{i,0}-2c_{i,1}+c_{i,2})&=0\end{align}というわけでt_i=\frac{(c_{i,0}-c_{i,1})\cdot(c_{i,0}-2c_{i,1}+c_{i,2})}{\|c_{i,0}-2c_{i,1}+c_{i,2}\|^2}となります。c_{i,2}'=c_{i,2}-c_{i,1}$とおけば、t_i=\frac{c_{i,0}'\cdot(c_{i,0}'+c_{i,2}')}{\|c_{i,0}'+c_{i,2}'\|^2}とそこそこ綺麗な形になります。このように、与えられたベジェ制御点から曲率極大点を求めるのは簡単です。κ-Curvesはこの逆、与えられたユーザ制御点を曲率極大点$c_i(t_i)$とし、それを満たすベジェ制御点を逆算するシステムです。κ-Curvesいよいよκ-Curvesを構成していきます。制約4:ほぼ$G^2$連続4つの制約を順に見ていきましょう。範囲制限をつけずに$i+1$とか$i-1$とか書きますが怒らないでください。非ループ版への拡張は簡単です。制約1:ユーザ制御点で極大曲率$p_i=c_i(t_i)$を、$c_{i,1}$について整理してみます。c_{i,2}$のときなので、個別に簡単に考えることができます。これを先程導出した$t_i$の式:t_i=\frac{(c_{i,0}-c_{i,1})\cdot(c_{i,0}-2c_{i,1}+c_{i,2})}{\|c_{i,0}-2c_{i,1}+c_{i,2}\|^2}に代入して気合で整理すると、以下の$t_i$の三次方程式が得られます。\|c_{i,2}-c_{i,0}\|^2t_i^3+3(c_{i,2}-c_{i,0})\cdot(c_{i,0}-p_i)t_i^2+(3c_{i,0}-2p_i-c_{i,2})\cdot(c_{i,0}-p_i)t_i-\|c_{i,0}-p_i\|^2=0ただの3次方程式なので、解の公式(カルダノの公式)で解くことができます。書き直せば、少し短くなります。\|c'_{i,2}\|^2t_i^3-3c'_{i,2}p'_it_i^2+(2p_i'+c_{i,2}')p_i't_i-\|p_i'\|^2=0綺麗にするもっと綺麗に整理するために、$p_i$から見たローカル座標で考えてみましょう。v_2=c_{i,2}-p_i$とすると、\|v_2-v_0\|^2t_i^3+3(v_2-v_0)v_0t_i^2+(3v_0-v_2)v_0t_i-\|v_0\|^2=0ですが、これは以下のように変形できます。v_2\\-\|v_2\|^2\end{matrix}\right)\cdot\left(\begin{matrix}(1-t_i)^3\\t_i(1-t_i)^2\\t_i^2(1-t_i)\\t_i^3\end{matrix}\right)=0対称的な形になりました。2つ目、3つ目の係数を調整すれば3次のバーンスタイン多項式として扱えます。実解の範囲と個数ところでこの方程式は、必ず$[0,1]$内にただ1つの実解を持ちます。自明ではなく、論文にもAppendixに証明があります。概略は以下のとおり:まず中間値の定理より、$[0,1]$内に実解が一つ以上存在します。0$であれば実解は1つだけです。v_2<0$の場合も、導関数の正負は$[0,1]$内で一定であることが示せるので、実解は1つだけです。曲線全体の位置が連続であることを保証する制約です。任意の$i$について、c_{i,2}=c_{i+1,0}が満たされればよいですね。