3 回答

TA貢獻(xiàn)1801條經(jīng)驗 獲得超16個贊
矩形如何顯示?三分?四分?點,邊和角度?一分兩分?還有嗎 不知不覺中,任何回答您的問題的嘗試都將僅具有學(xué)術(shù)價值。
在任何情況下,對于任何凸多邊形(包括矩形)的測試是非常簡單的:檢查多邊形的每個邊緣,假設(shè)每個邊緣在反時針方向被取向,并測試點是否位于向左的邊緣的(在左-手半平面)。如果所有邊緣均通過測試,則該點在內(nèi)部。如果至少有一個失敗-該點在外面。
為了測試該點是否(xp, yp)位于邊緣的左側(cè)(x1, y1) - (x2, y2),您只需要計算
D = (x2 - x1) * (yp - y1) - (xp - x1) * (y2 - y1)
如果為D > 0,則該點在左側(cè)。如果為D < 0,則該點在右側(cè)。如果為D = 0,則該點在線上。
該答案的先前版本描述了左側(cè)測試的看似不同的版本(請參見下文)。但是可以很容易地證明它計算出相同的值。
...為了測試點是否(xp, yp)位于邊緣的左側(cè)(x1, y1) - (x2, y2),您需要為包含邊緣的線構(gòu)建線方程。公式如下
A * x + B * y + C = 0
哪里
A = -(y2 - y1)
B = x2 - x1
C = -(A * x1 + B * y1)
現(xiàn)在您要做的就是計算
D = A * xp + B * yp + C
如果為D > 0,則該點在左側(cè)。如果為D < 0,則該點在右側(cè)。如果為D = 0,則該點在線上。
但是,該測試同樣適用于任何凸多邊形,這意味著它對于矩形可能太通用了。矩形可能允許更簡單的測試...例如,在矩形(或任何其他平行四邊形)中,的值A(chǔ)和值B具有相同的大小,但相對(即平行)邊緣的符號不同,可以利用該值簡化測試。
- 3 回答
- 0 關(guān)注
- 534 瀏覽
添加回答
舉報