opengl学习笔记二之绘制一个矩形
来源:互联网 发布:知乎论坛网 编辑:程序博客网 时间:2024/04/30 19:27
//// main.cpp// HelloWorld//// Created by zhouxu on 14-7-15.// Copyright (c) 2014年 zhouxu. All rights reserved.//#include <iostream>#include <GLUT/glut.h>void SetupRC(void){ glClearColor(1.0f, 1.0f, 0, 1.0f);}void RenderScene(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0f, 0.0f, 1.0f); glRectf(100.0f, 150.0f, 150.0f, 100.0f); glFlush();}void ChangeSize(GLsizei w,GLsizei h){ if(h == 0) { h = 1; } //设置屏幕上的绘图区域 glViewport(0, 0, w, h); //设置剪裁区域 glMatrixMode(GL_PROJECTION); glLoadIdentity(); if(w<=h) { glOrtho(0, 250.0f, 0, 250.0f*h/w, 1.0f, -1.0f); }else{ glOrtho(0.0f, 250.0f*w/h, 0.0f, 250.0f, 1.0f, -1.0f); } glMatrixMode(GL_MODELVIEW); glLoadIdentity();}int main(int argc, char * argv[]){ glutInit(&argc, argv); glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB); glutCreateWindow("HelloWorld"); glutDisplayFunc(RenderScene); glutReshapeFunc(ChangeSize); SetupRC(); glutMainLoop(); return 0;}
需要理解的几个概念:
glOrtho(left, right, bottom, top, near, far)
正交投影变换,与glFrustum(透视投影相对立),构造一个视景体,视景体内的空间才会被映射成2d平面并且被绘制,该函数相当于在3D笛卡尔坐标系内圈定了一个区域,当并没有指定这个区域映射到屏幕上的范围。PS:交给了glViewPort
void glViewport(GLint x, GLint y, GLsizei width, GLsizei height);
0 0
- opengl学习笔记二之绘制一个矩形
- opengl之绘制一个矩形
- opengl学习笔记2-2-矩形绘制
- Android OpenGL学习笔记(二)之----三角形的绘制.
- Android OpenGL学习笔记(二)之----三角形的绘制.
- Android OpenGL ES学习笔记之绘制一个立方体
- OpenGL入门之绘制矩形
- 《高效学习OpenGL》 之 读取和绘制像素矩形
- OpenGL编程(二)绘制矩形
- OpenGL学习笔记之绘制图元
- OpenGL学习笔记之绘制三角形
- OPENGL学习笔记之二
- HTML5学习笔记之使用canvas绘制矩形
- OpenGL笔记:二. 绘制几何图形
- Opengl 绘制矩形
- OpenGL-绘制简单矩形
- Opengl ES 学习笔记 2:绘制一个旋转的三角形
- OpenGL入门学习之二——绘制几何图形
- 風地觀
- 常用的快速Web原型图设计工具
- 顶点属性插值
- 反射机制学习1(反射创建对象)
- Python 以txt格式保存和读取json数据
- opengl学习笔记二之绘制一个矩形
- 如何在单linux下操作嵌入式开发板
- 如何在开发板上缺少对应库的情况下让程序具有可执行性
- 利用Google Speech API实现Speech To Text
- Android开发SearchView+ListView实现搜索建议
- 另一种基于 WinCE 的 Silverlight 应用建立过程
- virtualbox桥接网卡虚拟机和使用wifi的宿主机ping不通
- HDU 1863:畅通工程(带权值的并查集)
- recover all files with git