只需一步,快速开始
您需要 登录 才可以下载或查看,没有账号?注册
使用道具 举报
先做直线pl: PT1-PT2
用vlax-curve-getClosestPointTo求其余各点到pl的垂足,如果垂足与本点坐标相同/距离为零 则表示点在线pl上
怎么判断是否是线上的点呢?
kry发表于2009-6-25 15:43:00怎么判断是否是线上的点呢?
可通过角度进行判断(if (equal (- (angle pt1 pt2) (angle pt1 pt4)) 1e-6) (princ "\npt4 在线上.") (princ "\npt4 不在线上."))
角度法,距离法,向量法,辅助线法,垂距法,。。。。。。都可以
不过建议用while循环替代mapcar,效率更高
(vl-catch-all-error-p (vl-catch-all-apply 'mapcar (list '(lambda (x / an) (setq an (angle a x)) (if (not (or (equal x a 1e-6) (equal x b 1e-6) (equal an (angle b x) 1e-6) (equal an (angle x b) 1e-6) ) ) (exit)
谢无痕老师指教,红色部分的结构确保在指定条件下退出,和while差不多
本版积分规则 发表回复 回帖后跳转到最后一页
小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 ) ©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途
GMT+8, 2025-5-17 21:29 , Processed in 0.186156 second(s), 27 queries , Gzip On.
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.