社区
图形处理/算法
帖子详情
把不规则多边形分割成矩形的问题
bdxxxx
2011-11-07 04:56:43
有一个由多个矩形重叠成的不规则图形,要重新分割成多个矩形不重叠组成的图形,求思路或者算法,自己写了很多次不是太麻烦就是太局限就是考虑不周到。。。
分割的结果类似下图
...全文
2131
17
打赏
收藏
把不规则多边形分割成矩形的问题
有一个由多个矩形重叠成的不规则图形,要重新分割成多个矩形不重叠组成的图形,求思路或者算法,自己写了很多次不是太麻烦就是太局限就是考虑不周到。。。 分割的结果类似下图
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
caozl
2011-11-10
打赏
举报
回复
[Quote=引用 12 楼 bdxxxx 的回复:]
引用 11 楼 caozl 的回复:
如果任一分法都可以的话 是不是这样认为呢
既然是由多个矩形重叠成的不规则图形 那就一个一个的把矩形给累加上去
两个矩形的并结果最多可以分成三个矩形。然后再把下一个矩形与这些结果分别做并。
两个矩形有重叠部分 最一般的结果不是3个矩形,而是一个矩形和2个L型多边形
[/Quote]
我的意思并不是求交 而是指X轴方向或Y轴方向上切开并运算的结果 这样可以得到3个矩形吧
然后就是不断的添加矩形与当前存在的矩形去运算。把运算结果取出再重新添加
bdxxxx
2011-11-10
打赏
举报
回复
[Quote=引用 11 楼 caozl 的回复:]
如果任一分法都可以的话 是不是这样认为呢
既然是由多个矩形重叠成的不规则图形 那就一个一个的把矩形给累加上去
两个矩形的并结果最多可以分成三个矩形。然后再把下一个矩形与这些结果分别做并。
[/Quote]
两个矩形有重叠部分 最一般的结果不是3个矩形,而是一个矩形和2个L型多边形
caozl
2011-11-10
打赏
举报
回复
如果任一分法都可以的话 是不是这样认为呢
既然是由多个矩形重叠成的不规则图形 那就一个一个的把矩形给累加上去
两个矩形的并结果最多可以分成三个矩形。然后再把下一个矩形与这些结果分别做并。
caozl
2011-11-10
打赏
举报
回复
[Quote=引用 15 楼 bdxxxx 的回复:]
引用 14 楼 caozl 的回复:
我对这个问题的基本思路是:
定义CRECT类 在这个类里有一个方法:
bool CRECT::AddRect(CRect& rect, std::vector<CRect>& rectResults);
当两个矩形相交或者可以合并为一个矩形的时候,这个方法返回true, 并把合并的结果传出
输入为一个std::……
[/Quote]
不需要整理 因为
bool CRECT::AddRect(CRect& rect, std::vector<CRect>& rectResults);
当两个矩形相交或者可以合并为一个矩形的时候,这个方法返回true, 并把合并的结果传出
如果生成的矩形可以和相邻的矩形合并的话 在添加进结果数组的时候就会合并了。
peterormike
2011-11-10
打赏
举报
回复
沿着凹点分割,递归处理。以9楼的图形为例:
http://hi.csdn.net/attachment/201111/10/2530173_1320907025RRCC.jpg
bdxxxx
2011-11-10
打赏
举报
回复
[Quote=引用 14 楼 caozl 的回复:]
我对这个问题的基本思路是:
定义CRECT类 在这个类里有一个方法:
bool CRECT::AddRect(CRect& rect, std::vector<CRect>& rectResults);
当两个矩形相交或者可以合并为一个矩形的时候,这个方法返回true, 并把合并的结果传出
输入为一个std::vector<CRect> rectInput;
输出为……
[/Quote]
应该是可以 但是这会导致分块越来越小,矩形越来越多,还需要在分成小块之后进行整理
caozl
2011-11-10
打赏
举报
回复
我对这个问题的基本思路是:
定义CRECT类 在这个类里有一个方法:
bool CRECT::AddRect(CRect& rect, std::vector<CRect>& rectResults);
当两个矩形相交或者可以合并为一个矩形的时候,这个方法返回true, 并把合并的结果传出
输入为一个std::vector<CRect> rectInput;
输出为一个std::vector<CRect> rectOutput;
把rectInput里的矩形分别与rectOutput中的矩形做AddRect运算 如果返回TRUE 就把返回的结果给push_back到rectInput的后面。并把rectOutput中的这个矩形给删除。
bdxxxx
2011-11-09
打赏
举报
回复
呃 看来没人有兴趣啊
laviewpbt
2011-11-07
打赏
举报
回复
利用WINDOWS的GDI函数GetRegionData 的话可以得到如下的四个矩形。
谁是我的谁的谁
2011-11-07
打赏
举报
回复
不要瞎出主意了 典型的图形学2维几何(可以中空-有孔) 运算(并)问题
用户 昵称
2011-11-07
打赏
举报
回复
[Quote=引用 6 楼 bdxxxx 的回复:]
引用 2 楼 jennyvenus 的回复:
可不可以这样
把边界的线段提取出来,一定要提取到最短的线段,不能再分,然后找共有线段。
然后判断如果没有共有线段的话,某个矩形是不是一个矩形
这个样子分出来的矩形是不是太小了。。。
[/Quote]
不知道啊,俺所能想像的就是这个了
bdxxxx
2011-11-07
打赏
举报
回复
[Quote=引用 2 楼 jennyvenus 的回复:]
可不可以这样
把边界的线段提取出来,一定要提取到最短的线段,不能再分,然后找共有线段。
然后判断如果没有共有线段的话,某个矩形是不是一个矩形
[/Quote]
这个样子分出来的矩形是不是太小了。。。
bdxxxx
2011-11-07
打赏
举报
回复
[Quote=引用 3 楼 bhybhybhy2 的回复:]
查 图形学 2维图形的几何运算
代码到cgal里面找
[/Quote]
多谢
bdxxxx
2011-11-07
打赏
举报
回复
[Quote=引用 1 楼 happyparrot 的回复:]
你所画的只是一个很简单的特例,能选择的拆分方法只有一种。而对于复杂的重叠情况,可能能够满足条件的拆分方法并不止一种,你如何要求哪种是正确的,或者任何一种都可以呢?
[/Quote]
我画的却是是很简单的,实际情况是还有可能是中空的, 满足拆分条件的都任一分法都可以
谁是我的谁的谁
2011-11-07
打赏
举报
回复
查 图形学 2维图形的几何运算
代码到cgal里面找
用户 昵称
2011-11-07
打赏
举报
回复
可不可以这样
把边界的线段提取出来,一定要提取到最短的线段,不能再分,然后找共有线段。
然后判断如果没有共有线段的话,某个矩形是不是一个矩形
快乐鹦鹉
2011-11-07
打赏
举报
回复
你所画的只是一个很简单的特例,能选择的拆分方法只有一种。而对于复杂的重叠情况,可能能够满足条件的拆分方法并不止一种,你如何要求哪种是正确的,或者任何一种都可以呢?
C#实现
不规则
图形
分割
成
多个
矩形
组合可视化工具, 核心是一个找最大内切
矩形
的算法
C#代码,
不规则
图形
分割
成
多个
矩形
,可视化工具, 核心是一个找最大内切
矩形
的算法 牵涉到的知识点: 1. 图片的加载和像素解析,绘制到pictureBox上 2.控制pitctureBox缩放(ctrl+滚轮)和移动 3.动态生
成
bitmap,...
6
多边形
及其内角和 (2).ppt
例如,有些图形显示了对称性,可能暗示着它们是正
多边形
,而其他图形则可能揭示了
不规则
的边长和角度,表明它们是
不规则
多边形
。 总结来说,
多边形
的内角和与其边数有直接关系,可以通过简单的公式进行计算。正...
多边形
裁剪算法程序
多边形
裁剪算法程序
1.
多边形
:在计算机图形学中,
多边形
是基本的形状单元,通常由三个或更多个顶点连接而
成
。常见的
多边形
有三角形和四边形。 2. 裁剪:裁剪是指根据特定的边界条件,删除
多边形
的一部分,保留可视部分。 3. 裁剪...
一款在线图像标注工具(
矩形
、
多边形
、持续更新中……),可用于深度学习实例
分割
模型训练(Mask R-CNN)等。.zip
矩形
标注通常用于简单的边界框定位,而
多边形
标注则可以更精确地描绘出
不规则
形状的物体边界,对于复杂场景的实例
分割
尤为有用。 提到的这款在线图像标注工具,它不仅提供了基础的
矩形
标注功能,还支持
多边形
标注,...
多边形
面积 形心 惯性距
对于简单的
多边形
(如
矩形
、三角形),我们有直接的公式来计算,但对于
不规则
多边形
,可能需要通过
分割
成
多个简单形状来求解,或者采用格林公式或积分方法。在计算机程序中,通常会利用像素或顶点坐标来计算。 2. *...
图形处理/算法
19,466
社区成员
50,678
社区内容
发帖
与我相关
我的任务
图形处理/算法
VC/MFC 图形处理/算法
复制链接
扫一扫
分享
社区描述
VC/MFC 图形处理/算法
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章