0

指定:
連結されたベジエ曲線からのスプライン。
必要なポイント

:
そのポイントに最も近い、スプラインの 1 つのベジエ曲線を見つけます。

解決策:
各ベジエ曲線で最も近い点を繰り返し見つけ、全体的に最も近い点を持つ曲線を選択します。

質問:
曲線上の正確な点が必要ない場合、これを行う簡単な方法はありますか? たとえば、コントロールポイントから指定されたポイントまでの 2 つのベジエ曲線の距離を比較する演算子はありますか?
曲線 A、B、C までの距離を知る必要はありません ... 曲線を相対的な距離で並べ替えるだけで済みます。(--> 最も近い点ではなく、最も近い曲線を見つけます。)

ありがとう!

4

1 に答える 1

0

ポイントと曲線の境界ボックスの間の最小距離と最大距離を見つけることができます。これらの 2 つの距離は、点と曲線の間の実際の距離の下限と上限になります。だから、あなたは持っています

MinDist(P, Bbox(C1)) <= Dist(P,C1) <= MaxDist(P, Bbox(C1))
MinDist(P, Bbox(C2)) <= Dist(P,C2) <= MaxDist(P 、Bbox(C2))

また、MaxDist(P, Bbox(C1)) < MinDist(P, Bbox(C2)) または MaxDist(P, Bbox(C2)) < MinDist(P, Bbox(C1)) であることがわかる場合は、次のように結論付けることができます。どちらの曲線 C1 または C2 が点 P に近いかを調べます。ただし、これらの条件がない場合は、下限/上限を見つけても役に立たず、点と曲線の間の実際の距離を計算する必要があります。

于 2014-11-28T23:41:04.040 に答える