2014-01-08 43 views
0

首先讓我說我對數學不太好。我有一個帶有多個旋轉到300°的文本「框」的畫布,基本上使它們成爲平行四邊形。他們非常類似:畫布上的平行四邊形數學幫助

enter image description here

我想檢測是否鼠標在其中的一個,但我不知道該怎麼做。請幫忙。謝謝!

回答

1

Decomposition

每個平行四邊形可首先被包含在像上文所說明的一個矩形邊界框。如果鼠標不在該矩形內,那絕對不是命中。已經有很多簡單的測試。其餘的空間可以分解爲綠色的平行四邊形圖像和你不想要的區域。所以我們只需要測試,如果鼠標在紅色區域具有以下測試:

左:X <一個 - (A/H)* Y

右:X>(A + B) - (a/h)* y

如果其中任一條件爲真,則鼠標在平行四邊形之外。

  • 注意,在這種情況下,我假設y是0在頂部,隨着你向下移動,x是在左零,並隨着你向右移動。

有關a的值的更多信息,我們可以轉向trig。

enter image description here

如果我們知道角度theta和小時,然後

A = H黃褐色(Ɵ)

2

最簡單的方法是使用對鼠標點進行變換,然後對變換點進行簡單的矩形測試。只要您使用的仿射變換不會將所有內容映射到一條線上,它就會有一個明確的反轉。

+0

1這是一個更精確的答案。 – markE