math - 如何沿圆移动点?

标签 math cocos2d-iphone trigonometry

我想通过使用圆半径和移动角度以圆周运动移动 Sprite 。

例如,我知道 Sprite 在半径为 10 的圆圈中移动,它的当前位置是 (387,38),角度是 28 度。现在我不想移动它说,沿圆周长 100 像素。

Pic describing the scenario

p1 = x&y coordinate, known (387,38) in example with movingangle 28 degrees
r = radius, known (10 in example)
l = distance to move along bend, known (100px in example)
p2 = new point, what is this x and y value?

我有一个有效的解决方案,但我不太喜欢它。这对我来说没有意义,它需要比我认为需要的更多的计算。它的工作原理是首先使用 p1 计算中心点,然后向后执行相同的操作以获得 p2(使用余弦和正弦)。我相信应该有一种更快的方法,但我找不到任何人这样做。

我标记 cocos2d 的原因是因为这就是我正在使用的内容,有时游戏框架会提供函数来帮助处理三角函数。

最佳答案

尝试这个:

a1 = 28*(π/180)
cen.x = p1.x - r*SIN(a1)
cen.y = p2.y - r*COS(a1)
a2 = a1 + l/r
p2.x = cen.x + r*SIN(a2)
p2.y = cen.y + r*COS(a2)

没有比这更简单的了。从 p1 移动到圆心,然后移动到 p2。

关于math - 如何沿圆移动点?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11462239/

相关文章:

math - 椭圆弧长

c - 在 C 中用数组绘制轨迹图

ios - 动画时,CCSprite在其他CCSprite之上的定位问题吗?

Python:尽可能高效地使用三角函数估计 Pi

iphone - 游戏中的数学逻辑(基本三角函数),这段代码在做什么?

matlab - 在Matlab上绘制正弦波的问题

algorithm - 最小化总和之差的绝对值

python - 截断 pandas df 中值的小数位

cocos2d-iphone - 从发射器移动所有粒子

iphone - 在 iPhone 中缩放和保存照片库中的 UIImage?