计算机图形学教学课件 第3章.pptVIP

  • 5
  • 0
  • 约7.84千字
  • 约 48页
  • 2019-10-03 发布于广东
  • 举报
第3章 基本图形 生成算法 3.1 生成直线的常用算法 均假定所画直线的斜率k∈[0,1]。 3.1.1 DDA画线算法 DDA(Digital Differential Analyzer)画线算法也称数值微分法,是一种增量算法。它的算法实质是用数值方法解微分方程,通过同时对x和y各增加一个小增量,计算下一步的x、y值。 已知一条直线段L(P0, P1),其端点坐标为:P0 (x0, y0), P1(x1, y1)。可计算出直线的斜率k为: 假定端点坐标均为整数,取直线起点P0 (x0, y0)作为初始坐标。画线过程从x的左端点x0开始,向x右端点步进,每步x递增1,y递增k(即直线斜率);取像素点(x,round(y))作为当前点的坐标。 3.1.2 中点画线算法 假设x坐标为xp的各像素点中,与直线最近者已确定,为P(xp,yp),那么,下一个与直线最近的像素只能是正右方的P1(xp+1,yp),或右上方的P2(xp+1,yp+1)两者之一。令M为P1和P2的中点,易知M的坐标为(xp+1,yp+0.5)。 设Q是理想直线与垂直线x=xp+1 的交点。显然,若M在Q的下方,则P2 离直线近,应取为下一个像素;否则应 取P1。 令a=y0-y1,b=x1-x0,c=x0y1-x1y0。 构造判别式: d=

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档