计算机图形学---直线的生成算法.doc

计算机图形学---直线的生成算法.doc

ID:55040218

大小:140.00 KB

页数:7页

时间:2020-04-26

计算机图形学---直线的生成算法.doc_第1页
计算机图形学---直线的生成算法.doc_第2页
计算机图形学---直线的生成算法.doc_第3页
计算机图形学---直线的生成算法.doc_第4页
计算机图形学---直线的生成算法.doc_第5页
资源描述:

《计算机图形学---直线的生成算法.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、实验二直线段生成绘制的实现算法班级08信计2班学号姓名张玉凤分数一、实验目的和要求:1、掌握光栅图形显示基本原理2、熟悉直线的生成算法,掌握直线的绘制3、初步了解Tc下画图基本程序结构;4、初步了解DDA画线算法及Bresenham算法的思想和基本方法二、实验主要思想:1、DDA算法思想:数值微分法即DDA法,这是一种基于直线的微分方程来生成直线的方法。选定和中较大者作为步进方向,取该方向上的为一个像素单位长,即x每次递增一个像素,然后利用公式计算出相应的y值,把每次计算出的取整后顺序输出到显

2、示器,则得到光栅后的直线。2、中点直线算法思想:假定直线斜率k在0~1之间(k的其它取值可以类似处理),当前象素点为(xp,yp),则下一个象素点有两种可选择点P1(xp+1,yp)或P2(xp+1,yp+1)。若P1与P2的中点(xp+1,yp+0.5)称为M,Q为理想直线与x=xp+1垂线的交点。当M在Q的下方时,则取P2应为下一个象素点;当M在Q的上方时,则取P1为下一个象素点。这就是中点画线法的基本原理。三、实验内容及步骤1、dda画线算法画一段直线实验代码:#include"stdio.h

3、"#include"graphics.h"voidDDALine(intx1,inty1,intx2,inty2){   doubledx,dy,e,x,y;   inti;   dx=x2-x1;   dy=y2-y1;   e=(fabs(dx)>fabs(dy))?fabs(dx):fabs(dy);   dx/=e;   dy/=e;   x=x1;7   y=y1;   for(i=1;i<=e;i++)  {       putpixel((int)(x+0.5),(int)(y+0.5

4、),GREEN);       x+=dx;       y+=dy;   }}voidmain(){   intdriver=VGA;   intmode=VGAHI;   initgraph(&driver,&mode,"");   DDALine(100,150,250,300);   getch();   closegraph();}运行结果:2.用Bresenham画线算法画直线,并完善算法功能,使之适应更广实验代码:#include#include

5、>voidBresenhamline(intx1,inty1,intx2,inty2){   intx,y,dx,dy,p;   x=x1;   y=y1;   dx=x2-x1;   dy=y2-y1;   p=2*dy-dx;   for(;x<=x2;x++)   {       putpixel(x,y,BLUE);       if(p>=0)       {           y++;          p+=2*(dy-dx);       }       else       { 

6、          p+=2*dy;       }7   }}main(){   intdriver=VGA;   intmode=VGAHI;   initgraph(&driver,&mode,"");   Bresenhamline(50,150,200,250);   getch();   closegraph();}运行结果:3.、对比Bresenham算法、DDA算法、中点算法三种算法的像素逼近效果和程序执行速度三两种算法的像素逼近效果和程序执行速度。实验代码:#include

7、io.h>#include#include#include#include#includevoidDrawZb();voidBLine(int,int,int,int);voidDDALine(int,int,int,int);voidMidLine(int,int,int,int);voidmain(){inti;charstr[20];longoldtime,newtime,time;intgd=VGA,g

8、m=VGAHI;initgraph(&gd,&gm,"D:\TC\TCPP\BGI");DrawZb();outtextxy(10,10,"Welcometothisprogram!");settextstyle(2,0,0);outtextxy(10,420,"Name:Lineswork1.0");outtextxy(10,430,"Information:ComputerGraphicsWork-lines");outtextxy(10,440,"Copy

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。