objective-c - 如何旋转坐标系?

标签 objective-c cocos2d-iphone transform rotation coordinate

如果我围绕原点旋转,我试图找到坐标的新值。

例如,假设我有点 (1,1)。 如果我将坐标轴绕原点旋转 45 度,则变换后的坐标将为 (0,1.414)

有没有办法在 cocos2d 或 objective-c 中有效地做到这一点? 即使是解释数学运算的答案也会有所帮助。

最佳答案

查看此页面: http://www.siggraph.org/education/materials/HyperGraph/modeling/mod_tran/2drota.htm

这是公式:

x' = x cos f - y sin f

y' = y cos f + x sin f

记住 sin 和 cos 需要弧度,所以你必须这样做:

double x,y;
double newX,newY;
double angle;

//Test values:
x=1;
y=1;
angle = 45;

double rad = angle*M_PI/180;

newX = x * cos(rad) - y * sin(rad);
newY = y * cos(rad) + x * sin(rad);

我没有测试这个,所以可能有拼写错误......;)

关于objective-c - 如何旋转坐标系?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9190149/

相关文章:

ios - 通过子类化 UILabel 以在 Storyboard 上使用的标准文本颜色 - (IBOutlet)

ios - 带阴影的 UITableView

ios - 使用 CGRect 裁剪图像

jquery - 如何在多个元素上延迟使用 CSS 的 "rotateX()"和 jQuery 的 animate()

css - 为什么这个 CSS3 旋转动画设置在 Chrome 和 Safari 上不起作用?

iOS7 静默推送通知不起作用

ios - Swift版Cocos2d代码: sprite1. colorRGBA

c++ - 恢复应用程序时 glUseProgram 中的 GL_INVALID_VALUE

cocos2d-iphone - Cocos2d 淡入/淡出 Action 永远重复

CSS transform Scale 平移对象,如何避免?