線分と円の交点を計算した場合、この交点が円の線分上にあるかどうかをどのように判断できますか?
線分が円と交差するかどうかを示す方程式があり、その円の交点もありますが、知る必要があるのは、円のこの衝突点が円の境界内にあるかどうかです。その円の特定の arg セグメント。円弧セグメントの終点、円の中心と半径、および衝突点があります。
線分と円の交点を計算した場合、この交点が円の線分上にあるかどうかをどのように判断できますか?
線分が円と交差するかどうかを示す方程式があり、その円の交点もありますが、知る必要があるのは、円のこの衝突点が円の境界内にあるかどうかです。その円の特定の arg セグメント。円弧セグメントの終点、円の中心と半径、および衝突点があります。
交点を中心の極座標に変換し、角度を比較します。
ダリオのアイデア(これもうまくいくはずです)の代わりに、次のことができます。
intdist1
) intdist2
。arcdist
)。intdist1
とのintdist2
両方が 未満であれば、点が円弧内にあるかどうかがわかりますarcdist
。intdist1
またはintdist2
が より大きい場合、点が円弧内にあるかどうかがわかりますarcdist
。他に指定していないので、エンドポイント間の弧は短い道を進んでいると思います。その場合、上記の手順 4 について心配する必要はありません。
ただし、円の 180 度を正確にカバーする円弧を使用している場合、この方法は失敗します。その場合、180 度の円弧を 90 度の円弧に分割し、両方をチェックできると思います。
また、もちろん、距離の 2 乗を使用してこれらの距離を比較し、平方根を節約することもできます。さらに、この方法は、高価な逆余弦を使用するため、角度を計算するよりも高速である必要があります。