14: ベジェ曲線と点の距離

3次ベジェ曲線と点の距離を求めるには、

(B(t) – P)・B'(t) = 0 を解く必要がある。
(点Pからベジェ曲線上のどこかへ向かうベクトルと、向かった先の接線が垂直か確かめる)

で、これが5次らしい。

 

—–

我流の方法で解いてみた。

  1. 変曲点は切り落としておく( 13: 3次ベジェ曲線の変曲点 )
  2. 最近傍点がこの区間内となりうる領域に、点が含まれているか調べる
    ( (1本以上の青線より左)||(1本以上の赤線より左) )&&( (1本以上の青線より右)||(1本以上の赤線より右) ) 
  3. 含まれていない場合、この区間の処理は終了。
  4. 含まれている場合、この区間が十分小さければ、ここが最近傍点になる。
  5. 含まれている場合、この区間がまだ大きければ、2分割して再帰する。

 

下図では、灰色の部分は、黒で描いた曲線の区間に対する最近傍点になり得ない。
白い部分に点があるならば、十分に小さくなるまで、この区間をさらに分割する。

 

 

広告

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中