【问题标题】:How to calculate transformation from screen coordinates to isometric screen coordinates?如何计算从屏幕坐标到等距屏幕坐标的转换?
【发布时间】:2017-03-04 03:45:51
【问题描述】:

我有二维坐标:

0,   0
200, 0
200, 100
400, 100
400, 200
0,   200

坐标代表以下形状:

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

屏幕上每个带有问号的点在哪里? 某些坐标很可能会变为负数,但这没关系。这在逻辑上可以通过计算偏移量来解决,使得最左边的 x 坐标为零。

【问题讨论】:

    标签: geometry coordinates trigonometry projection isometric


    【解决方案1】:

    旋转 45 度,垂直缩放 0.5

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

       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)
    

    (可能您必须将括号中的符号组合从(+-)(++) 更改为(++)(-+),具体取决于您的坐标系方向)

    【讨论】:

      猜你喜欢
      • 2013-08-08
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2011-07-20
      • 1970-01-01
      • 1970-01-01
      • 2012-08-14
      • 2017-02-05
      相关资源
      最近更新 更多