计算机图形学试验报告一
计算机图形学计算机图形学 实验报告实验报告 一、实验要求一、实验要求 1、 练习使用 GDI 函数绘出基本几何元素,如点、线、矩形、圆、椭圆、多 边形、圆弧等、并能够用颜色填充 2、练习使用 GDI 函数显示图像 3、使用 opengl 函数写一个控制台程序,要求输出一些简单的二维图形如 线(实线、虚线) 、四边形、多边形、圆、六面体、球、圆锥、茶壶等。 二、实验目的二、实验目的 1.掌握 Window 图形编程的基本方法; 2.学会使用基本绘图函数和 Window GDI 对象; 三、实验环境三、实验环境 Windows 系统,vs2017 四、实验内容与步骤四、实验内容与步骤 1、 练习使用 GDI 函数绘出基本几何元素,如点、线、 矩形、圆、椭圆、多边形、 圆弧等、并能够用颜色填充 //线 pDC-MoveTo100, 50; pDC-LineTo200, 100; pDC-SelectObject //矩形 pDC-Rectangle250, 50, 550,175; pDC-SelectObject pDC-SelectObject pen2.DeleteObject; //圆 pDC-SelectObject pDC-Ellipse50,120,150,220; pDC-SelectObject //椭圆 pDC-SelectObject pDC-Ellipse600, 100, 1025, 325; pDC-SelectObject //多边形 pDC-SelectObject pDC-SelectObject CPoint lpPoint[5]; lpPoint[0] CPoint200,200; lpPoint[1] CPoint100, 300; lpPoint[2] CPoint150, 400; lpPoint[3] CPoint250, 400; lpPoint[4] CPoint300, 300; pDC-PolygonlpPoint,5; //圆弧 pDC-SelectObject pDC-SelectObject pDC-Arc450,200,650,550,50,50,600,900; 2、 练习使用 GDI 函数显示图像 3.使用 opengl 函数写一个控制台程序, 要求输出一些简单的二维图形 如线 (实 线、虚线) 、四边形、多边形、圆、六面体、球、圆锥、茶壶等。 void displayvoid { glLineStipple1, 0 xAAAA; glBeginGL_LINES; glVertex2f-0.75, 0.4; glVertex2f-0.25, 0.4; glLineStipple3, 0 x0C0F; glBeginGL_LINES; glVertex2f-0.75, 0.5; glVertex2f-0.25, 0.5; glEnd; glLineStipple1, 0 x0C0F; glBeginGL_LINES; glVertex2f-0.75, 0.6; glVertex2f-0.25, 0.6; glEnd; glLineStipple2, 0 x00FF; glBeginGL_LINES; glVertex2f-0.75, 0.7; glVertex2f-0.25, 0.7; glEnd; glLineWidth3.0; //线 glBeginGL_LINES; glVertex2f-0.75, 0.9; glVertex2f-0.25, 0.9; glEnd; //虚线 glLineStipple1, 0 x00FF; glEnableGL_LINE_STIPPLE; glBeginGL_LINES; glVertex2f-0.75, 0.8; glVertex2f-0.25, 0.8; glEnd; glClearColor1.0f, 1.0f, 1.0f, 1.0f; glClearGL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT; glColor3f1.0, 0.0, 0.0; } glEnd; glLineStipple2, 0 xAAAA; glBeginGL_LINES; glVertex2f-0.75, 0.3; glVertex2f-0.25, 0.3; glEnd; glLineStipple3, 0 xAAAA; glBeginGL_LINES; glVertex2f-0.75, 0.2; glVertex2f-0.25, 0.2; glEnd; glLineStipple4, 0 xAAAA; glBeginGL_LINES; glVertex2f-0.75, 0.1; glVertex2f-0.25, 0.1; glEnd; glDisableGL_LINE_STIPPLE; glRectf-0.25, -0.25, -0.75, -0.75; glPolygonModeGL_FRONT, GL_FILL; glPolygonModeGL_BACK, GL_LINE; glBeginGL_POLYGON; glVertex3f0.2, 0.1, 0.0; glVertex3f0.6, 0.3, 0.0; glVertex3f0.7, 0.45, 0.0; glVertex3f0.4, 0.75, 0.0; glVertex3f0.1, 0.6, 0.0; glEnd; glBeginGL_POLYGON; for int i 0; in; i glVertex2fR*cos2 * Pi / n*i 0.5, R*sin2 * Pi / n*i - 0.5; glEnd; gl; //主程序 void mainint argc, char * *argv { } glutInit glutInitDisplayModeGLUT_SINGLE | GLUT_RGB; glutInitWindowSize1000, 1000; glutInitWindowPosition0, 0; glutCreateWindow“实验一“; glutDisplayFunc glutMainLoop; 茶壶 void displayvoid { } void reshapeint w, int h { glViewport0, 0, w, h;//设置视口 glMatrixModeGL_PROJECTION;//将当前矩阵指定为投影模式 glLoadIdentity; glutWireTeapot2;//绘制茶壶 gl; glutSwapBu