标签: algorithm draw bit dithering
我有一些X乘Y像素的区域,我需要逐像素填充它。问题在于,在任何给定的时刻,绘制的形状都应尽可能为圆形。
当将灰度图像转换为一位时,我认为该算法是有序抖动的子集,但是我找不到任何参考,也无法自己弄清楚。
我知道布雷森汉姆的圆,但是它用于绘制一定半径而不是面积的圆。
我创建了10 x 10像素网格的所有填充百分比的动画。由于整个区域为10x10 = 100px,因此每个帧正好是1%inc。
答案 0 :(得分:2)
填充的磁盘具有等式
(X - Xc)² + (Y - Yc)² ≤ C.
当您增加C时,满足方程式的点数会增加,但是由于对称性,它会突然增加。
C
要获得所需的填充效果,您可以为每个像素计算(X - Xc)² + (Y - Yc)²,对该值进行排序,然后让像素一个接一个地显示(如果知道所需的像素数,则一次显示)
(X - Xc)² + (Y - Yc)²
您可以用不同的方式打破关系:
使用稳定的排序方式,保持计算像素时的原始顺序;
随机播放相等值的行;
略微更改中心坐标,以确保没有联系。
填充偏心技巧。
值:
订单: