明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2122|回复: 7

[求助]判断点是否在直线上

[复制链接]
发表于 2009-9-16 23:56:00 | 显示全部楼层 |阅读模式

直线的两个端点为p1和p2 ,pt为直线上一点,如果(setq pt(getpoint)),这样(equal (+ (distance pt p1) (distance pt p2))(distance p1 p2))返回为t,但是(setq pt(cadr(entsel))),就返回为空,加入精度(equal (+ (distance pt p1) (distance pt p2))(distance p1 p2) 1e-3),有时返回t,有时返回为nil,用角度判断也是这样,要怎么样才能总是返回t呢,大家有没有好的办法呀;

"觉得好,就打赏"
还没有人打赏,支持一下
发表于 2009-9-17 01:34:00 | 显示全部楼层

(entsel)返回的点是跟 pickbox 的中心点,所以返回nil是正常的

(apply 'vlax-curve-getClosestPointTo (entsel))返回的才是直线上的点

明经网友  发表于 2009-9-17 22:22:00
caoyin发表于2009-9-17 1:34:00(entsel)返回的点是跟 pickbox 的中心点,所以返回nil是正常的(apply 'vlax-curve-getClosestPointTo (entsel))返回的才是直线上的点

谢谢caoyin,既然返回的pickbox的中心点,但是为什么用(ssget(cadr(entsel)))可以选到对象呢
回复 支持 反对

使用道具

明经网友  发表于 2009-9-17 22:37:00

谢谢caoyin,但是既然返回的是pickbox的中心点,为什么(ssget(cadr(entsel)))可以选到对象呢

回复 支持 反对

使用道具

明经网友  发表于 2009-9-17 23:48:00
caoyin发表于2009-9-17 1:34:00(entsel)返回的点是跟 pickbox 的中心点,所以返回nil是正常的(apply 'vlax-curve-getClosestPointTo (entsel))返回的才是直线上的点

但是为什么用(ssget(cadr(entsel)))可以选到对象呢

回复 支持 反对

使用道具

 楼主| 发表于 2009-9-18 23:43:00 | 显示全部楼层
caoyin发表于2009-9-17 1:34:00(entsel)返回的点是跟 pickbox 的中心点,所以返回nil是正常的(apply 'vlax-curve-getClosestPointTo (entsel))返回的才是直线上的点

谢谢caoyin,但我不明白的是既然返回的是pickbox的中心点,为什么用(ssget (cadr(entsel))可以选到对象呢

发表于 2009-9-20 11:24:00 | 显示全部楼层
ssget和entsel的选择与系统变量pickbox的影响,在pickbox所设置的像素高度中都可以选中
 楼主| 发表于 2009-9-20 12:02:00 | 显示全部楼层

谢谢了

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|CAD论坛|CAD教程|CAD下载|联系我们|关于明经|明经通道 ( 粤ICP备05003914号 )  
©2000-2023 明经通道 版权所有 本站代码,在未取得本站及作者授权的情况下,不得用于商业用途

GMT+8, 2024-10-1 15:30 , Processed in 0.263834 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表