我已经为 Simple line drwaing 类实现了 Bresenham 算法,现在我想在它上面设置一个抗锯齿,我使用 JavaFX 进行查看。
如何在不使用库的情况下实现抗锯齿?
我已经为 Simple line drwaing 类实现了 Bresenham 算法,现在我想在它上面设置一个抗锯齿,我使用 JavaFX 进行查看。
如何在不使用库的情况下实现抗锯齿?
进行抗锯齿的一种方法是使用过采样。图像在更高的解决方案中渲染,通常为了效率和易于实施,生成的图像会大两倍,即两倍的幂。然后对生成的图像进行下采样。
一种更有效的方法(另一方面也有一些缺点)是Wu 的算法。在这种方法中,使用查找表存储相邻像素的所需颜色,其中使用亚像素精度绘制像素。Bresenham 的线算法然后使用此查找表来放置具有实际亚像素精度的像素。
后一种方法不需要下采样并且可能更少的内存访问,但是如果线条交叉,因为第二条线抵消了为第一条线绘制的像素,则可能会出现atrifacts。这种影响可以通过对像素使用饱和加法而不是替换来解决。