CAD二开(c#)小试牛刀系列10 已知三点绘制矩形

文章讲述了如何在AutoCAD2018环境中,利用VisualStudio2022编程,通过给定三个特定条件的坐标点,精确计算并绘制出直角矩形的过程,涉及中点计算和镜像操作。
摘要由CSDN通过智能技术生成

使用工具==CAD2018+VS2022

主要作用==给定三个坐标点,绘制任意角度的矩形

绘制条件:1、给定的三个坐标点连线必须成直角。

                2、如图 已知点jxPo1, jxPo2, jxPo3,这三个点连线必须成直角,不然绘制出来就不是矩形而是四边形。

                3、绘制顺序 从点jxPo1开始,连接 jxPo2,最后连接 jxPo3,或者从点jxPo3开始,连接 jxPo2,最后连接 jxPo1,其他顺序也绘不出矩形。

绘制过程:1、如图已知三个坐标点分别为 jxPo1, jxPo2, jxPo3,如果求出 点jxPo4就可以绘制出矩形。通过 镜像 就可以求出点jxPo4。

                2、具体思路,分别求出 jxPo1, jxPo2与jxPo1, jxPo3的中点 zhongPo1、zhongPo2,通过这两个中点来镜像点 jxPo3,镜像后得到的点就是jxPo4。

具体代码

 Database db = HostApplicationServices.WorkingDatabase;
 Editor ed = acadApp.Application.DocumentManager.MdiActiveDocument.Editor;

 //获取三点坐标
 PromptPointResult psr1 = ed.GetPoint("矩形的第1个点");
 Point3d jxPo1 = psr1.Value;

 PromptPointResult psr2 = ed.GetPoint("矩形的第2个点");

 Point3d jxPo2 = psr2.Value;

 PromptPointResult psr3 = ed.GetPoint("矩形的第3个点");
 Point3d jxPo3 = psr3.Value;

 //中点 镜像点
 Point3d zhongPo1 = new Point3d((jxPo1.X+jxPo2.X)*0.5,(jxPo1.Y+jxPo2.Y)*0.5,0);
 Point3d zhongPo2 = new Point3d((jxPo1.X + jxPo3.X) * 0.5, (jxPo1.Y + jxPo3.Y) * 0.5, 0);

 //镜像
 //镜像线
 Line3d miline = new Line3d(zhongPo1, zhongPo2);
 //镜像
 Matrix3d mt3d = Matrix3d.Mirroring(miline);

 //需要被镜像的点
 DBPoint pt = new DBPoint(jxPo3);

 //镜像后的实体
 DBPoint copyEnt = pt.GetTransformedCopy(mt3d) as DBPoint;

 //镜像后的点
 Point3d jxPo4 = new Point3d(copyEnt.Position.X,copyEnt.Position.Y,0);

 //绘制矩形
 Polyline pline = new Polyline();
 pline.Layer = "wensd";//图层
 pline.AddVertexAt(0,new Point2d(jxPo1.X,jxPo1.Y),0,0,0);
 pline.AddVertexAt(1, new Point2d(jxPo2.X, jxPo2.Y), 0, 0, 0);
 pline.AddVertexAt(2, new Point2d(jxPo3.X, jxPo3.Y), 0, 0, 0);
 pline.AddVertexAt(3, new Point2d(jxPo4.X, jxPo4.Y), 0, 0, 0);
 pline.Closed = true;//闭合
 
 Tools.AddToModelSpace(db,pline);

  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值