河南理工大学计算机图形学实验二

河南理工大学计算机图形学实验二

ID:22147149

大小:111.25 KB

页数:5页

时间:2018-10-27

河南理工大学计算机图形学实验二_第1页
河南理工大学计算机图形学实验二_第2页
河南理工大学计算机图形学实验二_第3页
河南理工大学计算机图形学实验二_第4页
河南理工大学计算机图形学实验二_第5页
资源描述:

《河南理工大学计算机图形学实验二》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、河南理工大学教学上机实验报告20U—20丛_学年第」_学期上机时间2015-9-30专业班级计算机本1502学号321509010226姓名乔志清实验课程名称:计算机图形学基础实验目的和要求:理解基本图形元素光栅化的基本原理,掌握一种基本图形元素光栅化算法,利用OpenGL实现直线光栅化的DDA算法。实验项目名称:直线生成算法实现颜色RGB值对照如下:颜色RGB红100绿010蓝001玫瑰110青011黄101白111实验过程及代码:1.根据基本的源程序,在计算机上编译运行,并且正确的输出结果;2.阅读、理解并分析基木源程序,查阅资料改变直线的size及color等属性;1.在编译

2、环境中编写、修改程序使运行结果发生改变;2.对程序进行优化,检查调试程序使其准确的运行出结果。#include#include#includeintcolor,size;voidLineDDA(intxO,intyO,intxl,intyl,intcolor,intsize){intx,cly,dx,y;floatm;dx=xl-xO;dy=y1-yO;m=dy/dx;y=yO;floata,b,c;if(color::l){a=1.0;b=0.0;c=0.0;}elseif(color==2){a=0.0;b=1.0;c

3、=0.0;}elseif(color==3){a=0.0;b=0.0;c=1.0;}elseif(color==4){a=1.0;b=0.0;c=1.0;}elseif(color==5){a=().();b=1.0;c=1.0;}elseif(color==6){a=1.0;b=1.0;c=0.0;}elseif(color==7){a=1.0;b=1.0;c=1.0;}elsea=l.O;b=O.O;c=O.O;glColor3f(a,b,c);glPointSize(size);for(x=xO;x<=xl;x++){glBegin(GL_POINTS);glVertex2i

4、(x,(int)(y+0.5));glEnd();y+=m;}}voidmyDisplay(void){glClearColor(0.0,0.0,0.0,0.0);glClear(GL_COLOR_BUFFER_BIT);glColor3f(1.0f,l.Of,O.Of);glRectf(25.0f,25.0f,75.0f,75.0f);glPointSize(5);glBegin(GL—POINTS);glColor3f(O.Of,1.Of,O.Of);glVertex2f(O.Of,O.Of);//点的位置glEnd();LineDDA(0,0,200,300,color,si

5、ze);//DDA算法画直线//OpenGL画直线glBegin(GL.LINES);glColor3f(1.0f,l.Of,O.Of);glVertex2f(lOO.Of,O.Of);glColor3f(0.0f,l.Of,0.00;glVertex2f(180.0f,240.0f);glEnd();glFlush();}voidInit(){glClearColor(0.0,0.0,0.0,0.0);glShadeModel(GL_FLAT);//GL_SMOOTH会出现过渡效果,GL_FLAT则只是以指定的某一点的单一色绘制其他所有点}voidRe$hape(intw,int

6、h){glViewport(0,0,(GLsizei)w,(GLsizei)h);glMatrixMode(GL_PROJECTION);glLoadldentityO;gluOrtho2D(0.0,(GLdouble)w,0.0,(GLdouble)h);}intmain(intargc,char*argv[J)printf(u划画颜色按以下约定:");printf(•’红绿蓝玫瑰青黄白11");printf("<100>;2<010>;3<001>;4<110〉;5<011〉;6<101〉;7<111〉")printf("输入画线颜色<1〜7〉:");scan

7、f(’’%du,&color);printfC'Xn输入划线宽度:•’);scanf(’’%d",&size);glutlnit(&argc,argv);glutInitDisplayMode(GLUT_RGB

8、GLUT.SINGLE);glutInitWindowPosition(100,100);glutInitWindowSize(400,400);glutCreateWindow(uHeIloWorld!");Init();glutDisplayFunc(&m

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

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

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