円が外側の長方形に接しているか、 2Dユークリッド空間の長方形の外側に(部分的に)配置されているかをどのように判断できますか?
長方形は常に軸に揃えられます。
基本的には、空間を一定の角度で一定のステップで移動するボールを使った簡単なゲームを作成しています。
円が外側の長方形に接しているか、 2Dユークリッド空間の長方形の外側に(部分的に)配置されているかをどのように判断できますか?
長方形は常に軸に揃えられます。
基本的には、空間を一定の角度で一定のステップで移動するボールを使った簡単なゲームを作成しています。
s1, s2, s3, s4
上から時計回りに移動する長方形の 4 つの辺を示しましょう。
円の中心から 4 つの線のそれぞれまでの距離を確認します。d1, d2, d3, d4
(側面に対応する番号が付けられています)。点から線までの (直交) 距離を導き出す簡単な式があることに注意してください。
必要な (ただし十分ではない) 条件は、線の 1 つからの距離が半径の長さであることです (実用的には、差は選択したデルタよりも小さくなります)。
|d1 - r| < delta || ...
円が完全に長方形の内側にある場合、これを十分条件にすることができます。これは、各距離が長方形の対応する辺間の距離から半径を引いたものよりも小さい場合に当てはまります。
d1 <= |s1 - s3|-r && d2 <= |s2 - s4|-r && ...
部分的に外側をチェックすることは、最後の段落の反対をチェックするのと同じくらい簡単です (必要に応じて、半径がまだボックス内にあることをチェックします):
d1 > |s1 - s3|-r || d2 > |s2 - s4|-r || ...