我正在Javascript项目中制作2D表格的等距投影。我正在使用以下函数计算我的等轴测坐标(来自笛卡尔(:
var isoX = x - y;
var isoY = (x + y) / 2;
我遇到的问题是这会顺时针旋转所有内容:
AB
CD
成为
A
C B
D
相反,我希望它成为
B
A D
C
我可以以某种方式调整上述功能来实现这一点吗?如果没有,有没有其他方法可以做到这一点?
一个想法是在投影步骤之前旋转表格。
逆时针 90 度的 2D 旋转矩阵为
[ 0 1]
[-1 0]
将其放入代码中,此转换会将所有内容围绕 (0,0( ccw 旋转 90 度:
var transformedX = y;
var transformedY = -x;
然后,只需使用转换后的坐标进行投影。
var isoX = transformedX - transformedY;
var isoY = (transformedX + transformedY) / 2;