好的代数和触发不是我的强项,所以这就是我需要做的。
我有一个圆圈,以度数从+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度?
答案 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坐标你开始了。