【发布时间】:2011-03-27 01:45:18
【问题描述】:
我正在编写一个程序,我需要在其中绘制任意数量的边的多边形,每个边都由一个动态变化的给定公式转换。涉及一些相当有趣的数学,但我被困在这个问题上。
如何计算正多边形(所有角度都相等)的顶点坐标,仅考虑边数,并且理想情况下(但不是必须)具有原点在中心?
例如:一个六边形可能有以下几点(都是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# 中的示例会很有用。我什至不知道从哪里开始。 我应该如何实现它?有可能吗?!
谢谢。
【问题讨论】:
-
有趣的附带事实:没有正多边形(正方形除外)具有整数坐标 (proof)
-
这不是编程/编码,这是几何学!
标签: c# algorithm math geometry polygon