《精》计算机图形学第二讲 直线和圆的生成.pptVIP

  • 2
  • 0
  • 约7.05千字
  • 约 46页
  • 2017-01-16 发布于北京
  • 举报

《精》计算机图形学第二讲 直线和圆的生成.ppt

直线DDA算法描述 设(x1,y1)和(x2,y2)分别为所求直线的起点和终点坐标,由直线的微分方程得 可通过计算由x方向的增量△x引起y的改变来生成直线: 也可通过计算由y方向的增量△y引起x的改变来生成直线: 直线DDA算法思想   选定x2-x1和y2-y1中较大者作为步进方向(假设x2-x1较大),取该方向上的增量为一个象素单位(△x=1),然后利用公式计算另一个方向的增量(△y=△x·m=m)。通过递推公式,把每次计算出的(xi+1,yi+1)经取整后送到显示器输出,则得到扫描转换后的直线。   之所以取x2-x1和y2-y1中较大者作为步进方向,是考虑沿着线段分布的象素应均匀,这在下图中可看出。   另外,算法实现中还应注意直线的生成方向,以决定Δx及Δy是取正值还是负值。 直线DDA算法实现 Void DDALine(int x1,int y1,int x2, int y2,int color) { int x; float k,y=y1; k=1.0*(y2-y1)/(x2-x1); for(x=x1;x=x2;x++) { putpixel(x, (int)(y+0.5),color); y=y+k; } }   按照从(x1, y1)到(x2, y2)方向不同,分8个象限。对于方向在第1a象限内的直

文档评论(0)

1亿VIP精品文档

相关文档