当前位置: 首页 > 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.lryc.cn/news/597782.html

相关文章:

  • docker的镜像与推送
  • 卡尔曼滤波数据融合
  • GaussDB null的用法
  • mac测试ollama llamaindex
  • c++--面向对象封装--实践
  • 【2025/07/23】GitHub 今日热门项目
  • git的使用,推送仓库github
  • 【数据结构】——时间与空间复杂度深度解析
  • 第一章:Go语言基础入门之Hello World与Go程序结构
  • 设置低秩适配器(LoRA)
  • 苍穹外卖DAY11
  • 【网安-小迪】Day5:反弹SHELL不回显带外正反向连接防火墙出入站文件下载
  • android studio打包vue
  • vue写的app设置角标
  • 智能小e-集成配置
  • vue3与ue5通信-工具类
  • 2025年电赛--电源题赛前押题
  • 【每日算法】专题十八_BFS 解决拓扑排序
  • 刷完jetpack后无法打开安装的浏览器的解决办法useful
  • SSM框架中关于Spring MVC的技术问题
  • C语言常见的预定符号常量
  • spring的value注解
  • 构建高性能推荐系统:MixerService架构解析与核心实现
  • 解决uniapp 使用uview生成小程序包太大无法上传的问题
  • 构件组装中的架构失配问题:分析与解决
  • 架构师--基于常见组件的微服务场景实战
  • 压测软件JMeter安装配置以及创建桌面快捷方式(详细图解)
  • 「iOS」——KVO
  • 通用表格识别技术的应用,深刻改变人们处理表格数据的方式
  • 基于MCP架构的LLM-Agent融合—构建AI Agent的技术体系与落地实践