2011-11-02 102 views
1

我有一段地图旋转坐标后,我可以旋转坐标我偏移它们,所以左上坐标是(0,0)。这工作正常,我可以通过执行相同的旋转偏移组合来添加额外的覆盖图。旋转偏移坐标

rotate(x) -> offset1 

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

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

是否有可能在两个旋转和偏移合并成一个单一的旋转偏移组合,并得到同样的结果?

rotate(x+y) -> offset3 

其中OFFSET3 =偏移1+偏移2

这是这样我就可以在正确的位置添加叠加不管有多少旋转/偏移已经出现了。 Id喜欢为旋转和偏移存储单个值,并且没有一堆以前的操作。

除了去掉以前旋转/偏移完全执行新的操作,即不

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

感谢 本

回答

1

你想要transformation matrices。使用该矩阵的二维向量(x,y)的申请(TX,TY)的翻译:

translation

而且这个矩阵的旋转通过THETA:

enter image description here

多个平移和旋转可以通过简单地乘以矩阵进行组合。 (顺序很重要。)

0

之前,您可以使用一个矩阵翻译进行位移,旋转和缩放。您可以将这些矩阵相乘。