在数学上,理想的直线是没有宽度的、由无数个点构成的集合。当我们对直线进行光栅化时,只能在显示器所给定的有限个像素组成的矩阵中,确定最佳逼近该直线的一组像素,并且按扫描线顺序对这些像素进行写操作,这就是通常所说的直线的扫描转换。
问题定义:
输入:起点(X0,Y0),终点(Xn,Yn)
输出:最靠近直线的像素点的集合
![在这里插入图片描述](https://img-blog.csdnimg.cn/20210511141139359.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQzNTQyODE4,size_16,color_FFFFFF,t_70)
直线光栅化的要求:粗细一致,亮度均匀;连续不间断;高效。
方法一:数值微分法
根据直线的微分方程来画直线。
设直线的起点坐标是Ps(Xs,Ys),终点坐标为Pe(Xe,Ye),令Δx=Xe-Xs,Δy=Ye-Ys。
则要绘制的直线微分方程为:
对上面式子中用的微商用差商来代替,即得: