找回密码
 立即注册

QQ登录

只需一步,快速开始

扫一扫,访问微社区

查看: 626|回复: 5

[求助] 获取多边形点表包含于另一个多边形点表的点(线内与线上都包含)

[复制链接]

已领礼包: 201个

财富等级: 日进斗金

发表于 2020-12-21 15:36:49 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
本帖最后由 a117034423 于 2020-12-21 16:40 编辑

  1. (defun c:pntcir (pnts1 pnts2  / pts0 pts1 total an1 an2 dis dba dbb i);包含于点表内点获取函数
  2. (setq pts1
  3.   (if (not (equal (car pnts1) (last pnts1) 1e-5));点表闭合
  4.    (reverse (cons (car pnts1) (reverse pnts1)))
  5.    pnts1
  6. ))     
  7. (setq pts0 (mapcar 'list pts1 (cdr pts1));首尾组对
  8.       total 0
  9.       i 0
  10.       dba nil
  11.       dbb nil
  12.       )
  13. (repeat (length pnts2)
  14. (setq ptn (nth i pnts2))
  15. (mapcar
  16.    '(lambda (x1)
  17.       (setq an1 (abs (- (angle ptn (car x1)) (angle ptn (cadr x1)))))
  18.       (setq total (+ total an1))
  19.     )
  20.    pts0
  21. );线内点
  22. (if (equal (- total pi pi) 0.0 1e-5)
  23.    (setq dba (cons ptn dba))
  24. )
  25. (mapcar
  26.    '(lambda (x2)
  27.       (setq dis (+ (distance ptn (car x2)) (distance ptn (cadr x2))))
  28.       (setq an2 (+ (abs (angle ptn (car x2))) (abs (angle ptn (cadr x2)))))
  29.       (if (and
  30.        (equal dis (distance (car x2) (cadr x2)) 1e-5)
  31.        (equal an2 pi 1e-5)
  32.        )
  33.    (setq dbb (cons ptn dbb))
  34. )
  35.     )
  36.    pts0
  37. );线上点
  38. (setq i (1+ i))
  39.   )
  40. (vl-remove nil (append dba dbb));返回线上线内点表
  41.   )

先别看了 我自己先研究一下吧

论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!

已领礼包: 40个

财富等级: 招财进宝

发表于 2020-12-22 07:44:00 | 显示全部楼层
  1. (defun c:tt ()
  2.   (if (and (setq
  3.              e1        (car
  4.                   (xdrx-entsel "\n拾取多段线1<退出>:" '((0 . "*polyline")))
  5.                 )
  6.            )
  7.            (setq
  8.              e2        (car
  9.                   (xdrx-entsel "\n拾取多段线2<退出>:" '((0 . "*polyline")))
  10.                 )
  11.            )
  12.            (setq pts1 (xdrx-getpropertyvalue e1 "vertices"))
  13.            (setq pts2 (xdrx-getpropertyvalue e2 "vertices"))
  14.            (setq pts (xdrx-get-intersect pts1 pts2))
  15.       )
  16.     (progn
  17.       (xdrx-polyline-make pts)
  18.     )
  19.   )
  20. )


  1. (defun _get (pl1 pl2)
  2.   (setq pts1 (xdrx-getpropertyvalue e1 "vertices"))
  3.   (setq pts2 (xdrx-getpropertyvalue e2 "vertices"))
  4.   (if (setq e (xdrx-get-intersect pts1 pts2))
  5.     (setq pts (xdrx-getpropertyvalue e "vertices"))
  6.   )
  7.   (xdge::free e)
  8.   pts
  9. )


论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

 楼主| 发表于 2020-12-22 08:43:42 | 显示全部楼层
谢了老大,我学习下intersect
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 87个

财富等级: 招财进宝

发表于 2020-12-22 08:57:28 | 显示全部楼层
感谢a117034423的分享
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 20个

财富等级: 恭喜发财

发表于 2020-12-22 15:54:29 | 显示全部楼层
  1. (defun _inside (pts1 pts2)
  2.   (vl-remove-if
  3.     '(lambda (x)
  4.        (not (or        (xdrx-point-isinside x pts1)
  5.                 (xdrx-point-ison x pts1)
  6.             )
  7.        )
  8.      )
  9.     pts2
  10.   )
  11. )

点评

谢了谢了,感谢回复,快完成了 做好我贴上来  详情 回复 发表于 2020-12-22 16:03
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

已领礼包: 201个

财富等级: 日进斗金

 楼主| 发表于 2020-12-22 16:03:00 | 显示全部楼层

谢了谢了,感谢回复,快完成了 做好我贴上来
论坛插件加载方法
发帖求助前要善用【论坛搜索】功能,那里可能会有你要找的答案;
如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子标题加上【已解决】;
如何回报帮助你解决问题的坛友,一个好办法就是给对方加【D豆】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
回复 支持 反对

使用道具 举报

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

本版积分规则

QQ|申请友链|Archiver|手机版|小黑屋|辽公网安备|晓东CAD家园 ( 辽ICP备15016793号 )

GMT+8, 2024-11-15 04:33 , Processed in 0.359629 second(s), 41 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

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