明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 2127|回复: 9

一些疑问About 多线段求最大闭合区域。T T求教

[复制链接]
发表于 2015-4-30 21:49 | 显示全部楼层 |阅读模式
随机在模型空间产生多段线段实体,将当前模型空间里的线段看成一个图,找出最大的闭合区域。生成的最大闭合区域用生成红色的线表示,填充着和区域。
我分析后知道大概要做这几件工作:
   1、相交的线段要打断处理
;2、得到所有交点,然后分析得到这些线段围成的最大的闭合区域3、把最大闭合区域的边界的线用生成红色的线表示,然后在这个闭合区域内生成一个图案填充Hatch。
然后我想请教怎么实现。。T T刚开始接触两三天,原来我在学校学C++的。。大家有没有做过类似的项目呢。带带我。T T
PS, 对啦,我是VC6下开发的CAD二次开发ARX,。谢谢谢谢谢谢啦啦
结果图例子在左边啦~已经填充好的最大区域的样子啦



该贴已经同步到 韩小逆的微博

本帖子中包含更多资源

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

x
发表于 2015-5-4 10:37 | 显示全部楼层
简单化处理:
打断后AcDbRegion::createFromCurves方法创建面域即可!
 楼主| 发表于 2015-5-4 16:53 | 显示全部楼层
Gu_xl 发表于 2015-5-4 10:37
简单化处理:
打断后AcDbRegion::createFromCurves方法创建面域即可!

那怎么找出最大的区域呢。
打断我已经做好了。交点也求出来了,存到了一个交点数组里,然后我现在的想法是,找出所有的闭合路径,加进AcDbPolyline,最后通过多线段闭合求面积,来比较,得最大的面积区域。。然后问题来了。。怎么求所有闭合路径。。然后把路径的每个点加进多线段?
发表于 2015-5-5 13:56 | 显示全部楼层
韩小逆 发表于 2015-5-4 16:53
那怎么找出最大的区域呢。
打断我已经做好了。交点也求出来了,存到了一个交点数组里,然后我现在的想法 ...

在创建的面域里找出面积最大的就是啦!
 楼主| 发表于 2015-5-5 15:57 | 显示全部楼层
Gu_xl 发表于 2015-5-5 13:56
在创建的面域里找出面积最大的就是啦!

可是创建面域不是要先指定面域的边界线段麽,如果把交点看成节点,那这就相当于一个图的数据结构了是吗,那我是不是就要找出其中所有的简单回路,然后构造对应面域然后取最大面积的那个面域就是了。。?
如果是这样,那现在我在纠结怎么构造这个图的结构,因为我不知道怎么表示某点和某点直接相连。。。我很认真想学会,可以帮帮我吗。
发表于 2015-5-5 20:13 来自手机 | 显示全部楼层
韩小逆 发表于 2015-5-5 15:57
可是创建面域不是要先指定面域的边界线段麽,如果把交点看成节点,那这就相当于一个图的数据结构了 ...

你仔细看下AcDbRegion::createFromCurves定义
 楼主| 发表于 2015-5-7 23:09 | 显示全部楼层
Gu_xl 发表于 2015-5-5 20:13
你仔细看下AcDbRegion::createFromCurves定义

这题目可以不可以用intersectWith()取交点,再getSplitCurves()在交点处打断,然后得到打断后的线段实体的ARRAY,再用AcDbRegion::createFromCurves()得到它所有的封闭区域的region,然后都算一遍面积,取最大面积的那个面域,然后边界加色,填充面域。是吗,我刚开始学这个,不太懂见谅。

还有一个问题就是里面那个AcDbRegion::createFromCurves()是返回多线段实体中形成的多个封闭区域的图域而已对吧。
发表于 2016-5-10 17:26 | 显示全部楼层
受教了!

点评

请问如何取得其中的交集区域呢?  发表于 2020-9-21 22:58
发表于 2020-9-21 22:59 | 显示全部楼层
韩小逆 发表于 2015-5-7 23:09
这题目可以不可以用intersectWith()取交点,再getSplitCurves()在交点处打断,然后得到打断后的线段实 ...

请问如何取得其中的交集区域呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-26 23:15 , Processed in 0.530469 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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