[丽丽星空] 21:52:45
(if (/= pt3 pt4 )
(command "_.LINE" pt3 pt4 ""))
[丽丽星空] 21:53:18
遇见很奇怪的事, pt3 pt4的距离为零,但这程序还能执行
[cvbnm8888] 男人 21:53:32
等号不能判断
用distance
距离小于0.0001就可以认为同一点
[丽丽星空] 21:54:11
pt3 pt4的距离为零是否是 pt3= pt4?
[cvbnm8888] 男人 21:55:29
(< (distance pt3 pt4)0.0001)
[丽丽星空] 21:55:43
pt3 pt4是程序计算的,可能是精度问题
[cvbnm8888] 男人 21:55:56
不知道为什么,用等号不能判断点
也有可能,不知道哪个变量的问题
[丽丽星空] 21:56:33
我也是最后用distance,才行
[cvbnm8888] 男人 21:56:53
这个需要高手解读一下
[丽丽星空] 21:57:14
嗯,是啊。哪位高手解释一下?
[浮世小半生]X 21:58:44
[qqimg]201310/{F5A4E3F0-77D9-CE62-5FA1-B61D07B64377}.gif[/qqimg]
[英雄无敌]英雄 21:59:00
点是有精度的,两个点有可能相差很小,比如10-E8,这时用=号,两个点还不不会相等
可以用equal
[cvbnm8888] 男人 21:59:51
equal好像有时候也会出问题
[英雄无敌]英雄 21:59:52
(equal pt1 pt2 0.00001),就认为两点是同一个点
要加精度,不加就跟=是一样的了
[cvbnm8888] 男人 22:00:26
感觉用distance最好理解
[英雄无敌]英雄 22:01:10
用distance当然也是可以的了,对于点来说
[cvbnm8888] 男人 22:01:47
不过equal是等号很好的补充,就是经常不记得这个函数
[丽丽星空] 22:02:33
哦,谢谢 英雄解释 |