计算机图形学直线生成算法实现.doc

计算机图形学直线生成算法实现.doc

ID:55720317

大小:76.00 KB

页数:7页

时间:2020-05-28

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

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

1、实验二直线生成算法实现班级08信计学号80姓名分数一、实验目的和要求:1、理解直线生成的基本原理2、掌握几种常见的直线的生成算法3、实现直线生成的算法二、实验内容:1.了解直线的生成原理2.掌握几种基木的直线生成算法:DDA算法、brcscnham画线法、中点画线法3.实现直线生成的,在屏幕上任意生成一条直线三、实现程序程序1#definepi3.141592ttdefineMAX(a,b)(a>b)?a:bftdefineMIN(a,b)(a

2、include"math,h”structrectangle(intxmin;intxmax;intymin;intymax;);structpoint(floatx;floaty;);structpointpot[2];structrectanglerect=(150,490,100,380);intx=0,y=0;voidzhongxing(intx,inty,ints)(inti;for(i=x-5;i<=x+5;i++)(putpixel(i,y,s);)for(i=y-5;i<=y+5;i

3、++)(putpixel(x,i,s);))voidadd(intx,inty,inti)pot[i].x=x;pot[i].y=y;)intclip(floatq,floatd,float*t0,float*tl)(floatr;if(q<0)(r=d/q;if(r>*tl)return(0);elseif(r>*t0)(*t0=r;return(1);))elseif(q>0)(r=d/q;if(r<*t0)return(0);elseif(r<*tl)(*tl=r;return(1);))el

4、seif(d<0)return(0);return(1);)voidliang(structpoint*pot,structrectangle*rect)(floatdelatx,delaty,tO,tl;t0=0;tl=l;delatx=pot[1]・x-pot[0]・x;if(clip(-delatx,pot[0].x-rect->xmin,&t0,&tl))if(clip(delatx,rect->xmax-pot[0].x,&t0,&tl))(delaty=pot[1].y-pot[0].y

5、;if(clip(-delaty,pot[0].y-rect->ymin,&t0,&tl))if(clip(delaty,rect->ymax-pot[0].y,&t0,&tl))(line((int)(pot[0].x+t0*delatx),(int)(pot[0].y+t0*delaty),(int)(pot[0].x+tl*delatx),(int)(pot[0].y+tl*delaty));)))voidmain()(intdriver=DETECT,mode;inti=0,j,key;re

6、gisterbgidriver(EGAVGA_driver);initgraph(&driver,&mode,"\tc");initgraph(&driver,&mode,"\tc");zhongxing(x,y,4);setcolor(3);rectangle(150,100,490,380);/**/for(;;)(if(bioskey(1))(key=bioskey(0):if(key==0x4d00)(zhongxing(x,y,0);x+=5;zhongxing(x,y,4);rect

7、angle(150,100,490,380);)if(key==0x011b){printf("escbepress*);break;)if(key=0x4b00)(zhongxing(x,y,0);x-=5;zhongxing(x,y,4);rectangle(150,100,490,380);)if(key==0x5000)(zhongxing(x,y,0);y+=5;zhongxing(x,y,4);rectangle(150,100,490,380);)if(key==0x4800)(zho

8、ngxing(x,y,0);y-=5;zhongxing(x,y,4);rectangle(150,100,490,380);)if(key==OxlcOd)(add(x,y,i);circle(x,y,3);i+=l;}if(key==0x3920)(liang(pot,&rect);for(j=0;j<2;j++)(pot[j].x=0;pot[j].y=0;}i=0;)))getch();closegraph();)一程序2(1)DDA算法程序实现的完整源程序#

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

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

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