一、骨干 1.要使用openGL提供的3D功能函数,只要在VC控制台项目中加入以下三个Lib:glu32.lib、glaux.lib、opengl32.lib。我是在下面这个地方找到的:C:\Program Files\Microsoft Visual Studio\VC98\Lib,反正这是VC提供的,肯定在其安装目录下面就是了。 2.在VC项目里,建一个C++源文件,拷入以下代码:#include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> //openGL窗口的绘制函数 void CALLBACK display(void) { glBegin(GL_LINES); //开始画一根线段 glColor3f (1.0f, 1.0f, 1.0f); //设置颜色 glVertex2f(10.0f, 50.0f); //第一个端点坐标 glVertex2f(110.0f, 50.0f); //第二个端点坐标 glEnd(); //画线结束 glFlush (); //绘图结束 } int main(int argc, char** argv) { auxInitWindow ("Hello OpenGL!"); //初始化openGL窗口,设置标题 auxMainLoop(display); //循环运行display过程 return(0); } |
3.编译执行即可,可以一个小窗口跳出来,里面画了一条线! #include <windows.h> #include <GL/gl.h> #include <GL/glu.h> #include <GL/glaux.h> //openGL窗口的绘制函数 void CALLBACK display(void) { glBegin(GL_LINES); //开始画一根线段 glColor3f (1.0f, 1.0f, 1.0f); //设置颜色 glVertex2f(10.0f, 50.0f); //第一个端点坐标 glVertex2f(110.0f, 50.0f); //第二个端点坐标 glEnd(); //画线结束 glFlush (); //绘图结束 } int main(int argc, char** argv) { auxInitWindow ("Hello OpenGL!"); //初始化openGL窗口,设置标题 auxMainLoop(display); //循环运行display过程 return(0); } |
3.编译执行即可,可以一个小窗口跳出来,里面画了一条线! 注:这个openGL窗口是一个标准的windows窗口,看到包含头文件里的那个windows.h了吗?不过那些乱八七糟的工作已经被封装在auxMainLoop()函数里了,多好!不用管什么窗口类注册、初使化、消息循环等等东西了。 4.上面程序中,橙黄色部分可以自己设定,改下看看效果? 二、添叶加枝 1.默认的openGL窗口太小了,自己指定一个: auxInitPosition (100, 100, 400, 400); 注:要保证在main函数的auxMainLoop(display);之前。看看效果,自己 摸索窗口的坐标系。 2.是不是发现怎么改glColor3f (1.0f, 1.0f, 1.0f);的参数,颜色都还是暗红色的?需要把显示模式设成RGB: auxInitDisplayMode (AUX_RGB); 注:要保证在main函数的 auxInitWindow ("Hello OpenGL£¡");之前。 3.设置openGL窗口的背景颜色: glClearColor (0.0, 0.0, 0.0, 0.0); 注:要保证在main函数的auxMainLoop(display);之后。 4.响应按键效果 a 首先在main中加入这么一句: auxKeyFunc(AUX_0,cc); 注:要保证在main函数的auxMainLoop(display);之后。 b. 写这个函数: void CALLBACK cc() {glClearColor (1.0, 1.0, 0.0, 1.0);} 注:前面已经说过这个函数了,就是设定窗口的背景颜色。 编译执行,可以发现按0的时候,窗口背景颜色被改变。 5.还有好多函数,有兴趣就去下面的网页,作入门很不错: http://202.113.12.9/chinese/teaching/fundamental/kejian/ http://graphics.stanford.edu/courses/cs248-96-winter/Assignments/libaux.html
|