編集:誰もが興味を持っている場合には、私はこの問題を解決するために使用(C#で)2つの矩形の重複領域を見つける
シンプルコード(フレドリックのおかげで):
int windowOverlap(Rectangle rect1, Rectangle rect2)
{
if (rect1.IntersectsWith(rect2))
{
Rectangle overlap = Rectangle.Intersect(rect1, rect2);
if (overlap.IsEmpty)
return overlap.Width * overlap.Height;
}
return 0;
}
オリジナル質問:
2つの長方形が重なり合っているかどうか、重複の面積を計算しているかどうかを確認するには、素早く汚れた方法を知りたいのですが、好奇心のために、私は、1)両方の矩形のすべての線が垂直または水平のいずれかであるか、2)任意の2つの矩形の一般的な場合に興味がありますが、本当に必要な答えはケース1です。
()私は、分離軸試験を使用して考えていたが、矩形が唯一の水平線と垂直線を持っている場合(速い)さらに簡単があるA.Intersectsについて
double areaOfOverlap(Rect A, Rect B)
{
if (A.Intersects(B))
{
// calculate area
// return area
}
return 0;
}
:私はの線に沿って考えています確認する方法は?
交差する領域を計算するには、矩形が水平および垂直線のみの場合はすばやい方法がありますか?
最後に、これは質問には関係ありませんが、私はコンピュータグラフィックスの数学を見直すことができる良い本/ウェブページに誰かがあるかもしれないアドバイスを感謝します。私はしばらく大学を去り、私はすべてを忘れているように感じる:)!他の誰かがその問題を抱えていますか?
が(注:私は、より複雑なようだし、直接の質問に答えていないthisとは異なるこの質問を見つけました)
どちら側に依存します:フレドリック(彼の答えは私のupvoteを持って、私はこの1つを作ったと同時に、彼の応答を行います。あなたはマイク
編集this page on Wikipedia?
を見てきました –
** if(overlap.IsEmpty)** は でなければなりません** if(!overlap.IsEmpty)** – ReinierDG