扫描转化概念
图形的光栅化:
- 根据图形的定义在点阵单元上确定最佳逼近于图形的像素集
- 给像素指定合适的颜色值
点
直线
高质量直线的要求:
- 直线要直
- 直线的端点要准确,无定向性和断裂情况
- 直线的亮度色泽要均匀
- 画线的速度要快,还能处理不同的线宽,亮度,线型
直线扫描转换算法:
- 逐点比较法
- 正负法
- 数值微分算法
- Bresenham算法
数值微分法(Digital Difference Analyzer)简称DDA
一种直接存直线的微分方程生成直线的方法。
通过给定直线的两端点坐标P0(x0,y0)和P1(x1,y1);我们可以得到直线的微分方程:dy/dx = (y1-y0)/(x1-x0) = k
在一个迭代算法中,如果每一步的x,y值是使用前一步的值加上一个增量来获得的,那么这种算法就称为增量算法。因此,DDA算法就是一个增量算法。
优点:DDA算法直观,易实现。
缺点:有浮点数和浮点运算,效率不高。
中点Bresenham算法