如何将屏幕位置转换为等距位置
Posted
技术标签:
【中文标题】如何将屏幕位置转换为等距位置【英文标题】:How to convert screen position to isometric position 【发布时间】:2012-06-13 06:48:13 【问题描述】:如何将屏幕位置(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
【问题讨论】:
您想旋转多少度?只需将 (144, 88,0) 乘以旋转矩阵en.wikipedia.org/wiki/Rotation_matrix#In_three_dimensions 当然,一旦你有了角度,这可以简化为将 x 和 y 值乘以常数得到 x y z,反之亦然 【参考方案1】:您不能只有一个 X、Y、Z 点,因为一个 2D 屏幕位置将映射到多个不同的图块 - 一个位于不同的 Z 级别。如果您试图弄清楚用户在等轴测视图中单击了什么对象,最简单但有点脏的方法就是从上到下遍历所有 Z 级别,在示例函数中使用公式的反向并检查是否有任何适合单击位置,如果该位置为空,则继续下一级。
【讨论】:
以上是关于如何将屏幕位置转换为等距位置的主要内容,如果未能解决你的问题,请参考以下文章
使用 AR Foundation 将屏幕触摸位置转换为 AR 中的世界位置