nxy_918 发表于 2011-3-26 22:33:04

如何获取外围轮廓线?

已知图中存在N个正方形或长方形,并已知各个方形的顶点坐标,这些方形不完全相连(即有共同边),
不定数的几个方形连成一个相连区块,也就是图中存在各个有方形连接而成的几个大区块。
现在的问题是如何才能依次得到这些部分相连的方形的外围轮廓坐标,如下图红线即是轮廓线。


tionsy 发表于 2022-2-8 21:19:29

hhh454 发表于 2022-1-2 18:06
已经过去快10年了,估计是没有回复了,我也写到一个这样的,猫老师也讲过这个算法,目前还是不能很好 ...

我想到一个方法,就是先去除重合线,就可以得到外围

尘缘一生 发表于 2021-12-22 11:43:53

chlh_jd 发表于 2012-10-16 21:58
由于是讨论算法,暂时先不贴出源码;
思路(和qjchen老师所提相同,只列出逆时针详细思路):
   1. 找出 ...

可以发出来看看?

hhh454 发表于 2022-1-2 18:06:34

已经过去快10年了,估计是没有回复了,我也写到一个这样的,猫老师也讲过这个算法,目前还是不能很好的理解

qjchen 发表于 2011-3-26 23:13:36

本帖最后由 qjchen 于 2011-3-26 23:14 编辑

:)
假如你只是想用AUTOCAD解决的话,就很简单。假如是要算法,就麻烦一些。
如下图,画一个大矩形包围住这些图形,键入命令 bo或者全称boundary,在如图十字光标点击一下,就创建了这些外边框了。


nxy_918 发表于 2011-3-26 23:55:39

qjchen 发表于 2011-3-26 23:13 static/image/common/back.gif
:)
假如你只是想用AUTOCAD解决的话,就很简单。假如是要算法,就麻烦一些。
如下图,画一个大矩形包围住这 ...

在算法版里发,当然想要算法啦

lihezhou 发表于 2011-3-27 11:06:18

汗!!!!!!

qjchen 发表于 2011-3-28 17:01:01

回复 nxy_918 的帖子

:)
其实建议你最好可以先提一下自己的想法,这样讨论起来才比较有意义

这个问题可以用左手或者右手法则来完成。

就是采用最右最低节点开始,然后,逐步寻找逆时针或者顺时针的最先遇到的节点,如此递推,可获取边界

可以查询gu_xl版主的拓扑相关程序

nxy_918 发表于 2011-3-29 09:45:21

qjchen 发表于 2011-3-28 17:01 static/image/common/back.gif
回复 nxy_918 的帖子

:)


我现在通过程序可得到已知每个方形的上下左右的是哪个方形,想先得到构成外围轮廓线的方形(即该方形的上下左右方向至少有一个方向不存在与其连接的方形,这样的方形就是外围方形,如下图中红色方形),在根据外围方形,得到外围轮廓线,现在的问题是按什么样的规则搜索。

nxy_918 发表于 2011-3-29 09:48:50

不知还有其它好的效率高的法子,特别是直接基于离散坐标的求轮廓线的

sieben 发表于 2011-4-2 10:11:35

1,对方块,先X从左到右排序,再Y从上到下排序
2,从上到下
2.1 从左到右,取出段线
2.2 判断段线的正负(即要判断一下是内轮廓还是外轮廓)
3,从上到下,从左到右,上下两级段线端点相连,或许需要循环多次,直到全部段线相连

nxy_918 发表于 2011-4-2 14:44:35

sieben 发表于 2011-4-2 10:11 static/image/common/back.gif
1,对方块,先X从左到右排序,再Y从上到下排序
2,从上到下
2.1 从左到右,取出段线


2.2判断线段的正负是什么意思

祥子 发表于 2011-6-2 20:33:59

应该是凸凹的角(锐角,钝角)吧
页: [1] 2 3
查看完整版本: 如何获取外围轮廓线?