3

線分と円弧の間の距離を確認するにはどうすればよいですか?

弧は塗りつぶされていないので、それが含まれる円の外縁だけがカウントされます。

衝突検出を行いたい。基本的に、2 つの円形オブジェクトがあります。1 つは直線上を移動し、もう 1 つは円弧上を移動します。オブジェクトには衝突半径があります。

これは正確な衝突検出ではないことに注意してください。これは、一定の速度で移動する時間分析 (反復的な解決策があります) を行うための閉じた形式の解決策はないと考えているためです。

疑似コードが必要なだけです。円弧を太さのない 2 つの円弧と両端の 2 つの円に変換し、従来のアルゴリズムを使用することでこれを行うことができますが、これは時間に敏感です。それをプリミティブに分解して個別にチェックすると、いくつかのことを再チェック/再計算することになり、不要な計算は避けたいと思います。

4

1 に答える 1

2

アークが私が思っているとおりであることを願っています (英語は私の言語ではありません)。これが私がやった方法です。最後の関数は問題を解決する関数で、前の関数はユーティリティです。それは正常に動作します。アイデアは、円と線の間の交点を計算し、円弧または線分上にない交点を拒否することです。

注 : 円弧は、その中心 (xc,yc)、半径、および 2 つの角度によって定義されます。2 つの角度が 2 つの円弧 (反時計回りと時計回り) を定義するため、円弧は最初の角度から 2 番目の角度まで反時計回りに進むと仮定しました。両方の角度は [0,2.PI[ にあるため、円弧が (xc+R,yc) を通る場合、最初の角度は 2 番目の角度よりも大きくなければなりません。

コードは C++ です。それを疑似コードに戻す時間はありませんでした。お役に立てば幸いです。

アークが私が思っているとおりであることを願っています (英語は私の言語ではありません)。これが私がやった方法です。最後の関数は問題を解決する関数で、前の関数はユーティリティです。それは正常に動作します。アイデアは、円と線の間の交点を計算し、円弧または線分上にない交点を拒否することです。

注 : 円弧は、その中心 (xc,yc)、半径、および 2 つの角度によって定義されます。2 つの角度が 2 つの円弧 (反時計回りと時計回り) を定義するため、円弧は最初の角度から 2 番目の角度まで反時計回りに進むと仮定しました。両方の角度は [0,2.PI[ にあるため、円弧が (xc+R,yc) を通る場合、最初の角度は 2 番目の角度よりも大きくなければなりません。

コードは C++ です。それを疑似コードに戻す時間はありませんでした。お役に立てば幸いです。

URL : http://www.fichiers.univ-metz.fr/depot/minich/SegmentArcIntersection.txt

利用可能 2 週間!

于 2012-11-26T18:01:29.493 に答える