3次ベジェ曲線と点の距離を求めるには、
(B(t) – P)・B'(t) = 0 を解く必要がある。
(点Pからベジェ曲線上のどこかへ向かうベクトルと、向かった先の接線が垂直か確かめる)
で、これが5次らしい。
—–
我流の方法で解いてみた。
- 変曲点は切り落としておく( 13: 3次ベジェ曲線の変曲点 )
- 最近傍点がこの区間内となりうる領域に、点が含まれているか調べる
( (1本以上の青線より左)||(1本以上の赤線より左) )&&( (1本以上の青線より右)||(1本以上の赤線より右) ) - 含まれていない場合、この区間の処理は終了。
- 含まれている場合、この区間が十分小さければ、ここが最近傍点になる。
- 含まれている場合、この区間がまだ大きければ、2分割して再帰する。
下図では、灰色の部分は、黒で描いた曲線の区間に対する最近傍点になり得ない。
白い部分に点があるならば、十分に小さくなるまで、この区間をさらに分割する。