首先讓我說我對數學不太好。我有一個帶有多個旋轉到300°的文本「框」的畫布,基本上使它們成爲平行四邊形。他們非常類似:畫布上的平行四邊形數學幫助
我想檢測是否鼠標在其中的一個,但我不知道該怎麼做。請幫忙。謝謝!
首先讓我說我對數學不太好。我有一個帶有多個旋轉到300°的文本「框」的畫布,基本上使它們成爲平行四邊形。他們非常類似:畫布上的平行四邊形數學幫助
我想檢測是否鼠標在其中的一個,但我不知道該怎麼做。請幫忙。謝謝!
每個平行四邊形可首先被包含在像上文所說明的一個矩形邊界框。如果鼠標不在該矩形內,那絕對不是命中。已經有很多簡單的測試。其餘的空間可以分解爲綠色的平行四邊形圖像和你不想要的區域。所以我們只需要測試,如果鼠標在紅色區域具有以下測試:
左:X <一個 - (A/H)* Y
右:X>(A + B) - (a/h)* y
如果其中任一條件爲真,則鼠標在平行四邊形之外。
有關a的值的更多信息,我們可以轉向trig。
如果我們知道角度theta和小時,然後
A = H黃褐色(Ɵ)
最簡單的方法是使用逆對鼠標點進行變換,然後對變換點進行簡單的矩形測試。只要您使用的仿射變換不會將所有內容映射到一條線上,它就會有一個明確的反轉。
1這是一個更精確的答案。 – markE