2012-06-09 67 views
2

如何將屏幕位置(X,Y)轉換爲等軸測位置?如何將屏幕位置轉換爲等距位置

我有等距的位置轉換爲屏幕上的位置在這裏代碼:http://jsfiddle.net/CR3JS/

這是公式軸:http://s15.postimage.org/xyxfukxkp/iso_Axis.jpg

我的問題是:如何在屏幕上的位置轉換(X,Y)到等軸測位置?

喜歡的東西:

screenToIsometric(144, 88) -> X: 10, Y: 0, Z: 1 
+0

你想旋轉多少度?這是一個旋轉矩陣乘以(144,88,0)的問題http://en.wikipedia.org/wiki/Rotation_matrix#In_three_dimensions 當然,一旦你有了角度,這可以簡化爲乘以y值由常數得到xyz,反之亦然 –

回答

1

你不能有一個單一的X,Y,Z點,因爲一個2D屏幕位置將映射到幾個不同的瓷磚 - 一個在每一個不同的Z水平。如果你試圖找出用戶點擊等軸測視圖中的哪個對象,最簡單的方法,雖然有點骯髒的方法只是從上到下循環遍歷所有Z級別,但在示例函數中使用公式的逆向,並檢查是否有適合於點擊位置,如果這個地方是空的,則進入較低級別。