只需一步,快速开始
使用道具 举报
先用AcDbCurve getClosestPointTo 取得线上最近点,
virtual Acad::ErrorStatus getClosestPointTo(const AcGePoint3d& givenPnt,AcGePoint3d& pointOnCurve,Adesk::Boolean extend = Adesk::kFalse) const;
作一条射线(AcDbRayAcDbRay),以givenPnt为起点,取向量(pointOnCurve-givenPnt)为方向,看该射线与多段线有无交点,有交点侧在封闭线内,无交点则在封闭线外
看似简单的问题,其实要分几步来实现
1,要判断这个点与封闭多线段的几何位置2,求点与线段之间的最短距离,这个最短,是要求这个点到该线段的垂线段长度么?3,使用多线段的内部迭代器,分别求,然后使用排序获得最短的距离
我倒遍过一个LISP程序用于判断点与多边形位置关系的,不过我估计你的问题是不是早就已经解决了。。。
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2024-11-25 13:31 , Processed in 0.171696 second(s), 23 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.