私はあなたが数学を始めることができます。 私はベジェがどのように定義されるか、二次わからないんだけど、それはへ 同等でなければなりません:
(x(t), y(t)) = (a_x + b_x t + c_x t^2, a_y + b_y t + c_y t^2),
0 < t < 1
。 a、b、cは曲線を定義する6つの定数です。あなたは(X、Y)までの距離たい
:あなたは上記の量を最小限に抑えt
を見つけたいので
sqrt((X - x(t))^2 + (Y - y(t))^2 )
を、あなたはt
への 一次導関数の相対を取り、0に等しいことを設定します。 t
で次方程式がある
0 = (a_x - X + b_x t + c_x t^2) (b_x + 2 c-x t) + (a_y - Y + b_y t + c_y t^2) (b_y + 2 c_y t)
: これは、あなたが(SQRTと2倍を落とす)を与えます。分析ソリューションは既知であり、Web上で見つけることができます。 t
の力の係数(すなわち、0 = a + b t + c t^2 + d t^3)を得るために、おそらく少しの代数を行う必要がある。代わりに、ニュートン・ラフソンを使って数値的にこの方程式を解くこともできます。
ただし、3つの解決策のいずれもあなたの範囲にない場合は、0 < t < 1
に注意してください。その場合は、(X、Y)(最初の式)までの距離の値をt = 0
とt = 1
に計算し、2つの最小距離を取るだけです。
EDIT:
あなたは一階微分= 0を解くときに実際に、あなたが得る解決策は、最大距離だけでなく、最低限のことができます。したがって、得られる解の距離(最初の等式)(t
の3つまでの値)とt=0
とt=1
の距離を計算し、それらの値の実際の最小値を選択する必要があります。
ほとんどの場合、5次曲線で見つかった実装は、変更なしで2次曲線でも機能します。 – toto2