看opengl写代码(2) Hello,OpenGl

下面 直接 上代码:

// helloOpenGL.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <gl/glut.h>
void init(){
	glClearColor(0,0,0,1);//设置清除颜色
	glColor3f(1.0,0,0);
	//这三个 不太明白
	glMatrixMode(GL_PROJECTION);
	glLoadIdentity();
	glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0);
}

void disPlay(void){
	glClear(GL_COLOR_BUFFER_BIT);//清除窗口
	//绘制多边形..(顶点位置非常重要)
	glBegin(GL_POLYGON);
	glVertex3f(0.25,0.25,0);
	glVertex3f(0.25,0.75,0);
	glVertex3f(0.75,0.25,0);
	glVertex3f(0.75,0.75,0);
	glEnd();
	//立马显示...
	glFlush();
}


int _tmain(int argc, _TCHAR* argv[])
{
	glutInit(&argc,(char **)argv);//init
	glutInitDisplayMode(GLUT_RGB | GLUT_SINGLE);//RGB颜色模式 和 单缓冲模式
	glutInitWindowSize(500,500);//设置窗口尺寸
	glutInitWindowPosition(0,0);//设置窗口位置
	glutCreateWindow("Hello OpenGl!");
	init();//不要 将  只需调用一次的 设置 放进 disPlay 函数
	glutDisplayFunc(disPlay);
	glutMainLoop();//主循环,负责 一直 调用 disPlay
	return 0;
}
并且 针对 不太了解的 opengl 函数 进行了 百度:

glMatrixMode函数:设置当前矩阵模式:
mode 指定哪一个 矩阵 堆栈 是下一个矩阵操作的目标,可选值: GL_MODELVIEW、GL_PROJECTION、GL_TEXTURE.
GL_MODELVIEW,对模型视景矩阵堆栈应用随后的矩阵操作.
GL_PROJECTION,对投影矩阵应用随后的矩阵操作.
GL_TEXTURE,对纹理矩阵堆栈应用随后的矩阵操作.


glLoadIdentity该函数的功能是重置当前指定的矩阵为单位矩阵.

1).加载glLoadIdentity(),等于是将之前矩阵变换导致变化过的栈顶矩阵重新归位,置为单位矩阵!等于是之前的矩阵变换带来的影响到此为止了!
2).产生顶点的语句,比如glutWireBox、glutSolidSphere等等,它们最终要与栈顶矩阵计算算出最终的顶点位置。但它们本身不会影响栈顶矩阵的值!
3).任何一个模型、视图变换,如translate、scale、lookAt等,计算后都会影响当前栈顶矩阵的值!若每次变换完毕后不去归位(glLoadIdentity),则下一次的顶点变换是建立在上一轮(一系列)变换的基础之上的!
4).根据矩阵变换本质的理解,glLoadIdentity并不是简单的理解为将坐标归为世界坐标的原点。而是每次建立顶点的时候,都是以当前物体的中心作为世界的原点的(换句话说,也就是上一轮物体变换之后,原点的位置作为新的物体的中心)。之后再进行各种变换而形成物体 的移动、缩放、旋转等效果。从本质上讲,glLoadIdentity并不会改变世界坐标的原点位置,而仅仅是让“栈顶矩阵归位”。但它导致了下一轮顶点变换时,感觉上是以新的物体中心为世界原点的效果!

glOrtho(0.0,1.0,0.0,1.0,-1.0,1.0); 大致 知道 是 正交投影。。

http://anony3721.blog.163.com/blog/static/51197420113206471827/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值