OpenGL入门示例3——黑色背景绘制绿色圆形
来源:互联网 发布:重庆公务员培训 知乎 编辑:程序博客网 时间:2024/05/21 08:33
#include<GL/glut.h>//GLUT是OpenGL实用工具包,自动包含了<GL/gl.h>和<GL/glu.h>,编程时不必再次包含它们。#include<math.h>//for sin() and cos()#define PI 3.1415926535898void 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值}
运行结果:
怎么只绘了四分之一圆?查找原因中……
0 0
- OpenGL入门示例3——黑色背景绘制绿色圆形
- OpenGL入门示例1——黑色背景绘制绿色矩形
- OpenGL入门示例2——黑色背景绘制绿色旋转矩形
- OpenGL入门示例4——黑色背景绘制彩色点画线
- OpenGL入门示例5——黑色背景绘制彩色旋转立方体
- OpenGL入门示例6——黑色背景绘制彩色点画多边形
- OpenGL入门示例7——黑色背景绘制彩色ZUFE字母
- OpenGL圆形绘制算法
- shape简单绘制圆形背景
- opengl png 背景为黑色的问题。
- OpenGL入门学习——第二课 绘制几何图形
- OpenGL入门学习之二——绘制几何图形
- openGl代码入门笔记[3]:绘制抛物线
- OpenGL ES(3)——绘制图形
- 入门createjs———easelJS教程(1)绘制一个圆形
- OpenGL入门学习之十五——从“绘制一个立方体”来看OpenGL的进化过程
- OpenGL入门学习——第十五课,从“绘制一个立方体”来看OpenGL的进化过程
- OpenGL入门学习——第十五课 从“绘制一个立方体”来看OpenGL的进化过程
- VS2010中 C++创建DLL图解
- linux 开发环境
- JDBC数据库连接池的使用
- 李颀:古意
- underscore学习笔记—集合函数/collections(二)
- OpenGL入门示例3——黑色背景绘制绿色圆形
- 代码行统计脚本
- PaxHeader文件夹
- Hibernate各种主键生成策略与配置详解
- 附加题 及 示例代码(写HTML文件):根据给定的博客名单,自动生成HTML网页
- Objective-C基础:Objective-c速成
- 关于正则表达式
- JSON简介
- java集群技术