Bezier Clipping法による曲線上の最短点の検出

曲線をつかんで変形できます!

 このアプレットは、n次曲線に最も近い点をBezier Cliiping法により算出します。また、曲線上の点(x、y)からパラメータを算出する逆問題も解けます。

・曲線はn次Bezier関数で表現し、その制御点をマウスでクリックすることにより与えられます。
・n次曲線の場合,左から順に(n+1)個制御点を入力します。 次数を変えるには、上の部分をクリックし、次数を選択して下さい。
・曲線入力後、点をマウスで数点入力します。新しい曲線を入力するには、New Curveボタンをクリックして下さい。
・最近点のパラメータuおおび距離は上部に表示されます。
・最短点を判定する距離Rを指定できます(右上のフィールドで数値入力)。New Curveボタンをクリック後有効
・曲線付近をクリックし、最近点が検出されたあと、マウスをドラッグすると形状を変形できます。

点Qからの最近点Pは、曲線上の点Pでの接線と直線QPが垂直な点として算出できます。これには(2n-1)次式を解く必要がありますが、Bezier Clipping法により1次式のみで解けます。

(デバッグのため、計算途中の制御多角形の表示の有無は下部のスイッチでON/OFFを指定して下さい)
s

Javaの目次に戻る