明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7202|回复: 20

LISP实现点与多边形位置关系判断

  [复制链接]
发表于 2010-1-17 22:15 | 显示全部楼层 |阅读模式
本帖最后由 作者 于 2010-1-17 23:38:08 编辑

小妹是学GIS的,编了个点与多边形位置关系判断的LISP程序,请多多指教哦~
发表于 2023-3-9 14:37 | 显示全部楼层
非常不错的代码,谢谢楼主分享啊。
 楼主| 发表于 2010-1-17 23:39 | 显示全部楼层

sorry啊!!!

一开始的时候忘记把程序给传上来了,失敬失敬!!~~

发表于 2010-7-15 12:32 | 显示全部楼层
不错哦,有意思
发表于 2010-7-16 17:14 | 显示全部楼层

干什么用的呢?

发表于 2010-7-17 13:01 | 显示全部楼层

是啊?干什么用的呢?

发表于 2010-8-18 11:46 | 显示全部楼层
不錯哦,正是我想要的東西!謝謝樓主分享了。
发表于 2010-12-13 11:30 | 显示全部楼层
正在思考这个问题。。。谢谢。。。。
发表于 2010-12-26 02:56 | 显示全部楼层
我也不摘掉用来做什么的。楼主也应该不知道吧。
发表于 2011-1-7 22:31 | 显示全部楼层
楼主,能不能编写一个判断一个图元相对另一个图元位置关系的程序。
发表于 2011-6-5 01:52 | 显示全部楼层
;;判断点是否在方框内,参数:pt为待判断点,pt1~pt4为方框的四个角点
(defun point_inm (pt pt1 pt2 pt3 pt4 / dist1 dist2 dist3 dist4 pt pt1
                  pt2 pr3 pt4)
  (setq        dist1 (point_line pt pt1 pt2)
        dist2 (point_line pt pt2 pt3)
        dist3 (point_line pt pt1 pt4)
        dist4 (point_line pt pt3 pt4)
  )
  (if (equal (+ dist1 dist2 dist3 dist4)
             (+ (distance pt1 pt2) (distance pt2 pt3))
             1e-10
      )
    t
    nil
  )
)
;;测试点是否在多边形内.参数 p为待判断点,pm为组成多边形的点表
(defun ea:point_inm
       (p pm / point_x mx px1 pm edge_int_num pt_online_num)
  (setq        point_x        (mapcar '(lambda (x) (car x)) pm)
        mx        (abs (- (apply 'max point_x) (car p)))
        px1        (polar p 0 (* mx 2))
  )
  (setq        pm              (append pm (list (nth 0 pm)))
        edge_int_num  0
        pt_online_num 0
  )
  (while (> (length pm) 1)
    (setq pc (nth 0 pm)
          pn (nth 1 pm)
    )
    (if        (inters p px1 pc pn)
      (setq edge_int_num (+ 1 edge_int_num))
    )
    (if        (equal (angle p pc) 0 1e-5)
      (setq pt_online_num (+ 1 pt_online_num))
    )
    (if        (and (equal (angle p pc) 0 1e-5)
             (equal (angle p pn) 0 1e-5)
        )
      (setq pt_online_num (- pt_online_num 1))
    )
    (setq pm (cdr pm))
    (if        (= (rem (+ pt_online_num edge_int_num) 2) 1)
      t
      nil
    )
  )
)
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-5-19 08:56 , Processed in 0.172301 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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