从数字中获取圆点?

时间:2014-09-28 15:34:43

标签: java

我有一个圈子,假设半径为10,中心为x=0 y=0。我有一个数字n(例如3)。我想从那个圈子中得到一点。以下是对图像的解释:

circle

因此,如果n=0,该方法将返回0;-6
如果n=1,该方法将返回3;-5
但是该方法将接收诸如每个n之间的单位等参数。

2 个答案:

答案 0 :(得分:0)

圆的等式是

x = x0 + r * cos(a)
y = y0 + r * sin(a)

用(x0,y0)表示圆的中心,用0表示... 2Pi

所以,如果你想要给出x,你将拥有:

sin(a) = (y - y0)/r

所以

a = arcsin((y - y0)/r) if ((y - y0)/r is in -PI/2..PI/2)
a = -arcsin((y - y0)/r) if ((y - y0)/r is in -PI..-PI/2 or PI/2..PI)
a is undefine elsewhere

因此

y = y0 + r * sin(arcsin((y - y0)/r)) if ((y - y0)/r is in -PI/2..PI/2))
y = y0 + r * sin(-arcsin((y - y0)/r)) if ((y - y0)/r is in -PI..-PI/2 or PI/2..PI))
y is undefine elsewhere

答案 1 :(得分:0)

使用roots of unity,它将为您提供圆圈上复数的指数形式。然后,您可以使用Euler formula来获取您的点的真实坐标。当然,由于你的圆圈不是单一的,你必须考虑它的半径。