计算正多边形的顶点的坐标

我正在编写一个程序,其中我需要绘制任意数量的边的多边形,每个边都由一个动态变化的给定公式转换。其中涉及一些相当有趣的数学,但我始终坚持这一观点。

,并且理想地(但并非必须)以原点为中心,如何计算规则多边形(所有角度均相等的多边形)的顶点的坐标?

例如:一个六角形可能具有以下点(均为floats):

( 1.5  ,  0.5 *Math.Sqrt(3) )

( 0 , 1 *Math.Sqrt(3) )

(-1.5 , 0.5 *Math.Sqrt(3) )

(-1.5 , -0.5 *Math.Sqrt(3) )

( 0 , -1 *Math.Sqrt(3) )

( 1.5 , -0.5 *Math.Sqrt(3) )

我的方法如下所示:

void InitPolygonVertexCoords(RegularPolygon poly)

并且需要将坐标添加到此坐标(或类似的东西,如列表):

Point[] _polygonVertexPoints;

我主要对这里的算法感兴趣,但是C#中的示例将很有用。我什至不知道从哪里开始。

谢谢。

回答:

for (i = 0; i < n; i++) {

printf("%f %f\n",r * Math.cos(2 * Math.PI * i / n), r * Math.sin(2 * Math.PI * i / n));

}

这里r是circumsribing圆的半径。对不起,语言错误否Habla C#。

基本上,任何两个顶点之间的角度为 2 pi / n ,所有顶点与原点的距离为 r

编辑: 如果您想使中心比原点多一点,请说 [x,y]

for (i = 0; i < n; i++) {

printf("%f %f\n",x + r * Math.cos(2 * Math.PI * i / n), y + r * Math.sin(2 * Math.PI * i / n));

}

以上是 计算正多边形的顶点的坐标 的全部内容, 来源链接: utcz.com/qa/429456.html

回到顶部