给定圆的半径,以及圆(x,y)中的点P,如何编写一个函数来返回x个点(x,y),所有这些都在圆周上给定的圆圈。另外,你如何找到每个生成点和点P之间的角度。
答案 0 :(得分:4)
我假设您希望圆周上的点均匀分布在圆周上。如果是这种情况,您可以通过将360除以所需的点数来计算每个点之间的度数。 然后,您可以获得任何点的(x,y)坐标:
(x, y) = (cos(angle), sin(angle))
其中'angle'是给定点的角度。 (这假设你想要-1到1之间的值,就像单位圆的情况一样:http://en.wikipedia.org/wiki/Unit_circle)例如,如果你想要沿圆周长4个点,你可以计算出正好是360 / 4 =连续点之间的90度。
所以让我们称这些点为point0,point1,point2和point3。 Point0为0度角,point1为90度(1 * 90),point2为180度(2 * 90),point3为270(3 * 90)。然后是每个点的坐标:
point0 = (cos(0), sin(0)) = (1, 0)
point1 = (cos(90), sin(90)) = (0, 1)
point2 = (cos(180), sin(180)) = (-1, 0)
point3 = (cos(270), sin(270)) = (0, -1)
请记住,您通常会在圆的水平轴的右侧开始测量角度。 (在时钟上:在3) 编辑:另请注意,编程中的几乎所有三角函数都采用弧度值而不是度。然而,Radians可能难以思考,这就是为什么知道如何将弧度和度数转换为彼此非常有用的原因。要将度数转换为弧度,请将度数值乘以(pi / 180)。要将弧度转换为度数,请将弧度值乘以(180 / pi)。这一切背后有一个推理,所以如果您想了解更多相关信息,我建议您阅读弧度。 http://en.wikipedia.org/wiki/Radian
就这些点与P点之间的角度而言;我只会给你一些指示。你可以计算点和点P之间的x和y差异(这对你来说应该是微不足道的,它只包括减法)。使用这两个值,您可以计算点之间的角度。