Auto CAD二次开发——多边形多段线

学如逆水行舟,不进则退。 愿自己不忘初心,坚持积累。感谢大家的支持。上一篇博客中主要是通过中心点、中心点到顶点的距离、边数、初始角度进行绘制多边形,其实可以把初始角度替换成一个点,就是CAD官方一样),目前不会做到实时预览所以只是给一个思路,后期如果学习到了我会继续分享。

目录

1、关键核心代码

1.1多边形封装代码

1.2调用代码

1.3运行结果


1、关键核心代码

1.1多边形封装代码
cs 复制代码
         /// <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调用代码

cs 复制代码
              //声明图形数据库(多边形)
            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运行结果

相关推荐
步步为营DotNet4 小时前
探秘.NET 11:C# 14 特性在后端性能优化中的深度应用
性能优化·c#·.net
Chris _data5 小时前
C# 与 PLC Modbus RTU 通信实践:从单例到线程安全的连接监控
开发语言·安全·c#
Chris _data5 小时前
C# WinForms 后台轮询 Modbus 数据与 UI 更新实践
开发语言·ui·c#
魔法阵维护师5 小时前
从零开发游戏需要学习的c#模块,第二十四章(场景管理 —— 标题、游戏、结束画面)
学习·游戏·c#
唐青枫6 小时前
别把登录写散了:C#.NET IdentityServer4 统一认证与 JWT 授权实战
c#·.net
魔法阵维护师7 小时前
从零开发游戏需要学习的c#模块,第二十三章(存档与高分系统)
学习·游戏·c#
加号314 小时前
【C#】 字符串字节到十六进制字节数组的转换解析
c#
JaydenAI15 小时前
[MAF的Agent管道详解-04]如何让LLM按照要求的结构输出数据?
ai·c#·agent·maf·agent pipeline
不会编程的懒洋洋17 小时前
VisionPro 中 几何相交工具 Geometry-Intersection
图像处理·笔记·c#·视觉检测·机器视觉·visionpro
不会编程的懒洋洋20 小时前
VisionPro 中 图像预处理工具
图像处理·笔记·c#·视觉检测·visionpro