DDA画线的理论基础

来源:百度知道 编辑:UC知道 时间:2024/06/08 12:32:33

首先给定两个点(x1,y1)(x2,y2)

那么可以算出斜率:k=(y2-y1)/(x2-x1)

直线公式:y = k(x-x1) + y1

先假设斜率小于1。
从(x1,y1)开始,使用画点函数在该处画点。

然后将x1自增1,计算y的值。调用画点函数画点,位置是(x1+1,k+y1),然后再把x1自增1,计算y的值……循环下去,直到x1已经自增到了与x2同样大小。

当然在实际操作时,我们不应改变x1,x2,y1,y2的值,而是应该另设变量初始化为这四个量,然后改变这几个变量的值。

如果斜率小于1,就把方程中y和x的位置互换,改为每次y1自增1,计算x的取值……

若斜率等于1,y=x,最容易了……

但是,当直线非常长时,误差就比较大了,建议使用Bresenham算法……详见《计算机图形学》。