2011-12-27 81 views
0

想象一下50px长的手臂。 它被放置在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

这是一个家庭作业吗? – Kromster 2011-12-27 14:00:43

+0

哈哈。没有! 用钩子制作游戏! (我34岁,但数学不好......) – 2011-12-27 14:02:41

回答

0

从你的具体数据:

x = 100 - HookDistanceFromCenter * cos(180 - RotationAngle) 
y = 100 + HookDistanceFromCenter * sin(180 - RotationAngle) 

,但它的变化取决于哪个象限你在这是基本的三角。您应该可以使用以下信息:http://en.wikipedia.org/wiki/Unit_circle,区别在于您的圆的半径为HookDistanceFromCenter,您必须将旋转中心坐标添加到结果才能得到实际的(x,y)

+0

你的意思是“哪个象限”RotationAngle <90 || RotationAngle <180 || RotationAngle <270 || RotationAngle <360? – 2011-12-27 14:21:06

+0

是的,尽管是迂腐的,我的意思是0 Mathletics 2011-12-27 14:24:07

+0

这样改变你的代码示例的结果? – 2011-12-27 14:26:09