当改变10度旋转视图的中心点时,中心点的指定坐标将与超视图的坐标系不匹配。
例如,当你想直接向上移动y - 50,而没有水平移动(即x = theRotatedView.center.x)时,y方向的移动将会旋转。视图将向上和向右,而不仅仅是向上。
旋转在视图上完成,而不是在图层上完成。
我可以将它包装在执行运动的超视图中,而子视图执行旋转。那我转换没问题。但也许有一些简单的解决方案。我只想移动旋转视图的中心,就好像视图没有旋转一样,即当想要将y递减10时,只需这样做而不必担心旋转的坐标。是否存在用于在坐标系之间进行转换的任何方法或函数,以便我可以在超视图坐标中指定中心点坐标,将它们应用于旋转视图的中心属性时它是正确的吗?
答案 0 :(得分:1)
查看CGAffineTransform方法,例如CGAffineTransformMake,以便更简单地生成所需的变换。您可以将旋转和平移组合在一个矩阵中。
答案 1 :(得分:0)
您可以将坐标乘以变换矩阵。这会将您的坐标放入父视图的“坐标空间”中。您还可以使用父视图的逆矩阵来获取父视图中的坐标,并将它们返回到“世界空间”。
http://en.wikipedia.org/wiki/Rotation_matrix
进一步阅读页面下面的伪代码示例。