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

判断矩形能否放入多边形内——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.xdnf.cn/news/16254.html

相关文章:

  • 初识opencv02——图像预处理1
  • 软硬件协同仿真和验证的标准接口协议SCE-MI简介
  • Spring语法2
  • HTML5 网页游戏设计开发——1、HTML基础
  • PowerShell自动化核对AD与HR系统账户信息实战指南
  • 趣玩-Ollama-Llm-Chatrbot
  • Flask框架全面详解
  • DeepSeek Janus Pro本地部署与调用
  • 技术速递|使用 Semantic Kernel 与 A2A 协议构建多智能体解决方案
  • 三大论坛联动,2025合成生物学盛会助力生物制造高质量发展
  • AI安全“面壁计划”:我们如何对抗算法时代的“智子”封锁?
  • 直播软件搭建与原生直播系统开发全解析
  • 架构师--缓存场景
  • 【Linux-云原生-笔记】Haproxy相关
  • SQL难点突破之复杂业务逻辑的SQL查询实战
  • Hexo - 免费搭建个人博客02 - 创建个人博客
  • 从8h到40min的极致并行优化:Spark小数据集UDTF处理的深度实践与原理剖析
  • C++day1
  • 想曰加密工具好用吗?本地安全、支持多算法的加密方案详解
  • 基于Dapr Sidecar的微服务通信框架设计与性能优化实践
  • 设计模式 八:原型模式 (Prototype Pattern)
  • .NET-键控服务依赖注入
  • LeetCode|Day23|326. 3 的幂|Python刷题笔记
  • 认识Transformer架构
  • 第十讲:stack、queue、priority_queue以及deque
  • 【力扣】第15题:三数之和
  • C# 继承 虚方法
  • idea部署新项目时,用自定义的maven出现的问题解决
  • QMC5883L 坐标系Z轴是垂直于芯片平面向下(芯片朝上时指向地面)还是垂直于芯片平面向上(芯片朝上时指向天空)
  • Qt内存管理的核心点