当前位置:文档之家› OpenGL期末复习资料

OpenGL期末复习资料

Windows GUI中的基本绘图工具包括:画笔、画刷、位图、设备描述环境、调色板、字体OpenGL中的基本图元包括:点、线、三角形、四边形、多边形、位图或图像OpenGL中基本变换函数为:平移void glTranslated(GLdouble x,GLdouble y,GLdouble z);旋转void glRotated(GLdouble angle,GLdouble x,GLdouble y,GLdouble z);缩放void glScaled(GLdouble x,GLdouble y,GLdouble z);OpenGL中设置颜色的函数为:void glColor3f(GLfloat red,GLfloat green,GLfloat blue);OpenGL中设置法向量的函数为:void glNormal3i(GLint nx,GLint ny,GLint nz);OpenGL中的透视投影和平行投影对应的函数分别是:glFrustum(); glOrtho();OpenGL中各个模式(如灯光的启用或禁止)的启用和禁止的函数为:glEnable( GLenum cap )、glDisable (GLenum cap );Windows对话框的分类:模态对话框,非模态对话框Windows对话框的控件包括:静态控件、按钮控件、滚动条控件、编辑控件、列表框类、组合框类MFC框架包含的类有:应用类、文档类、视图类、框架类设置当前矩阵为单位矩阵的函数为:glLoadIdentity(void); 的功能是重置当前指定的矩阵为单位矩阵如何在OpenGL中绘制基本图元//glLineWidth(1.0f);glColor3f(1.0f,0.0f,0.0f);glBegin(GL_LINES);glVertex3f(0.0f,0.0f,0.0f);glVertex3f(20.0f,0.0f,0.0f);glEnd();gluLookAt的作用及该函数各个参数的含义void gluLookAt(GLdouble eyex,GLdouble eyey,GLdouble eyez,GLdouble centerx,GLdouble centery,GLdouble centerz,GLdouble upx,GLdouble upy,GLdouble upz);eyex, eyey,eyez 指定视点的位置centerx,centery,centerz 指定参考点的位置upx,upy,upz 指定视点向上的方向glLight()中各个参数的含义void glLighti (GLenum light,GLenum pname,GLint param);启用的灯光号,光源光的参数指向那个光源(灯光号)参数被设置指向启用的灯光的指针OpenGL中的光照设置方式1.指明材质glMaterial()漫反射镜面反射2.设置灯光glLight(Glenum light,Glenumpname,Glint param)3.生效glEnable(GL_LIGHTING)4指明打开的灯 glEnable(GL_LIGHT0)OpenGL中的绘制列表的设置方式// listName = glGenLists (1);glNewList (listName, GL_COMPILE);Opengl函数(一般绘图函数)glEndList ();显示glCallList(listName););Win32编程中镂空图的绘制方法1、创建一张单色位图,将单色位图选到兼容设备环境(dcMask),将原图选入令一设备兼容环境(dc)。

2、将dcMask的背景设为紫色,再将dc绘制到dcMask,得到蒙板图。

3、设置原图所在dc的前景色为白色,背景色为黑色,将蒙板图和dc中原图做AND运算,绘制到dc中。

hdc = GetDC(hWnd);mdc = CreateCompatibleDC(hdc);hbmp=(HBITMAP)LoadImage(NULL,"bg.bmp",IMAGE_BITMAP,600,450,LR_LOADFROMFILE);SelectObject(mdc,hbmp);BitBlt(mdc,480,190,100,100,bufdc,100,0,SRCAND);//进行与运算BitBlt(mdc,480,190,100,100,bufdc,0,0,SRCPAINT);//进行OR运算ReleaseDC(hWnd,hdc);OpenGL中的透视投影和平行投影对应的函数中参数的含义void glFrustum (GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble znear,GLdouble zfar);void glOrtho(GLdouble left,GLdouble right,GLdouble bottom,GLdouble top,GLdouble near,GLdouble far);left,right分别指的是左右截面到眼睛(在XY平面上)的距离top,bottom分别指的是上下截面到眼睛(在XY平面上)的距离zNear, zFar都是相对眼睛的(YZ平面)距离OpenGL中矩阵堆栈操作的作用glPushAttrib();glPopAttrib()矩阵堆栈操作,为重复记录,平移与撤销的操作提供了一种理想的机制。

每次操作只需对当前栈顶矩阵进行操作即可,glPushAttrib()就相当于记录每一次操作,glPopAttrib()就相当于恢复由glPushAttrib()最新记录的操作。

MFC框架中各个类的作用文档类:由基类CDocument派生,文档类负责存放程序数据并读取磁盘文件数据,或将磁盘文件数据写入磁盘文件中。

视图类:视图类是由CView类派生的,它负责显示文档类的数据,可以显示在屏幕上,也可以输出在打印机和其他设备上。

在屏幕上,这个类管理客户窗口。

框架类:单文档的框架类由CFrameWnd类派生的。

用来显示一个标题、一个菜单条、窗口的最大化和最小化按钮,边框,工具条以及状态条等。

应用类:应用类是由MFC的CWinApp类派生的。

应用类管理程序的总体,它完成初始化、运行程序以及进行最后的程序清除工作。

MFC中怎样在一个类中添加成员函数打开ClassView找到需要添加成员函数的类,鼠标移动到类名上,右击,选择Add Member Funtion,填写函数类型,名称,所属属性即可VC中如何完成图像的显示1、定义内存显示设备环境Hdc hdc,mdc;hdc=GetDC(hWnd);mdc= CreateCompatibleDC(hdc);2、定义位图图像HBITMAP hbmp;3、将位图选入内存设备环境Hbmp=(HBITMAP)LoadImage(NULL,”bg.bmp”,100,200, LR_MAP);4、将内存中的图像拷贝到屏幕上SelectObject(mdc,hbmp);BitBlt(hdc,0,0,600,450,mdc,0,0,SRCCOPY);5、释放内存ReleaseDC(hWnd,hdc);如何读取编辑框中的内容先给编辑框指定变量,调用变量就可以调用编辑框里面的内容了。

在ClassWizard里面转到MemberVariables,选上编辑框的ID后,点击右边Add Variables,输入名称就可以指定变量。

以后调用该变量就行了。

获得编辑框的代码如下:UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。

UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。

在W32 Application程序如何完成画笔,画刷的设置。

一、画笔1、创建画笔CPen pen(PS_SOLID,1,RGB(255,0,0));//画笔被选到设备描述表中才能生效2、创建DC CClientDC dc(this)3、画笔被选到设备描述表中CPen *poldpen=dc.SelectObject(&pen);4、作图 dc.MoveTo(m_ptOrigin);dc.LineTo(point);5、将先前的画笔选择回设备描述表dc.SelectObject(poldpen);二、画刷1、创建画刷 CBrush brush(RGB(255,0,0));2、创建DC CClientDC dc(this);3、用指定的画刷填充指定的区域dc.FillRect(CRect(m_ptOrigin,point),&brush); Win32 Application 程序的基本工作流程入口函数WinMain();设计窗口类WNDCLASS ;注册窗口类RegisterClass();创建窗口类CreateWindow();更新窗口类UpdateWindow();显示窗口类ShowWindow();消息循环处理WindowProc();简述VC6.0中菜单的删除,生成和菜单项的添加打来ResourseView中的Menu文件,在编辑框中选择一个小框,右击选择属性,添加ID及名称即可简述模态对话框的生成过程首先插入Dialog资源,打开ClassWizarad为导入的资源建立一个新的类。

为需要点击的菜单项在View类中添加命令函数。

在函数中调用DoModal函数菜单项命令函数的建立过程在需要添加命令函数的菜单项上右击,选择ClassWizarad,选择添加函数所在的类,以及菜单项的ID,Message项选择COMMAND,添加函数即可如何通过ClassWizard在View类中获取对话框中的数据在对话框类创建一个CMyTestView *m_pMyTestView 这样的类型指针,在你创建模态对话框的时候把this指针传进来,赋值给pMyTestView,然后pMyTestView 就可以调用CMyTestView类中public了。

相关主题