![]() |
1
3
我也做了类似的事情,用OpenGL对3d框进行快速而肮脏的体素可视化。 我从左上角的盒子开始,储存了空/满的标志。然后我试图向右扩展矩形,直到碰到一个带有不同标志的框。我在向下的方向上做了同样的事情。 绘制矩形(如果已填充)。 如果存在重造框,则对最后一个矩形(右、下和右下)诱导的所有三个重造矩形重复该过程:
|
![]() |
2
2
看一看 this article from Dr Dobb's Portal 在你的情况下找到一个最大的矩形。这是对一种极其高效的算法的非常详细的讨论,我认为迭代地重复它可能会解决你的问题。 |
![]() |
3
1
由于你不是在寻找最小的平方数,我建议使用一种折衷方案,仍然保持算法的简单性。 最佳解决方案取决于您的数据,但一个简单的替代方案是只收集一行中的方框。即:
将导致:
这将减少对绘制框的调用次数,而不需要任何缓存(即您可以动态构建框)。 如果你想创建更大的盒子,我建议你使用回溯算法,找到第一个1,并尝试向各个方向展开盒子。建立一个方框列表,并清除使用过的1:。 |
![]() |
4
0
所以你在寻找“ON”方块的矩形边界?
|
![]() |
5
0
我必须解决一个类似的问题,我的算法支持锯齿状数组,我对它进行了大量测试和评论,但它比joel-in的建议慢: https://stackoverflow.com/a/13802336 |
|
avereux · 侵蚀后将轮廓重新绘制为原始图像 8 年前 |
|
Edwin · 使用图像区域作为提交[已关闭] 10 年前 |
![]() |
SixfootJames · 使用SPAN或DIV覆盖时访问底层地图区域 11 年前 |
![]() |
Zakhar · 查找最大面积(MatLab) 12 年前 |
|
Danny · 带MetroUI主题和滚动区域的JQuery 13 年前 |
|
user1540435 · 使一个DIV出现,另一个DIV消失 13 年前 |