作为更复杂算法的一部分,我需要遵循:
如何在每个步骤中找到要填写的点数,以便在每个步骤结束时我已完全归档?
我考虑过一些圆光栅化算法,但这会导致填充方面出现一些空白。另一种方法是使用一些数学形态学操作,如扩张,但这似乎在计算上是昂贵的。
我一般都在寻找在任意形状上执行此操作的方法,但最初的圆形算法就足够了。
答案 0 :(得分:2)
您最好的选择是绘制并填充稍大的红色圆圈,然后绘制并填充绿色圆圈。然后重做下一次迭代。
仅绘制1px边框非常棘手。您的样本图像甚至不是很一致。在某些地方,白色像素与绿色像素对角地出现,而在其他地方,像素为红色。
编辑:
答案 1 :(得分:2)
我目前的圈子解决方案。
基于众所周知的Midpoint circle algorithm
该算法可应用于其他类型的参数形状(例如基于贝塞尔曲线)
对于具有中心对称性(圆形)的核的非参数形状(基于像素)图像卷积(膨胀)。换句话说,对于形状中的每个像素寻找具有小半径的圆的邻居并将它们设置为该组的一部分。 (昂贵的计算)
答案 2 :(得分:1)
另一种选择是绘制一个带有2像素宽的红色边框的圆/形状,然后绘制一个带有无边框的绿色实心圆/形状。哪个应该留下 大约 1px宽边。 这取决于您使用的技术如何将线条分解为像素。
圆形算法往往针对绘制圆圈进行优化..... See the link here