Auto CAD二次开发——多边形多段线
学如逆水行舟,不进则退。 愿自己不忘初心,坚持积累。感谢大家的支持。上一篇博客中主要是通过中心点、中心点到顶点的距离、边数、初始角度进行绘制多边形,其实可以把初始角度替换成一个点,就是CAD官方一样),目前不会做到实时预览所以只是给一个思路,后期如果学习到了我会继续分享。
目录
1、关键核心代码
1.1多边形封装代码
1.2调用代码
1.3运行结果
1、关键核心代码
1.1多边形封装代码
/// <summary>/// 绘制内接正多边形/// </summary>/// <param name="db">图形数据库</param>/// <param name="center">多边形所在圆的圆心</param>/// <param name="radius">所在圆的半径</param>/// <param name="sideNum">边数</param>/// <param name="point1">指定一个点</param>/// <returns>ObjectId</returns>public static ObjectId AddPolygonToModelSpace(this Database db, Point2d center, double radius, int sideNum, Point2d point1){//声明多段线对象Polyline pLine = new Polyline();//判断边数是否符合要求if (sideNum < 3){return ObjectId.Null;}Point2d[] point = new Point2d[sideNum];double angle = center.GetAngleToXAxis(point1);//计算每个顶点的坐标for (int i = 0; i < sideNum; i++){point[i] = new Point2d(center.X + radius * Math.Cos(angle), center.Y + radius * Math.Sin(angle));pLine.AddVertexAt(i, point[i], 0, 0, 0);angle += Math.PI * 2 / sideNum;}//闭合多段线pLine.Closed = true;return db.AddEntityToModelSpace(pLine);}
1.2调用代码
//声明图形数据库(多边形)Database db = HostApplicationServices.WorkingDatabase;db.AddPolygonToModelSpace(new Point2d(100, 100), 50, 3, new Point2d(200, 200));db.AddPolygonToModelSpace(new Point2d(200, 100), 50, 4, new Point2d(100, 150));
1.3运行结果

