如何计算从屏幕坐标到等距屏幕坐标的转换?

时间:2016-10-21 18:30:01

标签: geometry coordinates trigonometry projection isometric

我有二维坐标:

select1 = Select(ide.find_element_by_css_selector("select[onchange*='chkQuickStartType']"))

坐标代表以下形状: enter image description here

但我想动态计算转换为等轴投影的每个点的屏幕坐标。 所以我有字面屏幕坐标的坐标列表,我想从中生成屏幕坐标,代表形状的等距“版本”。 请注意,我不想计算“等距世界”中的坐标,我想获得文字屏幕坐标。 (旋转45度,垂直缩放0.5)

enter image description here

屏幕上的每个点都带有问号? 一些坐标很可能会变成负数,但这很好。这可以通过计算偏移来逻辑解决,以便最左边的x坐标为零。

1 个答案:

答案 0 :(得分:2)

  

旋转45度,垂直缩放0.5

这是仿射变换:
按旋转中心(xc,yc)坐标转换
旋转
向后移动xc和一些yc(你可能需要另一个y-shift来与屏幕边缘对齐) 按y轴缩放

var currLocation = workOrderSet.getCurrentRecord().get("location");
filter.push({siteid: siteid, location: currLocation});

(可能您需要更改括号中的符号组合,从 sq = Sqrt(2)/2 //Cos and Sin of 45 x_new = xc + (x_old - xc) * sq - (y_old - yc) * sq y_new = 0.5 * (yc + (x_old - xc) * sq + (y_old - yc) * sq) 更改为(+-)(++),具体取决于您的坐标系方向)