2
A
回答
2
这一切都取决于情况。
如果你手动创建帧缓冲区(基本上使用一个字节数组或类似的东西),你必须迭代你想改变的所有像素。因此,例如,开始于一个行的最左边缘:上排
- 查找开始并接通像素,直到发现行形状的第二端部(或行结束)
- 继续对下一行
这当然只有当你拥有所有边缘像素的工作。看看Marching Squares,可以得到一些帮助。
而且请更具体。 “最有效的方式来填充形状”取决于很多你根本渲染库的,如果它是光栅图形等等...
编辑 注意,该算法的速度要快得多,如果你能生成边缘像素,那么不需要寻找边缘的开始。
0
之前,您可以填写的东西,你需要确定确切的边界,在这种情况下,将构成识别圈内部。
之后,你可以检查每个像素的圆周围的一个框,如果它实际上在它。由于您必须对圆内的每个像素执行一些操作,并且圆中像素的数量与边界正方形的像素数成线性关系(假设对于某个常量,边界正方形的边具有长度“半径*常量”),则此操作应该接近最佳。
1
- 如果单词“里面”的话,边界中的中断将破坏意义。
- 像人类视网膜一样的神经网络在进行这种处理时非常高效。
- 在计算机上,您需要花时间来定义“内部”的含义。差距有多大?如何扭曲的边界?
- 模拟一个很大的圆形虫子弹回“内部”周围 - 太大而不能穿过间隙但小于边界的最小曲率半径?????
2
标准flood fill算法将是一个凸形相当有效,并且将处理的情况下,形状较不凸起的比你的预期。不幸的是它需要一个不间断的轮廓。
4
构造凸包并添加缺失的像素。然后使用扫描线算法填充多边形。
相关问题
- 1. 展开填充凸多边形
- 2. 用QPixmap填充QWidget的有效方法
- 3. 填充日历的最有效方法?
- 4. 最有效的方式来填充UITableView
- 5. 填充矩形 - 绘画方法(MIDP)
- 6. 在android中填充数据库的更有效的方法
- 7. 填充没有填充多边形的三角形?
- 8. 最有效的方法,如果一个点或一个凸多边形四
- 9. “填充”有效载荷的最简单方法?
- 10. 用数据填充字节数组的最有效方法?
- 11. 为每个组填充时间序列的有效方法
- 12. 从数据库值填充数组的最有效方法?
- 13. 填充列表的有效方法 - ASP.NET MVC3
- 14. 用字典填充字典键最有效的方法
- 15. Python - 什么是生成填充最有效的方法?
- 16. 用auto_increment填充表格的最有效方法
- 17. 填充三角形算法
- 18. 多边形填充算法
- 19. 凸/凹多边形内的所有点 - 更好的方法?
- 20. 填充结构更有效
- 21. 猫鼬填充 - 有效性
- 22. 有效填充基质
- 23. CasperJS的填充方法
- 24. 以高效的方式填充矩阵
- 25. 任何方式有文本在div填充三角形形状?
- 26. 拖放填充的形状与未填充的形状[作业]
- 27. 的Java2D:填一个凸起的圆形多边形(QuadCurves)
- 28. C:使用填充填充圆形
- 29. 在cocos2d中填充带有方形纹理的多边形形状的精灵
- 30. 获取洪水填充的边界矩形的快速方法
我喜欢“bug”的想法。你也可以在外部运行它,以提供超出间隙的第二个边界,然后用另一种方法填充内部。 – 2012-03-15 15:05:41