【问题标题】:Rotating offset coordinates旋转偏移坐标
【发布时间】:2011-12-20 08:11:00
【问题描述】:

我有一部分可以旋转的地图,在旋转坐标后我偏移了它们,所以左上角的坐标是 (0,0)。这很好用,我可以通过执行相同的旋转偏移组合向地图添加额外的叠加层。

rotate(x) -> offset1

问题是如果我尝试执行第二次旋转,即

rotate(x) -> offset1 -> rotate(y) -> offset2

是否可以将两个旋转和偏移组合成一个旋转偏移组合并获得相同的结果?

rotate(x+y) -> offset3

其中 offset3 = offset1 + offset2

这样我就可以在正确的位置添加叠加层,而不管有多少旋转/偏移。我想为旋转和偏移存储一个值,并且没有一堆以前的操作。

除了在执行新操作之前完全删除之前的旋转/偏移之外,即 NOT

 -offset1 -> rotate(-x) - > rotate(y) -> offset2

谢谢 本

【问题讨论】:

    标签: java math graphics coordinates


    【解决方案1】:

    你想要transformation matrices。使用此矩阵对 2D 向量 (x,y) 应用 (tx,ty) 的平移:

    这个矩阵用于旋转θ:

    只需将矩阵相乘即可​​组合多个平移和旋转。 (顺序很重要。)

    【讨论】:

      【解决方案2】:

      您可以使用矩阵平移执行偏移、旋转和缩放。您可以通过将矩阵相乘来组合它们。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-10-16
        • 2014-01-11
        • 2010-12-17
        • 1970-01-01
        • 2013-08-20
        • 2021-08-07
        • 2018-06-23
        • 1970-01-01
        相关资源
        最近更新 更多