2

さまざまな 2D 形状 (circle-circle、circle-tri、circle-rect、rect-rect) の間の交差を正しく機能させるのにかなりの時間を費やしました。からのソリューション) を簡単なプロジェクトに使用し、現在、三角形と AABB の交差テストを実装しようとしています。

しかし、私は少し立ち往生しています。ネットで検索して考えてみましたが、思いつきませんでした。現時点で私に最大の問題を与えているのは、頂点が長方形内にない場合に、三角形のエッジ(これは二等辺三角形です)が長方形と交差するかどうかを確認することです。

これを機能させる方法はありますか?

EDIT:ステージが発生するはずだと思うので、ステージについてもう少し洞察を与えるために:

1 - 頂点が長方形内にあるかどうかを確認します (この部分は簡単です)。はいの場合、衝突、そうでない場合は続行します。

2 - エッジが長方形と交差しているかどうかを確認します。これは私が立ち往生しているところです。これを実装する方法がほとんどわかりません。

4

1 に答える 1

1

四角形の 4 本の線を定義する方程式のコレクションを計算し、三角形の線を定義する方程式のコレクションに対して解きます。

たとえば、最低点 (x1, y1) と 1 辺の勾配がgの長方形を考えると、長方形の線の 1 つが になりますy = gx + y1。同様に、長方形の他の 3 辺を表す方程式を見つけます。

三角形の辺を形成する線も同様に計算されます。2 点が与えられた直線の方程式は次のとおりです。

y - y1 = (x - x1) * (y2 - y1)/(x2 - x1)

7 つの方程式すべてを満たす x と y の値が考えられる場合は、交点があります。

編集:これは単純なアルゴリズムですが、コーディングするのは難しいかもしれません。別のオプションは、各エッジ (基本的に最小値と最大値を持つ線) を形成する間隔の式を計算し、これらを解くことです。

于 2010-10-05T00:44:47.987 に答える