312735894 发表于 2013-12-28 19:49:48

怎么判定一条封闭多段线在另一条封闭多段线内啊?请大神给个思路!


如图所示,不知道有没有什么方法可以判定一条封闭多段线在另一条封闭多段线内啊?并且提取坐标
提取坐标小弟倒是会,就是不知道怎么判定。。。。
因为是要通过坐标算面积,所以必须用外面那个大的多段线面积减去里面那俩小的,就是不知道怎么判定那俩小的是在大的里面,还请大神解答一下,谢谢了!

自贡黄明儒 发表于 2013-12-28 20:02:52

本帖最后由 自贡黄明儒 于 2013-12-28 20:06 编辑

看有无交点。无交点分两种情况:在外在内,取其一点来断判,只要有一点

312735894 发表于 2013-12-28 20:12:38

自贡黄明儒 发表于 2013-12-28 20:02 static/image/common/back.gif
看有无交点。无交点分两种情况:在外在内,取其一点来断判,只要有一点

首先谢谢大大的解答!
   然后想问一下,就是如果说没有交点,就像上面那个图那样,完全是在里面,怎么判定呢,大大说的取其中一点来判断,没明白具体怎么个思路!

自贡黄明儒 发表于 2013-12-28 20:24:11

312735894 发表于 2013-12-28 20:12
首先谢谢大大的解答!
   然后想问一下,就是如果说没有交点,就像上面那个图那样,完全是在里面,怎么判 ...

取多段的起点,判断这—点足否在另一多边形内;

312735894 发表于 2013-12-28 20:49:59

自贡黄明儒 发表于 2013-12-28 20:24 static/image/common/back.gif
取多段的起点,判断这—点足否在另一多边形内;

哦哦,明白了,谢谢大大,不知道LISP中有没有函数可以判定点是否在多边形内啊?

蓝图测绘 发表于 2013-12-28 21:20:27

里面的也有可能是相交的哦

edata 发表于 2013-12-28 21:24:47

本帖最后由 edata 于 2013-12-28 21:27 编辑

312735894 发表于 2013-12-28 20:49 static/image/common/back.gif
哦哦,明白了,谢谢大大,不知道LISP中有没有函数可以判定点是否在多边形内啊?
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=67738
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=108229
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=100682;;;******************************************************************************
;;; No.51 判断点是否在多边形内(狂刀程序)
;;;xPt是要判断的点坐标(x y z ), Points是多边形顶点列表((x1 y1 z1) (x2 y2 z2)...)
;;;******************************************************************************
;;; 测试 (ISPTINPM'(2 1) '((0 0)(10 0)(10 10)))
(defun ISPTINPM(XPT POINTS)
(equal
pi
(abs
(apply
'+
(mapcar
'(lambda (X Y)
(rem (- (angle XPT X) (angle XPT Y)) pi)
)
(reverse (cdr (reverse (cons (last POINTS) POINTS)))
)
POINTS
)
)
)
1e-6
)   ;end_equal
)

edata 发表于 2013-12-28 21:34:55

http://bbs.mjtd.com/forum.php?mod=redirect&goto=findpost&ptid=100755&pid=578940&fromuid=338795

312735894 发表于 2013-12-28 22:59:02

edata 发表于 2013-12-28 21:24 static/image/common/back.gif
http://bbs.mjtd.com/forum.php?mod=viewthread&tid=67738
http://bbs.mjtd.com/forum.php?mod=viewthre ...

谢谢老大解答,不知道那个“1e-6”是什么意思啊?

edata 发表于 2013-12-28 23:28:46

312735894 发表于 2013-12-28 22:59 static/image/common/back.gif
谢谢老大解答,不知道那个“1e-6”是什么意思啊?

科学记数 = 0.000001
CAD貌似可以用到1e-8,和标注的小数位一样。
记得一般计算6位小数。
页: [1] 2
查看完整版本: 怎么判定一条封闭多段线在另一条封闭多段线内啊?请大神给个思路!