求直线交点的思路
本帖最后由 nxchenjk 于 2022-12-6 08:05 编辑(setq LineSSS0(ssget"X"'((8 . "WSLINE,YSLINE")(0 . "line"))))
求这个选择集里直线间的交点。请各位老师提供点思路。谢谢。
本帖最后由 自贡黄明儒 于 2022-12-6 10:06 编辑
nxchenjk 发表于 2022-12-6 09:04
老师。重点是不能有重复的交点。也就是求过交点的直线,不再求交点。我的想法是求过交点的直线在图上删除 ...
假如L((起点 终点).....)是点表,常用的方法是
(while (setq a (car L)L (cdr L))
(setq
L1 (append (mapcar '(lambda (x) (inters (car a) (cdr a) (car x) (cdr x) nil)) L)
L1
)
)
)
这样,求过的交点线不再求交点,以提高效率 自贡黄明儒 发表于 2022-12-6 08:15
都是直线,就简单了。求得两端点,用inters就可以了。
老师。重点是不能有重复的交点。也就是求过交点的直线,不再求交点。我的想法是求过交点的直线在图上删除,但这样图就变了。有没有好的思路。
举例说明。A线与B线求过交点了,就不再求B线与A线的交点。 自贡黄明儒 发表于 2022-12-6 09:16
假如L((起点 终点).....)是点表,常用的方法是
(while (setq a (car L)L (cdr L))
老师把函数用的是出神入化,厉害 vla-intersectwith 都是直线,就简单了。求得两端点,用inters就可以了。 自贡黄明儒 发表于 2022-12-6 08:15
都是直线,就简单了。求得两端点,用inters就可以了。
黄大师引导能力超强 nxchenjk2022-12-6 09:04
...
member重复的不加入即可 cghdy 发表于 2022-12-6 09:06
member重复的不加入即可
谢谢老师的提示 ;; 遍历曲线求交
页:
[1]
2