一个简单的OpenGL程序,绘制一个白色正方形
来源:互联网 发布:淘宝商家登入 编辑:程序博客网 时间:2024/04/26 09:19
最近在学习OpenGL,也不知道要怎么学才能学号,就一边贴代码一边记录知识点吧。。。
这是一个非常简单的OpenGL函数,显示是个白色正方形。
代码:
// Win32Project1hello.cpp : 定义应用程序的入口点。
//
#include<stdlib.h>
#include<stdio.h>
#include<windows.h>
#include <tchar.h>
#ifndef GLUT_DISABLE_ATEXIT_HACK
#define GLUT_DISABLE_ATEXIT_HACK
#endif
#include<gl/GLUT.H>
//#include<gl/GL.h>
//#include<gl/GLU.h>
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);//清除所有像素
//绘制一个对角顶点坐标(0.25,1.25,0)和(0.75,0.75,0)的白色矩形
glColor3f(1.0,1.0,1.0);//设置颜色为白色
glBegin(GL_POLYGON);//glBegin()与glEnd()之间的函数调用制定了要绘制的物体,限定一组或多组图元的顶点定义
glVertex3f(0.25,0.25,0.0);//指定多边形的顶点
glVertex3f(0.75,0.25,0.0);
glVertex3f(0.75,0.75,0.0);
glVertex3f(0.25,0.75,0.0);
glEnd();
glFlush();//用于强制刷新缓冲,保证绘图命令将被执行,而不是存储在缓冲区中等待其他的OpenGL命令
}
void init(void)
{
glClearColor(0.0,0.0,0.0,0.0);//将清空颜色设置为黑
glMatrixMode(GL_PROJECTION);//glMatrixMode:告诉计算机“我接下来要做什么”,GL_PROJECTION:要对投影相关进行操作
glLoadIdentity();//将当前的用户坐标系的原点移到了屏幕中心
glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);//投影类型:正交投影。不会因为离屏幕的远近而产生大小的变换的情况
}
int _tmain(int argc, _TCHAR* argv[])
{
glutInit(&argc,(char**)argv);
glutInitDisplayMode(GLUT_SINGLE| GLUT_RGB);
glutInitWindowSize(250,250);
glutInitWindowPosition(100,100);
glutCreateWindow("hello");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
运行结果:
知识点整合:
OpenGL头文件:
几乎每个OpenGL源文件都以下述代码打头:#include<GL/gl.h>#include<GL/glu.h>
窗口管理:
1、glutInit(int *argc,char***argv):初始化GLUT并处理命令行参数。
2、glutInitDisplayMode(usigned int mode):制定使用的模式。例:GLUT_DOUBLE|GLUT_RGB|GLUT_DEPTH。
3、glutInitWindowSize(intwidth,int size):指定窗口大小。
4、glutInitWindowPostion(int x,int y):指定窗口左上角在屏幕上的位置。
5、glutCreateWindow(char*string):创建窗口,string为一串字符串,是该窗口的名字。显示回调函数:glutDisplayFunc(void(*func)(void)):括号中放一个返回值为void的函数的名称,每次重绘场景时都会调用。
运行程序:
glutMainLoop(void):调用此函数时创建的所有窗口及窗口中的内容都将显示出来。
- 一个简单的OpenGL程序,绘制一个白色正方形
- OpenGL:绘制一个旋转的正方形
- qt opengl lesson2 绘制一个三角形和一个正方形
- 一个简单的OpenGL程序
- 一个简单的OpenGL程序
- opengl绘制一个简单三角形
- 一个简单的场景观察程序(OpenGL)
- 每天一个OpenGL程序 第二篇 点的绘制
- 每天一个OpenGL程序 第三篇 线的绘制
- 每天一个OpenGL程序 第四篇 三角形的绘制
- 每天一个OpenGL程序 第五篇 四边形的绘制
- 每天一个OpenGL程序 第六篇 图形的组合绘制
- OpenGL程序:绘制正方形和三角形
- OpenGL编程学习之《一个简单的OpenGL程序》
- OpenGL程序:移动的正方形
- opengl绘制一个圆
- 【OpenGL】绘制一个点
- opengl的一个简单的双缓冲程序!
- mac 终端当前目录打开finder命令
- Android 沉浸式状态栏汇总
- Jsp与Servlet 重定向与转发探究(二)
- iOS开发某个函数偶然出现问题。可能导致的原因
- 南阳题目98-成绩转换
- 一个简单的OpenGL程序,绘制一个白色正方形
- printf和cout的区别详述
- Linux笔记(69)——nginx平滑升级
- Mac下安装HomeBrew和Ag(the silver searcher)
- 网易2016Java实习生笔试题最后一题题解
- ActiveMQ学习 第一篇 入门篇
- 如何在当前显示View中获取当前控制器
- Myeclipse创建单元测试
- Effective Java读书笔记(二):方法、通用程序设计