找到移动对象的某个点的x和y坐标

时间:2011-10-19 16:05:36

标签: objective-c math cocos2d-iphone ccsprite

如果你很了解目标c,那么只需阅读最后2个句子。剩下的部分只是总结了最后的两个篇幅:


所以我有两个精灵,下臂和上臂。我将锚点设置为ccp(0.5f,0.0f)所以让我们说下面的破折号代表下臂,锚点是括号中的破折号:( - )------。因此,对象围绕此点旋转(此时CGPoint为ccp(100,55))。

我需要的是,如果下臂在括号内围绕短划线旋转:( - )----- o圆圈表示我想要的点。我基本上连接了两个手臂,试图使机芯看起来很漂亮......双臂长17像素(这意味着如果下臂指向上方,圆圈的CG点为ccp(100,72),如果手臂指向下方,则圆圈为ccp(100,38)

我将使用什么等式,以便我可以将上臂的位置设置为等于下臂旋转CGPoint的位置,在此问题的第2段中表示为圆圈。像... _ ,/ _ 代表下臂,逗号代表我想要的点,而/代表上臂。

所以下臂和上臂= 17像素长,两者的锚点是(0.5f,0.0f),我如何找到下臂锚点的相反点。

2 个答案:

答案 0 :(得分:4)

x = 100 + 17 * cos(θ)
y = 55 + 17 * sin(θ)

答案 1 :(得分:1)

您需要找到旋转角度。我对目标c并不熟悉,但是如果你正在使用旋转功能,那么很可能是你可以参考的角度组件。

从那里你可以使用三角学来找到x和y变化的组成部分。

对于x,它将是:(锚点x)+(臂长)*余弦(旋转角度)

对于y,它将是:(锚y)+(手臂长度)*正弦(旋转角度)

另外,请确保您知道角度是弧度还是度数,您可能必须根据正弦/余弦函数进行转换。