レイと3次元曲線上の最短点の検出

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

このアプレットは、n次の3次元曲線に最も近い点をBezier Cliiping法により算出します。また、スクリーン上の点(x、y)からパラメータを算出する逆問題も解けます。
・3次元曲線はn次Bezier関数で表現し、その制御点をマウスでクリックすることにより与えられます。
・n次曲線の場合,左から順に(n+1)個制御点を入力します。 次数を変えるには、上の部分をクリックし、次数を選択して下さい。
・曲線を見る方向をマウスをドラッグすることで変更できます。最近点を検出するモードにするには、findスイッチをクリックし、見る方向を変化させるにはrotateスイッチをクリックします。rotateスイッチを2回クリックすると、見る方向が正面に戻ります。
・視点は、距離R、方位角theta、仰角piを変化させます。
・曲線入力後、点をマウスで数点入力します。新しい曲線を入力するには、New Curveボタンをクリックして下さい。
・最近点のパラメータuおおび距離は上部に表示されます。
・最短点を判定する距離Rを指定できます(右上のフィールドで数値入力)。New Curveボタンをクリック後有効
・曲線付近をクリックし、最近点が検出されたあと、マウスをドラッグすると形状を変形できます。

投影された曲面は有理Bezier曲線となり,投影面上で最近点を検出します。点Qからの最近点Pは、曲線上の点Pでの接線と直線QPが垂直な点として算出でき、Bezier Clipping法により1次式のみで解けます。
s

by T. Nishita ('97 Aug.)
Javaの目次に戻る