Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我有一些 X x Y 像素的区域,我需要逐个像素地填充它。问题是在任何给定时刻,绘制的形状都应该尽可能圆。
我认为这个算法是有序抖动的子集,在将灰度图像转换为一位时,但我找不到任何参考资料,也无法自己弄清楚。
我知道布雷森汉姆圆,但它用于绘制一定半径的圆而不是面积。
我为 10 x 10 像素网格创建了所有填充百分比的动画。由于整个区域是 10x10=100px,那么每一帧正好是 1% inc。
填充的磁盘具有等式
(X - Xc)² + (Y - Yc)² ≤ C.
当您增加C时,满足方程的点数会增加,但由于对称性,它会突然增加。
C
要获得所需的填充效果,您可以计算(X - Xc)² + (Y - Yc)²每个像素,按此值排序,然后让像素一个接一个出现(如果您知道所需的像素数,也可以一次性出现)。
(X - Xc)² + (Y - Yc)²
您可以通过不同的方式打破关系:
通过使用稳定的排序,保持原始顺序与计算像素时一样;
打乱相等值的运行;
稍微改变中心坐标,以便没有关系。
填充去中心技巧。
价值观:
命令: