2012-06-09 68 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级别,但在示例函数中使用公式的逆向,并检查是否有适合于点击位置,如果这个地方是空的,则进入较低级别。