1
我有一個名爲Rectangle的類,它由兩對整數組成,意思是表示一個矩形的左上角和右下角的XY座標。我還有一個名爲Quadrant的類,它由X值分別爲正方形區域上的最左邊,中間和最右邊的點(分別爲leftX,midX和rightX)以及頂部,中部和底部的相似值Y平面(botY,midY,topY)。我想確定給定的矩形是否接觸給定象限的x或y平面的中間部分。現在,這是我這樣做代碼:查找矩形是否觸及一條線
boolean isIntersect(Rectangle rect, Quadrant node)
{
boolean xOver = false;
boolean yOver = false;
if((rect.bottomRight.x >=node.midX && rect.topLeft.x <= node.midX) ||
(rect.bottomRight.x <=node.midX && rect.topLeft.x >= node.midX))
{
xOver = true;
}
if((rect.bottomRight.y <= node.midY && rect.topLeft.y >= node.midY) ||
(rect.bottomRight.y >= node.midY && rect.topLeft.y <= node.midY))
{
yOver = true;
}
if (yOver || xOver == true)
{
System.out.println("intersection found");
return true;
}
else
{
System.out.println("no intersection found");
return false;
}
}
測試此代碼與隨機矩形後,我知道有很多這並不能掩蓋的情況下,但我不知道哪些或如何解決它們。有誰知道更好,更徹底的算法?
那麼矩形是ax-paralell? – AlexWien
你可能會考慮在codereview.stackexchange.com上發佈此代碼後,你認爲你已經獲得了大部分(或全部)角落:) –