2016-01-31 57 views
2

我真的有這個問題。多邊形(四邊形)到方形單元格

我有一個可以是任何形狀的多邊形(四邊形)。當我的鼠標在多邊形內部時,我需要找到鼠標所在的位置(四邊形內)的x,y值,就好像該poygon是完美的方形。進一步解釋;我有一個應用於多邊形的32x32紋理,我需要知道鼠標結束的紋理的x,y。 我有一些代碼適用於大多數形狀,但如果TR.Y小於TL.y,則會中斷。 我有一些非常簡單的代碼,測試光標是否在多邊形內(通過兩個三角形測試)。但我無法弄清楚如何使用它來生成虛擬方形投影的x,y。

這個問題在殺我。我正在嘗試執行的操作名稱是什麼?有沒有人知道解釋方程以代碼形式(任何類型的代碼)呈現(而不僅僅是數學符號?)。任何形式的幫助都會如此讚賞。

我正在用特殊格式的紋理(每個像素具有唯一值)進行第二次渲染,以便我可以進行顏色測試以獲得近似的x,y匹配(並且精度是可以被泄露的東西在這裏不會造成太大的麻煩) - 但隨後我將不得不解決DX Lib試圖混合並平滑特殊紋理的嘗試,因爲它會被扭曲以填充四邊形。)編輯:適用於許多四元組的代碼形狀

+0

您好,歡迎SO。如果你向我們展示一些你的代碼,那麼我們可以真正弄清楚確切的問題。 – Alexander

+0

我有一個4點矩形 - 代表32x32的矩形 - 矩形旋轉了45度,然後矩形上的每個Y點都增加了一個高度值(減去y),該矩形給出了極好的等距表示(很好地連綿起伏的丘陵,高山和東西)。這個問題不是我的代碼中的一個錯誤,而是一個算法失敗 - 我需要將項目2D鼠標位置撤回到瓦片的相應x,y,並刪除「高度」調整。 –

+0

不能發佈任何*易讀的*代碼 - 用戶限制(字符&沒有圖像),因爲我只有這個帳戶。 imgur.com/mhQ04kX –

回答

1

它取決於方法 - 紋理如何繪製在這個四邊形。

如果它使用透視變換Square => Quad,則必須使用反變換矩陣Quad => Square。短article

對於線性插值方法見this page

+0

Thankyou - 在插值鏈接中使用代碼示例。試圖發佈我的結果,但字符限制限制阻止了我。但它幾乎只是你給我的鏈接中的代碼副本。謝謝 –