我试图在圆圈上找到X,Y点,其中0度从圆顶开始并顺时针移动 . 通常,要在具有已知半径和角度的圆上找到x,y坐标,您可以简单地使用公式x = r(cos(度°)),y = r(sin(度°)) . 圆圈看起来像这样,度数将从0°逆时针方向扩展 .
但是,我使用的是一个圆圈,其中0°从顶部开始,并且随着围绕圆圈顺时针移动,度数会扩大 . 假设 var r = 60;
和 var degrees = 130;
我可以使用什么公式(或javascript方法)来确定X,Y值 . 注意:我可以假设原点为0,60,因为r = 60.谢谢 .
2 回答
由于整圆有2个辐射,因此您可以使用以下公式计算圆的点坐标:
诀窍是将您的问题转换为您知道如何解决的问题 . 你可以通过从你的角度减去90度并取消y来做到这一点,即x = r cos(theta-90)和y = -r sin(theta-90) . 在JavaScript中:
产生以下结果:
对于θ= 0,(x,y)=(3.67394039744206e-15,60)
对于θ= 30,(x,y)=(30.000000000000007,51.96152422706631)
(x,y)=(51.96152422706632,29.999999999999996)theta = 60
对于θ= 90,(x,y)=(60,0)
(x,y)=(51.96152422706632,-29.999999999999996)为theta = 120
对于θ= 150,(x,y)=(30.000000000000007,-51.96152422706631)
对于θ= 180,(x,y)=(3.67394039744206e-15,-60)
对于θ= 210,(x,y)=( - 29.999999999999986,-51.96152422706632)
(x,y)=( - 51.96152422706632,-29.999999999999996)为theta = 240
对于θ= 270,(x,y)=( - 60,-7.34788079488412e-15)
(x,y)=( - 51.96152422706631,30.000000000000007)for theta = 300
(x,y)=( - 30.00000000000003,51.961524227066306)for theta = 330
对于θ= 360,(x,y)=( - 1.1021821192326178e-14,60)