给定旋转角度计算圆上的位置

时间:2016-02-28 06:41:11

标签: rotation trigonometry coordinate-systems algebra

好的代数和触发不是我的强项,所以这就是我需要做的。

我有一个圆圈,以度数从+180到-180(总共360)

进行测量

考虑到圆的中心点保持不变,Cx,Cy。 角度从-180到+ 180

变化

我需要找到一个点,无论给定角度是+3个单位距离是在90度位置还是270度位置(从给定度数)

所以喜欢......
    角度= 0     第1点 - > x = 0,y -3     第2点 - > x = 0,y + 3

如果角度为90°(假设其顺时针测量)     第1点 - > x = -3,y = 0     第2点 - > x = 3,y = 0

我需要的是一个会接受角度的论坛,然后告诉我我的x / y应该距离原点3个单位。

我尝试过:EDIT使用Java更新为双精度。

`double x = Cx + 3 * Math.cos((d + 90)* Math.PI / 180);'

' double y = Cy + 3 * Math.sin((d + 90)* Math.PI / 180);`

这给我的结果好坏参半,我的意思是有时候我认为它应该是,而有时则是非常错误。

Assuming Cx = 0.500, Cy = 0.500
Sample Data:      Result:
Deg = 0           x =  2 / y = 5
Deg = 90          x = -1 / y = 2
Deg = 125         x = -0.457 / y = 0.297
Deg = 159         x =  0.924 / y = -0.800

我意识到我此刻只计算了一点,但您对如何使第一点起作用有任何建议吗?从我开始的任何程度来说都是90度?

1 个答案:

答案 0 :(得分:0)

 x = Cx + r * Math.cos( (d+90) * Math.PI / 180 );

 y = Cy + r * Math.sin( (d+90) * Math.PI / 180 );

似乎这是我试图完成的正确公式。这将取Cx / Cy的原点的任何值加上Radius r,然后计算度数+ 90并转换为弧度..一旦发生所有魔法,你就会留下90度的x / y坐标你开始了。