明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5900|回复: 23

[已解答] 如何判断一个封闭多线段在另一个封闭多线段内部?

[复制链接]
发表于 2014-6-9 19:56:20 | 显示全部楼层 |阅读模式
怎么才能判断一个封闭的多线段在另外一个封闭多线段内部?如图,怎么判断封闭多线段A、B在封闭多线段C内部?

本帖子中包含更多资源

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

x
发表于 2014-6-9 20:29:19 | 显示全部楼层
依您之此例用面积比较如何
 楼主| 发表于 2014-6-9 21:02:27 | 显示全部楼层
Andyhon 发表于 2014-6-9 20:29
依您之此例用面积比较如何

不明白怎么用面积比较
发表于 2014-6-9 21:31:39 | 显示全部楼层
check Area 命令 & Max 函数
发表于 2014-6-9 21:36:28 | 显示全部楼层
可以用取点,然后用SSGET框选C内的,判断A名是否在SSGET内,再建个A的SSGET的,判断C是否是在 A内的SSGET中
发表于 2014-6-9 23:05:22 | 显示全部楼层
两曲线没有交点,A上任一点在C内
发表于 2014-6-10 06:09:13 | 显示全部楼层
xxxl1233064 发表于 2014-6-9 21:02
不明白怎么用面积比较

***本程序为求封闭的大物体与其包含的多个封闭小物体的面积之差****
(defun c:mjc ()
(princ "\n ****本程序为求封闭的大物体与其包含的多个封闭小物体的面积之差****")
(princ "\n 请选择封闭物体(圆、多边形)....")
(command "layer" "M" "面积标注" "C" "4" "" "LT" "CONTINUOUS" "" "");设置一个标注图层
(setvar"dimzin"0);;保留小数位数时如果位数不足可以补零
(setq ss (ssget '((0 . "CIRCLE,LWPOLYLINE"))))
(setq i   0
       lis '()
)
(repeat (sslength ss)
  (setq ent (ssname ss i))
  (setq obj (vlax-ename->vla-object ent))
  (setq s (list (vla-get-Area obj)))
  (setq lis (append s lis))
  (setq i (1+ i))
)
(setq lis (vl-sort lis '>))
(setq es (eval (cons '- lis)))
(command "_.TEXT" PAUSE "" "" (strcat "大面积 = " (rtos (car lis) 2 2)"㎡"))
(foreach x (cdr lis) (command "_.TEXT" "" (strcat "内部面积=" (rtos x 2 2)"㎡")))
(command "_.TEXT" "" (strcat "面积差 = " (rtos es 2 2)"㎡"))
(princ)
)
发表于 2014-6-10 08:22:55 | 显示全部楼层
本帖最后由 Student 于 2014-6-11 07:21 编辑

首先判断两个多边形A、B的大小,只有面积较大的A有可能完全包含较小的B。
想到2个比较笨的方法有:
1.将折线A、B闭合后,求有无交点。如果无交点,且B上任一节点在A内:A包含B
2.将A、B转换为面域,求并集的面积。如果并集面积=面积A:A包含B
可能还有更好的方法
发表于 2014-6-10 11:36:23 | 显示全部楼层
可以搜索一下多边形判交的算法
发表于 2014-6-10 11:37:33 | 显示全部楼层
1先求得各闭合多段线的面域(C面域、A面域、B面域)和面积(A面积、B面积)
2如果 C面域∩A面域 的面积=A面积 则 A闭合多段线在C闭合多段线内
3B同上
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2025-5-25 20:20 , Processed in 0.185444 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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