实验二直线光栅化算法

实验二直线光栅化算法

ID:28015756

大小:118.04 KB

页数:7页

时间:2018-12-07

实验二直线光栅化算法_第1页
实验二直线光栅化算法_第2页
实验二直线光栅化算法_第3页
实验二直线光栅化算法_第4页
实验二直线光栅化算法_第5页
资源描述:

《实验二直线光栅化算法》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

1、实验二直线和三角形光栅化算法数媒1301徐潞滨201326810522一、实验原理DDA算法主要是根据直线公式y=kx+b来推导出来的,其关键之处在于如何设定单位步进,即一个方向的步进为单位步进,另一个方向的步进必然是小于1。算法的具体思路如下:1.输入直线的起点、终点;2.计算x方向的间距:AX和y方向的间距:AY。3.确定单位步进,取MaxSteps=max(AX,AY);gAX〉=AY,则X方向的步进力单位步进,X方向步进一个单位,Y方向步进AY/MaxSteps;否则相反。4.设置第一个点的像素值5.令循环初始值为1,循环次数为MaxSte

2、ps,定义变量x,y,执行以下汁算:a.x增加一个单位步进,y增加一个单位步进b.设置位置为(X/y)的像素值二、代码设计和说明^include^include#includevoidLine(doublexl,doubleyl,doublex2,doubley2)floatx,y,dx,dy;intk,i;if(abs(x2~xl)>=abs(y2_yl)){k二abs(x2-xl);}else{k=abs(y2-yl);}dx=(float)(x2-xl)/k;dy=(float)(y2

3、-yl)/k;x=(float)(xl);y=(float)(yl);for(i=0;i

4、;voidinit(void){/*selectclearingcolor*/glClearColor(0.0,0.0,0.0,0.0):/*initializeviewingvalues*/glMatrixMode(GL一PROJECTI⑽;glboadldcntity();glu0rtho2D(0,500,0,500);}/*anddisplaymodewith"hello"*Declareinitialwindowsize,position,*(singlebufferandRGBA).Openwindow*initstitlebar.Cal

5、1initializationroutines.*Registercallbackfunctiontodisplaygraphics.*Entermainloopandprocessevents.*/intmain(intargc,char**argv)glutTnit(&argc,argv);glutTnitDisplayMode(GLUTSINGLE

6、GLUTRGB);//设0?S?窗氾?口U大洙?小?,?以?像?素?为a单蹋?位?glutInitWindowSize(500,500);glutInitWindowPosition(100,10

7、0);glutCreateWindow(〃光a栅Q化一算?法*?直±线?〃);init();glutDisplciyFunc(display);glutMciinLoopO;return0;/*ANSICrequiresmaintoreturnint.}三、实验运行结果(包含用户输入和输出)三voiddisplay(){/木clearallpixels木/glClear(GL_COLOR_BUFFER_BIT):Line(0,0,100,100):Line(0,0,200,100):Line(0,0,300,100):glFlushO;}在disp

8、lay函数中输入如上数据;显示出如图3条不同斜率直线

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

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

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