明经CAD社区

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
楼主: nxy_918

如何获取外围轮廓线?

  [复制链接]
发表于 2011-11-10 23:52:48 | 显示全部楼层
nxy_918 发表于 2011-3-29 09:45
我现在通过程序可得到已知每个方形的上下左右的是哪个方形,想先得到构成外围轮廓线的方形(即该方形的上 ...

其实你这种想法就像那“扫雷”游戏,做个递归函数:一个方块是一个单元,判断这个单元四个方向是否有连接其它单元,有的话就回调,没有的返回对应的单元以及没有连接其它单元的边。最终得到最外围的所有单元以及对应的边,再把对应的边的几个方向做个排序,应该就可以出来了。不知道我这样理解对不对。
 楼主| 发表于 2012-1-17 16:07:07 | 显示全部楼层
feng582304 发表于 2011-11-10 23:52
其实你这种想法就像那“扫雷”游戏,做个递归函数:一个方块是一个单元,判断这个单元四个方向是否有连接 ...

有启发,谢谢
发表于 2012-2-8 10:16:55 | 显示全部楼层
还可以考虑用线段扫描算法,sweepline
1.建立次序x,y
2.从左到右,从下到上扫描找出边界
发表于 2012-3-18 11:25:15 | 显示全部楼层
此贴 先顶起来!!!
发表于 2012-10-16 21:58:52 | 显示全部楼层
本帖最后由 chlh_jd 于 2012-10-16 22:01 编辑

由于是讨论算法,暂时先不贴出源码;
思路(和qjchen老师所提相同,只列出逆时针详细思路):
   1. 找出最左下角点的关联线段,至少是2条 。
   2. 取出中点最下面的一条p0p1,利用其他条p2做顺逆判断,决定该条线段两的顶点的先后;
       如果p2p0p1为逆时针,那么顺序为p0p1,反之则为p1p0。
   3. 然后由其实向量p0-->p1依次查找下一条线段p1-->p2,查找方法:
         3.1 取出以p1为顶点的所有其他线段;
         3.2 这些线段群的另一个顶点为P2,找出向量p1-->p0顺时针转到向量P1-->P2扫过的夹角最大的那条;
         3.3 该条线段的另一个顶点即为所求的下一个顶点。
  4.  重复循环步骤3,直到找到的顶点与起始线段的第1点相同或者重合。


本帖子中包含更多资源

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

x
发表于 2021-12-22 11:43:53 | 显示全部楼层
chlh_jd 发表于 2012-10-16 21:58
由于是讨论算法,暂时先不贴出源码;
思路(和qjchen老师所提相同,只列出逆时针详细思路):
   1. 找出 ...

可以发出来看看?
发表于 2022-1-2 18:06:34 | 显示全部楼层
已经过去快10年了,估计是没有回复了,我也写到一个这样的,猫老师也讲过这个算法,目前还是不能很好的理解
发表于 2022-2-8 21:19:29 | 显示全部楼层
hhh454 发表于 2022-1-2 18:06
已经过去快10年了,估计是没有回复了,我也写到一个这样的,猫老师也讲过这个算法,目前还是不能很好 ...

我想到一个方法,就是先去除重合线,就可以得到外围
发表于 2022-8-18 10:12:37 | 显示全部楼层
我的理解是先 把每个点坐标找到 然后reg 然后按面积排序 取面积最大的
发表于 2023-2-4 09:44:00 来自手机 | 显示全部楼层
算法上是说,平面上有n个点坐标,求n点的外轮廓线(即点坐标的序列)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-11-23 22:08 , Processed in 0.153986 second(s), 18 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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