328302216 发表于 2012-12-28 17:41

求助高手 判断线形、图层

如图:假如图中原来的线全部为同一个图层,同一个颜色,怎么判断让他自动变成如图所示的!规律就是最外面的框为一个颜色(图层),第二层框 为一个颜色(图层),第三层框又是另外一个颜色(图层)……第N层!我想用这个来控制最外面的线最粗,越里面的越细!哪位老大给个思路!!

328302216 发表于 2012-12-28 17:49

图里的颜色可能有点看不清,   说明一下,原来为一个图层的,想要的结果就是 执行程序后看起来差不多大小的巨型 为 同一个图层!希望能连圆弧、圆、直线等都能够判断出来!在图纸上只要是相同的闭合层执行程序后就变成相同的图层!

NetBee 发表于 2012-12-28 18:10

本帖最后由 NetBee 于 2012-12-28 18:17 编辑

包容判断我记得有个算法的。这方面highflybir是高手。可以向他请教。
----

思路:
1、将所有图形坐标提取为表,
2、循环判断各个图形的坐标是否全部包容在另一个图形中。
3、若A包B,则生成(A (B))的表,若B再包C,则:(A (B (C)))。
4、最后形成((A (B (C))(D (E)) (F (G))...)形式的表
5、根据最后的表作相应处理。

-----
你这个若所有图形为矩且正交,就简单了。

328302216 发表于 2012-12-28 18:16

NetBee 发表于 2012-12-28 18:10 static/image/common/back.gif
包容判断我记得有个算法的。这方面highflybir是高手。可以向他请教。

你应该看过类似的吧!还有没有印象给我点提示

aeromodelling 发表于 2012-12-28 18:23

获取所有的矩形,分别用这些矩形ssget "w",选择集为空的线最细,一个的次之,以此类推,可行否?

328302216 发表于 2012-12-29 11:26

aeromodelling 发表于 2012-12-28 18:23 static/image/common/back.gif
获取所有的矩形,分别用这些矩形ssget "w",选择集为空的线最细,一个的次之,以此类推,可行否?

如果都是巨型这样的话 只有两层倒是可以!但是大部分还是不规则的多边形、圆、圆弧、椭圆等!但是有一个条件就是他们都是闭合的(可能一个闭合区域里面有多种图元组成)

328302216 发表于 2012-12-29 16:05

NetBee 发表于 2012-12-28 18:10 static/image/common/back.gif
包容判断我记得有个算法的。这方面highflybir是高手。可以向他请教。
----



还是不太理解!如果全部都是巨型的可能好理解点,但是我想要实现的是不管是圆圆弧多段线直线 椭圆,不规则图形等都能判断,这个实在是没思路!!

aeromodelling 发表于 2012-12-31 19:18

328302216 发表于 2012-12-29 11:26 static/image/common/back.gif
如果都是巨型这样的话 只有两层倒是可以!但是大部分还是不规则的多边形、圆、圆弧、椭圆等!但是有一个条 ...

那也没关系,可以栏选ss

328302216 发表于 2013-1-2 10:33

aeromodelling 发表于 2012-12-31 19:18 static/image/common/back.gif
那也没关系,可以栏选ss

朋友你能否整一个简单的给我参考一下?我现在没思路……

NetBee 发表于 2013-1-2 12:45

本帖最后由 NetBee 于 2013-1-2 12:55 编辑

思路
一、选择集法
1、提取对象A的点表,多段线无弧直接提取,有弧段及圆、弧则需要根据精度进行加密采点,形成点表。
2、使用ssget "cp"通过点表选择对象集
3、选择对象集中删除对象A4、删除与对象A相交的对象
5、选择集不为空,则里面的对象被A包容
二、数学算法1、提取点表(同一)
2、计算(方法见http://www.docin.com/p-432447172.html)



页: [1] 2
查看完整版本: 求助高手 判断线形、图层