当前位置: 首页 > news >正文

判断矩形能否放入多边形内——cad c# 二次开发实现

 效果如下:

逻辑过程如下:对多段线内部布点阵,将矩形移动到点阵中旋转,直到跟多边形无交点为止。 

主函数代码 如下:

   public void 多段线容纳矩形(){int 点阵密度 = 50; // 点阵密度,多段线包围盒最小边长的倒数 可调整Document doc = Application.DocumentManager.MdiActiveDocument;Database db = doc.Database;Editor ed = doc.Editor;ed.WriteMessage("\n选择多段线(大)");var pl = db.SelectEntity2<Polyline>(true);if (pl is null) return;ed.WriteMessage("\n选择矩形");var rectOrigon = db.SelectEntity2<Polyline>(true);if (rectOrigon is null) return;//求出矩形的中心点坐标var zxd = rectOrigon.GeometricExtents.CenterPoint2();//指定点阵间距var space = Math.Min( pl.GeometricExtents.Height2(), pl.GeometricExtents.Width2()) / 点阵密度; // 取多段线的最大边长的1/20作为点阵间距//生成点阵var dianzhens = pl.GenerateInnerPoints(space);if (dianzhens == null || dianzhens.Count <= 0) { ed.WriteMessage("\n没有生成点阵"); return; }var dbpoints = new List<DBPoint>();foreach (var point in dianzhens){dbpoints.Add(point.toDBPoint2());}//画出点阵if (dbpoints.Count <= 0) return;//db.AddEntityToModeSpace(dbpoints.ToArray());//// 设置点样式为“正方形内有个圆”(PDMODE = 35)//Application.SetSystemVariable("PDMODE", 66);//97//// 设置点大小为1,相对单位(PDSIZE 为负值)//Application.SetSystemVariable("PDSIZE", -0.3);//遍历点阵foreach (var point in dianzhens){var(isok, resultjuxing) = 矩形绕点旋转( pl, rectOrigon, zxd, point,db, ed);if (isok) return;}ed.WriteMessage("\n没有找到合适的矩形位置。");}

 

http://www.dtcms.com/a/294012.html

相关文章:

  • 【服务器】 MCTP Over PCIe 的内容、用途、工作原理及硬件设计注意事项
  • 数据结构(2)顺序表算法题
  • C#使用socket报错 System.Net.Sockets.SocketException:“在其上下文中,该请求的地址无效。
  • .net平台的跨平台桌面应用开发的技术方案总结对比
  • 【黑马SpringCloud微服务开发与实战】(六)分布式事务
  • Matlab学习笔记:逻辑基础
  • PyTorch武侠演义 第一卷:初入江湖 第6章:驿站的秘密信鸽
  • Apache JMeter 使用记录踩坑
  • 前端模块化:CommonJS 与 ES Module
  • 性能测试-jmeter实战5
  • 4️⃣字典(dict)速查表
  • I2C控制器
  • 传统RNN模型笔记:输入数据长度变化的结构解析
  • 通用图片 OCR 到 Word API 数据接口
  • 数据结构自学Day13 -- 快速排序--“前后指针法”
  • 显微科研中的关键选择:不同显微镜相机技术特性与应用适配性全面解析
  • SpringCloudGateWay 使用nacos网关自动负载均衡
  • nrm指南
  • Sklearn 机器学习 线性回归
  • 解决sparksql创建出来的数据库路径错误的问题
  • Docker Desktop 打包Unity WebGL 程序,在Docker 中运行Unity WebGL 程序
  • Unity国际版下载链接分享(非c1国内版)
  • Java面试题035:一文深入了解Docker
  • SQL基础⑧ | 表格篇
  • Android插件化实现方案深度分析
  • 智能小e-外联系统文档
  • CentOS 7 Linux 用 yum 安装 Docker,含 Docker 镜像无法拉取问题(即 docker pull 失败)的解决方案
  • 基于LNMP分布式个人云存储
  • 深入理解 Java Builder 设计模式:解决构造函数爆炸问题
  • 旧系统UI焕新陷阱:保留业务习惯与引入新交互的平衡点把控