资源描述:
《计算机图形学基础教程实验报告.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、湖北民族学院信息工程学院实验报告(数字媒体技术专业用)班级:姓名:谌敦斌学号:实验成绩:实验时间:2013年10月14日9、10节实验地点:数媒实验室课程名称:计算机图形学基础教程实验类型:设计型þ实验题目:直线与圆的绘制一、实验目的通过本次实验,熟练掌握DDA、中点、Bresenham直线绘制方法和中点、Bresenham圆的画法,能够在vc环境下独立完成实验内容,逐渐熟悉opengl的语法特点,提高程序基本绘图的能力。二、实验环境(软件、硬件及条件)Microsoftvc++6.0多媒体计算机三、实验内容1.从DDA、中点、Bresenham画线法
2、中任选一种,完成直线的绘制。2.从中点、Bresenham画圆法中任选一种,完成圆的绘制。四、实验方法与步骤打开vc++6.0,新建一个工程,再在工程里面建一个.cpp文件,编辑程序,编译连接后执行即可。程序如下bresenham画线法:#include#includeintbresenham(intx0,inty0,intx1,inty1,intcolor){intx,y,dx,dy,e,i;dx=x1-x0;dy=y1-y0;e=-dx;y=y0;for(x=x0;x<=x1;x++){putpixel(x
3、,y,color);e+=2*dy;if(e>=0){y++;e-=2*dx;}}return0;}intmain(){initgraph(640,480);bresenham(0,0,500,200,255);while(!kbhit()){}closegraph();return0;}Bresenham画圆法:#include#includeintcirclepoints(intx,inty,intcolor){putpixel(255+x,255+y,color);putpixel(255+y,255+x
4、,color);putpixel(255-x,255+y,color);putpixel(255+y,255-x,color);putpixel(255-x,255-y,color);putpixel(255-y,255-x,color);putpixel(255+x,255-y,color);putpixel(255-y,255+x,color);return0;}intbresenhamcircle(intr,intcolor){intx,y,d;x=0;y=r;d=3-2*r;while(x<=y){circlepoints(x,y,color)
5、;if(d<0)d+=4*x+6;else{d=d+4*(x-y)+10;y--;}x++;}return0;}intmain(){initgraph(640,480);bresenhamcircle(100,255);while(!kbhit()){}closegraph();return0;}五、实验结果记录与分析实验结果如下:六、疑难问题报告湖北民族学院信息工程学院实验报告(数字媒体技术专业用)班级:姓名:谌敦斌学号:实验成绩:实验时间:2013年10月29日9、10节实验地点:数媒实验室课程名称:计算机图形学基础教程实验类型:设计型þ实验题目:
6、多边形的填充算法和曲线的绘制一、实验目的通过本次实验,熟练掌握种子填充算法和多边形扫描线填充算法以及bezier曲线或者B样条曲线的基本绘制算法,能够独立在vc环境下实现任意多边形的填充和一般曲线的绘制,进一步熟悉opengl的语法结构和强大的绘图功能,增强多媒体底层程序绘图能力。二、实验环境(软件、硬件及条件)Microsoftvc++6.0多媒体计算机三、实验内容1.选择种子填充算法或者多边形的扫描线算法完成多边形的填充。2.选择bezier曲线或者B样条曲线算法完成曲线的绘制。四、实验方法与步骤打开vc++6.0,新建一个工程,再在工程里面建一个
7、.cpp文件,编辑程序,编译连接后执行即可。程序如下:多边形扫描线填充算法://sweep.h#ifndefSWEEP_H#defineSWEEP_HstructEdge{intnxty;intcurx;intdx,dy;Edge*nxt;};voidsweep(intp[][2],intn,void(*setPixel)(int,int));#endif//sweepline.cpp#include#include#include#include"sweep.h"voidmyInit();void
8、setPixel(intx,inty);voidmyDisplay();intmain(int