2012-06-09 4 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 Конечно, если у вас есть угол, это можно упростить, умножая x и y по константам для получения xyz и наоборот –

ответ

1

Вы не можете иметь одну единственную X, Y, Z точки, потому что одна 2D положение экрана будет отображаться на нескольких различных плиток - по одному в каждом различных уровнях Z. Если вы попытаетесь определить, какой объект в изометрическом представлении пользователь щелкнул, самым простым, хотя и несколько грязным способом, будет просто цикл по всем уровням Z, начиная с верхнего и нижнего, используйте обратную формулу в вашей функции выборки и проверьте, есть ли что-нибудь подходящее для нажмите на позицию, перейдя на более низкий уровень, если это место пуст.

Смежные вопросы