nxchenjk 发表于 2022-12-6 08:02:44

求直线交点的思路

本帖最后由 nxchenjk 于 2022-12-6 08:05 编辑

(setq LineSSS0(ssget"X"'((8 . "WSLINE,YSLINE")(0 . "line"))))
求这个选择集里直线间的交点。请各位老师提供点思路。谢谢。

自贡黄明儒 发表于 2022-12-6 09:16:34

本帖最后由 自贡黄明儒 于 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
       )
)
)
这样,求过的交点线不再求交点,以提高效率

nxchenjk 发表于 2022-12-6 09:04:10

自贡黄明儒 发表于 2022-12-6 08:15
都是直线,就简单了。求得两端点,用inters就可以了。

老师。重点是不能有重复的交点。也就是求过交点的直线,不再求交点。我的想法是求过交点的直线在图上删除,但这样图就变了。有没有好的思路。
举例说明。A线与B线求过交点了,就不再求B线与A线的交点。

nxchenjk 发表于 2022-12-6 09:53:33

自贡黄明儒 发表于 2022-12-6 09:16
假如L((起点 终点).....)是点表,常用的方法是

(while (setq a (car L)L (cdr L))


老师把函数用的是出神入化,厉害

VBALISPER 发表于 2022-12-6 08:15:26

vla-intersectwith

自贡黄明儒 发表于 2022-12-6 08:15:42

都是直线,就简单了。求得两端点,用inters就可以了。

sniper1111 发表于 2022-12-6 08:35:53

自贡黄明儒 发表于 2022-12-6 08:15
都是直线,就简单了。求得两端点,用inters就可以了。

黄大师引导能力超强

cghdy 发表于 2022-12-6 09:06:28

nxchenjk2022-12-6 09:04
...
member重复的不加入即可

nxchenjk 发表于 2022-12-6 09:54:38

cghdy 发表于 2022-12-6 09:06
member重复的不加入即可

谢谢老师的提示

xyp1964 发表于 2022-12-6 13:57:43

;; 遍历曲线求交


页: [1] 2
查看完整版本: 求直线交点的思路