计算正多边形的顶点的坐标
我正在编写一个程序,其中我需要绘制任意数量的边的多边形,每个边都由一个动态变化的给定公式转换。其中涉及一些相当有趣的数学,但我始终坚持这一观点。
,并且理想地(但并非必须)以原点为中心,如何计算规则多边形(所有角度均相等的多边形)的顶点的坐标?
例如:一个六角形可能具有以下点(均为float
s):
( 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