逐点翻译ios

时间:2013-10-20 01:39:28

标签: ios translation points angle

这是我的代码剪辑 - 它应该围绕原点旋转点然后将其转换回来

    angle = angle * M_PI / 180;
point1.x = (point1.x) * cos(angle) - (point1.y) * sin(angle);
point1.y = (point1.x) * sin(angle) + (point1.y) * cos(angle);

之后,为了翻译应该“移动”的点,将根据“旋转”之后的象限指定条件 - 例如,如果它在1,x + = 2 * x和y + = 2 * y。这里的问题是旋转:例如,对于130度的角度,对于点(100,100),这里是新点x的坐标:CGFloat-3.09086e-06,y:CGFloat100。我做错了什么?

1 个答案:

答案 0 :(得分:4)

当您计算point1.y时,您已使用已翻译的point1.x。修复您的代码,如下面的代码:

angle = angle * M_PI / 180;
CGPoint result = CGPointZero;
result.x = (point1.x) * cos(angle) - (point1.y) * sin(angle);
result.y = (point1.x) * sin(angle) + (point1.y) * cos(angle);

在未来的计算中使用result点。