输入中心点坐标、外切圆半径、多边形边数,返回多边形端点坐标集。
列一下关键词辅助搜索引擎快速找到方法:c#绘制 五边形 六边形 八边形 多边形
/// <summary>
/// 使用外切圆的方法绘制一个正多边形
/// </summary>
/// <param name="center">正多边形外切圆的圆心</param>
/// <param name="radius">正多边形外切圆的半径</param>
/// <param name="sideCount">正多边形的边数</param>
public static List<double[]> DrawRegularPoly(double[] center, double radius, int sideCount)
{
// 多边形至少要有3条边,边数不达标就返回。
if (sideCount < 3)
return null;
// 每条边对应的圆心角角度,精确为浮点数。使用弧度制,360度角为2派
double arc = 2 * Math.PI / sideCount;
// 为多边形创建所有的顶点列表
var pointList = new List<double[]>();
for (int i = 0; i < sideCount; i++)
{
var curArc = arc * i; // 当前点对应的圆心角角度
double[] pt = new double[3];
// 就是简单的三角函数正余弦根据圆心角和半径算点坐标。这里都取整就行
pt[0] = center[0] + Math.Round((radius * Math.Cos(curArc)), 2);
pt[1] = center[1] + Math.Round((radius * Math.Sin(curArc)), 2);
pt[2] = 0;
pointList.Add(pt);
}
return pointList;
}