ヘルミート曲線どうしの交差判定:FatLine + ベジエクリッピング法
赤系=曲線A、青系=曲線B。各曲線は3次ヘルミート曲線で、
アンカー点 P0・P1(大きい丸)と接線ハンドル T0・T1(ひし形)をドラッグして形を変えられます。
アンカー点をドラッグすると接線ベクトルを保ったまま平行移動し、ハンドルをドラッグすると接線ベクトル(速度)の向きと大きさが変わります。
ヘルミート曲線 H(t) = h00(t)P0 + h10(t)T0 + h01(t)P1 + h11(t)T1 は、
3次ベジエ曲線と数学的に等価(B1=P0+T0/3, B2=P1−T1/3)なので、内部では等価なベジエ制御点に変換したうえで
FatLine(相手曲線の制御点を包む2本の平行線, d∈[dmin,dmax])による反復クリッピングで交点を求めています。
サブパネルで「次のステップ」を押すと、その回に使われているFatLineの2平行線(紫破線)と、
処理中の各曲線の区間(太線ハイライト)がこのメインキャンバス上にも表示されます。