我有一个圈子,假设半径为10,中心为x=0
y=0
。我有一个数字n(例如3)。我想从那个圈子中得到一点。以下是对图像的解释:
因此,如果n=0
,该方法将返回0;-6
如果n=1
,该方法将返回3;-5
等
但是该方法将接收诸如每个n之间的单位等参数。
答案 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来获取您的点的真实坐标。当然,由于你的圆圈不是单一的,你必须考虑它的半径。