(完整word版)计算机图形学实验报告一(word文档良心出品).pdf
计算机图形学实验报告一、实验要求1、练习使用 GDI函数绘出基本几何元素,如点、线、矩形、圆、椭圆、多边形、圆弧等、并能够用颜色填充2、练习使用 GDI函数显示图像3、使用 opengl 函数写一个控制台程序,要求输出一些简单的二维图形:如线(实线、虚线)、四边形、多边形、圆、六面体、球、圆锥、茶壶等。二、实验目的1.掌握 Window图形编程的基本方法;2.学会使用基本绘图函数和Window GDI对象;三、实验环境Windows系统,vs2017四、实验内容与步骤1、练习使用 GDI函数绘出基本几何元素,如点、线、矩形、圆、椭圆、多边形、圆弧等、并能够用颜色填充/线pDC-MoveTo(100,50);pDC-LineTo(200,100);pDC-SelectObject(&pOldPen1);/矩形pDC-Rectangle(250,50,550,175);pDC-SelectObject(&pOldPen2);pDC-SelectObject(&pOldBrush);pen2.DeleteObject();第 1 页,共 10 页/圆pDC-SelectObject(&pen2);pDC-Ellipse(50,120,150,220);pDC-SelectObject(&pOldBrush);/椭圆pDC-SelectObject(&pen2);pDC-Ellipse(600,100,1025,325);pDC-SelectObject(&pOldBrush);/多边形pDC-SelectObject(&pen2);pDC-SelectObject(&pen2);CPoint lpPoint5;lpPoint0=CPoint(200,200);lpPoint1=CPoint(100,300);lpPoint2=CPoint(150,400);lpPoint3=CPoint(250,400);lpPoint4=CPoint(300,300);pDC-Polygon(lpPoint,5);/圆弧pDC-SelectObject(&pen2);pDC-SelectObject(&pen2);pDC-Arc(450,200,650,550,50,50,600,900);2、练习使用 GDI函数显示图像第 2 页,共 10 页3.使用 opengl 函数写一个控制台程序,要求输出一些简单的二维图形:如线(实线、虚线)、四边形、多边形、圆、六面体、球、圆锥、茶壶等。void display(void)glClearColor(1.0f,1.0f,1.0f,1.0f);glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glColor3f(1.0,0.0,0.0);glLineWidth(3.0);/线glBegin(GL_LINES);glVertex2f(-0.75,0.9);glVertex2f(-0.25,0.9);glEnd();/虚线glLineStipple(1,0 x00FF);glEnable(GL_LINE_STIPPLE);glBegin(GL_LINES);glVertex2f(-0.75,0.8);glVertex2f(-0.25,0.8);glEnd();glLineStipple(2,0 x00FF);glBegin(GL_LINES);glVertex2f(-0.75,0.7);glVertex2f(-0.25,0.7);glEnd();glLineStipple(1,0 x0C0F);glBegin(GL_LINES);glVertex2f(-0.75,0.6);glVertex2f(-0.25,0.6);glEnd();glLineStipple(3,0 x0C0F);glBegin(GL_LINES);glVertex2f(-0.75,0.5);glVertex2f(-0.25,0.5);glEnd();glLineStipple(1,0 xAAAA);glBegin(GL_LINES);glVertex2f(-0.75,0.4);glVertex2f(-0.25,0.4);第 3 页,共 10 页glEnd();glLineStipple(2,0 xAAAA);glBegin(GL_LINES);glVertex2f(-0.75,0.3);glVertex2f(-0.25,0.3);glEnd();glLineStipple(3,0 xAAAA);glBegin(GL_LINES);glVertex2f(-0.75,0.2);glVertex2f(-0.25,0.2);glEnd();glLineStipple(4,0 xAAAA);glBegin(GL_LINES);glVertex2f(-0.75,0.1);glVertex2f(-0.25,0.1);glEnd();glDisable(GL_LINE_STIPPLE);glRectf(-0.25,-0.25,-0.75,-0.75);glPolygonMode(GL_FRONT,GL_FILL);glPolygonMode(GL_BACK,GL_LINE);glBegin(GL_POLYGON);glVertex3f(0.2,0.1,0.0);glVertex3f(0.6,0.3,0.0);glVertex3f(0.7,0.45,0.0);glVertex3f(0.4,0.75,0.0);glVertex3f(0.1,0.6,0.0);glEnd();glBegin(GL_POLYGON);for (int i=0;in;i+)glVertex2f(R*cos(2*Pi/n*i)+0.5,R*sin(2*Pi/n*i)-0.5);glEnd();glFlush();/主程序void main(intargc,char*argv)第 4 页,共 10 页glutInit(&argc,argv);glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);glutInitWindowSize(1000,1000);glutInitWindowPosition(0,0);glutCreateWindow(实验一);glutDisplayFunc(&display);glutMainLoop();茶壶第 5 页,共 10 页void display(void)glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glColor3f(0.0,1.0,0.0);/绿色绘制glEnable(GL_DEPTH_TEST);/深度缓冲区glutWireTeapot(2);/绘制茶壶glFlush();glutSwapBuffers();void reshape(intw,inth)glViewport(0,0,w,h);/设置视口glMatrixMode(GL_PROJECTION);/将当前矩阵指定为投影模式glLoadIdentity();第 6 页,共 10 页gluPerspective(60,(GLfloat)w/(GLfloat)h,1.0,20);/创建透视投影矩阵glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0,5,5,0,0,0,0,1,0);/观测点球void display(void)glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glColor3f(0.0,1.0,0.0);/绿色绘制glEnable(GL_DEPTH_TEST);/深度缓冲区glutWireSphere(1,20,16);/绘制球体glFlush();glutSwapBuffers();第 7 页,共 10 页 void reshape(intw,inth)glViewport(0,0,w,h);/设置视口glMatrixMode(GL_PROJECTION);/将当前矩阵指定为投影模式glLoadIdentity();gluPerspective(60,(GLfloat)w/(GLfloat)h,1.0,20);/创建透视投影矩阵glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0,3,3,0,0,0,1,1,0);/观测点六面体void display(void)第 8 页,共 10 页 glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT);glColor3f(0.0,1.0,0.0);/绿色绘制glEnable(GL_DEPTH_TEST);/深度缓冲区glutWireCube(3);/绘制立方体glFlush();glutSwapBuffers();void reshape(int w,int h)glViewport(0,0,w,h);/设置视口glMatrixMode(GL_PROJECTION);/将当前矩阵指定为投影模式glLoadIdentity();gluPerspective(60,(GLfloat)w/(GLfloat)h,1.0,20);/创建透视投影矩阵glMatrixMode(GL_MODELVIEW);glLoadIdentity();gluLookAt(0,5,5,0,0,0,1,1,0);/观测点 五、实验分析与讨论1.在配置是可以下载一些包2.学会如何画一些简单的图形3.在实验中也培养了自己的耐心,总归,有不少收获。教师评语:签名:日期:成绩:第 9 页,共 10 页第 10 页,共 10 页