为什么此方程对找到一个圆上的n个等距点有效?

问题描述

对于一个问题,我们必须绘制一个圆周围的n个等距点。我不知道该怎么做,所以我进行了搜索并找到了解决方案,但是我不知道它为什么起作用。这是我用于每个点的方程式。

stddraw.point(Math.cos((i * 2 * Math.PI) / n) + 1,Math.sin((i * 2 * Math.PI) / n) + 1); 

这是放在for循环中的,因此“ i”是它的数字点,而“ n”是需要绘制图形的点数。我在末尾添加了1以将其转换为适合画布的大小。

有人知道它为什么起作用吗?

解决方法

正弦和余弦输出曲线对沿圆的圆周的所有点建模,它们通过馈入圆中存在的所有可能角度(即如果使用弧度,则为2 pi)来做到这一点。现在,如果将2 pi *(i / n)馈入正弦和余弦,这将使每个函数的n角度介于0和2 * pi之间,则每次吐出的输出都是等距的,因为您以等距进给角度,因此您将收到等距的点,它们落入您所输入的那些角度的末端。

看看一个圆周围的正弦和余弦的gif图像,那么正弦和余弦的图形以及更多图形将变得有意义。