OpenGL入门示例3——黑色背景绘制绿色圆形
2014-03-18 09:47
274 查看
#include<GL/glut.h> //GLUT是OpenGL实用工具包,自动包含了<GL/gl.h>和<GL/glu.h>,编程时不必再次包含它们。 #include<math.h> //for sin() and cos() #define PI 3.1415926535898 void display(void) { glClear(GL_COLOR_BUFFER_BIT); //清除所有的像素 glColor3f(0.0,1.0,0.0); //绘制颜色(绿色),函数名glColor3f中的3代表三个参数,f代表参数类型为GLfloat型,下同 GLint circle_points=100; //100个顶点组成的“圆” GLdouble angle=0; glBegin(GL_POLYGON); //开始绘制一个圆 for(int i=0;i<circle_points;i++) { angle=2*PI*i/circle_points; glVertex2f(cos(angle),sin(angle)); } //说明:该方法不是绘制圆的最好方法,尤其是当需要反复绘制时,cos、sin和for循环开销很大。 //另一种方法是使用GLU函数,一次性计算出所以顶点的坐标,然后保存在数组中,并创建一个显示列表或使用顶点数组来渲染它们 glEnd(); //绘制结束 glFlush(); //立刻开始处理保存在缓冲区中的OpenGL函数调用 } void init(void) { glClearColor(0.0,0.0,0.0,0.0); //指定清除颜色(黑色),即背景颜色 glMatrixMode(GL_PROJECTION); //初始化视景体 glLoadIdentity(); glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0); } //为了最大限度地提高效率,那些只需调用一次的操作(设置背景颜色和坐标系统)被放置到函数init()中 //渲染(和重新渲染)场景的操作被放置到函数display()中,它是注册的GLUT显示回调函数 int main(int argc,char** argv) //注意参数 { glutInit(&argc,argv); //初始化GLUT并处理命令行参数 glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); //指定模式:单缓存OR双缓存;RGBA模式OR颜色索引模式 glutInitWindowSize(250,250); //指定窗口大小(像素) glutInitWindowPosition(100,100); //指定窗口左上角在屏幕上的位置 glutCreateWindow("Hello"); //使用OpenGL场景创建一个窗口,参数为窗口名称 init(); //调用初始化函数 glutDisplayFunc(display); //注册用于显示图形的回调函数,每当GLUT认为需要重绘窗口时,都会执行该函数,故应将重绘场景所需调用的函数都放到显示回调函数中。 glutMainLoop(); //进入主循环并处理事件,此时创建的所有窗口都会显示出来,被渲染到这些窗口中的内容也将显示出来,程序开始处理事件,注册的显示回调函数被触发 return 0; //ANSI C要求函数main()返回一个int值 }
运行结果:
怎么只绘了四分之一圆?查找原因中……
相关文章推荐
- OpenGL入门示例2——黑色背景绘制绿色旋转矩形
- OpenGL入门示例1——黑色背景绘制绿色矩形
- OpenGL入门示例5——黑色背景绘制彩色旋转立方体
- OpenGL入门示例6——黑色背景绘制彩色点画多边形
- OpenGL入门示例7——黑色背景绘制彩色ZUFE字母
- OpenGL入门示例4——黑色背景绘制彩色点画线
- Android OpenGL 入门示例----绘制三角形和正方形
- Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)
- Android OpenGL入门示例:绘制三角形和正方形 (附完整源码)
- 黄聪:C#窗体程序OpenGL绘制立方体多边形旋转示例教程(VS2008,Winform)
- Android在drawable资源文件中绘制圆形背景
- 【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形
- 黄聪:C#窗体程序OpenGL绘制立方体多边形旋转示例教程(VS2008,Winform)
- android应用开发揭秘第13章01示例,移动图像,opengl绘制星星问题解决!
- VS2012下基于Glut OpenGL绘制点示例程序:
- 关于使用SurfaceView绘制同名背景为黑色解决方法
- android应用开发揭秘第13章01示例,移动图像,opengl绘制星星问题解决!
- OpenGL学习入门: 光照示例
- SVG绘制圆形简单示例分享
- VC6下OpenGL 开发环境的构建外加一个简单的二维网络棋盘绘制示例