想象一下50微米长的手臂。 它位于100,100。 旋转中心为100,100。 手臂一直在旋转。 在手臂上有一个钩子,可以在手臂的整个距离前后移动。
我的变数:
X = 100;
Y = 100;
RotationAngel = 120; // Loops up to 360.
HookDistanceFromCenter = 25; // Goes 0 -> 50 -> 0 by a loop.
如何获得钩子的位置(x,y)?
答案 0 :(得分:0)
根据您的具体数据:
x = 100 - HookDistanceFromCenter * cos(180 - RotationAngle)
y = 100 + HookDistanceFromCenter * sin(180 - RotationAngle)
但它会根据你所在的象限而改变。这是基本的三角学。您应该可以使用以下信息:http://en.wikipedia.org/wiki/Unit_circle,但圆的半径为HookDistanceFromCenter
,并且您必须将旋转中心坐标添加到结果中才能获得实际的(x,y)
。
答案 1 :(得分:0)
本文可能有所帮助:
http://indiedevstories.com/2012/08/14/custom-cocos2d-action-rotating-sprite-around-arbitrary-point/
本文主要针对iOS的Cocos2d游戏,但介绍性部分仅供参考。
HTH!