0

我有一些 X x Y 像素的区域,我需要逐个像素地填充它。问题是在任何给定时刻,绘制的形状都应该尽可能圆。

我认为这个算法是有序抖动的子集,在将灰度图像转换为一位时,但我找不到任何参考资料,也无法自己弄清楚。

我知道布雷森汉姆圆,但它用于绘制一定半径的圆而不是面积。

我为 10 x 10 像素网格创建了所有填充百分比的动画。由于整个区域是 10x10=100px,那么每一帧正好是 1% inc。

像素动画

4

1 回答 1

2

填充的磁盘具有等式

(X - Xc)² + (Y - Yc)² ≤ C.

当您增加C时,满足方程的点数会增加,但由于对称性,它会突然增加。

要获得所需的填充效果,您可以计算(X - Xc)² + (Y - Yc)²每个像素,按此值排序,然后让像素一个接一个出现(如果您知道所需的像素数,也可以一次性出现)。

您可以通过不同的方式打破关系:

  • 通过使用稳定的排序,保持原始顺序与计算像素时一样;

  • 打乱相等值的运行;

  • 稍微改变中心坐标,以便没有关系。


填充去中心技巧。

价值观:

在此处输入图像描述

命令:

在此处输入图像描述

于 2019-05-28T15:56:30.567 回答