2

線分と円の交点を計算した場合、この交点が円の線分上にあるかどうかをどのように判断できますか?

線分が円と交差するかどうかを示す方程式があり、その円の交点もありますが、知る必要があるのは、円のこの衝突点が円の境界内にあるかどうかです。その円の特定の arg セグメント。円弧セグメントの終点、円の中心と半径、および衝突点があります。

4

2 に答える 2

1

交点を中心の極座標に変換し、角度を比較します。

于 2010-09-14T20:46:46.750 に答える
0

ダリオのアイデア(これもうまくいくはずです)の代わりに、次のことができます。

  1. 交点と円弧の端点の間の距離を計算します ( と で表されますintdist1) intdist2
  2. 円弧の端点間の距離を計算します ( arcdist)。
  3. 円弧が円の半分未満 (カバーする角度が 180 度未満) の場合、intdist1とのintdist2両方が 未満であれば、点が円弧内にあるかどうかがわかりますarcdist
  4. それ以外の場合、円弧が円の半分より大きい (180 度以上をカバーする) 場合、intdist1またはintdist2が より大きい場合、点が円弧内にあるかどうかがわかりますarcdist

他に指定していないので、エンドポイント間の弧は短い道を進んでいると思います。その場合、上記の手順 4 について心配する必要はありません。

ただし、円の 180 度を正確にカバーする円弧を使用している場合、この方法は失敗します。その場合、180 度の円弧を 90 度の円弧に分割し、両方をチェックできると思います。

また、もちろん、距離の 2 乗を使用してこれらの距離を比較し、平方根を節約することもできます。さらに、この方法は、高価な逆余弦を使用するため、角度を計算するよりも高速である必要があります。

于 2010-09-14T20:56:02.423 に答える