Chinaunix首页 | 论坛 | 博客
  • 博客访问: 544560
  • 博文数量: 102
  • 博客积分: 2146
  • 博客等级: 大尉
  • 技术积分: 1146
  • 用 户 组: 普通用户
  • 注册时间: 2010-10-09 17:32
文章分类

全部博文(102)

文章存档

2015年(14)

2014年(24)

2013年(5)

2012年(30)

2011年(16)

2010年(13)

分类: C/C++

2012-07-05 13:17:46

glLoadIdentity():
调用glLoadIdentity()之后,您实际上将当前点移到了屏幕中心,X坐标轴从左至右,Y坐标轴从下至上,Z坐标轴从里至外。OpenGL屏幕中心的坐标值是X和Y轴上的0.0f点。中心左面的坐标值是负值,右面是正值。移向屏幕顶端是正值,移向屏幕底端是负值。移入屏幕深处是负值,移出屏幕则是正值。


glTranslatef(x, y, z):
glTranslatef(x, y, z)沿着 X, Y 和 Z 轴移动。根据前面的次序,下面的代码沿着X轴左移1.5个单位,Y轴不动(0.0f),最后移入屏幕6.0f个单位。注意在glTranslatef(x, y, z)中当您移动的时候,您并不是相对屏幕中心移动,而是相对与当前所在的屏幕位置。glTranslatef(-1.5f,0.0f,-6.0f); // 左移 1.5 单位,并移入屏幕 6.0

void glPointSize(GLfloat size):
设置点的大小,默认为1个像素,但也可以通过该函数改变,size必须大于0.0f,默认值是1.0f,单位是像素。

glRotatef(float angle, float x, float y, float z):
angle是旋转角度,1.0相当于1度,x, y, z是轴向量,即以向量(x, y, z)为轴旋转angle度。
旋转方向用右手法则判断,大拇指指向向量方向,四指握拳的方向即为旋转方向。如果angle为负数,旋转方向相反。


void basic_pic::airplane(float x, float y, float z)
{
float r = 90;

glTranslatef(x, y, z);
// glRotatef(-r, 0, 1, 0);
glColor3f(1.0, 1.0, 1.0); // 白色
// 螺旋桨
auxSolidBox(1.6, 0.3, 0.05);

// 机头
glTranslatef(0, 0, -0.5);
auxSolidSphere(0.5); // 球(半径)

// 机身
//glRotatef(90, 1, 0, 0);
glTranslatef(0, 0, 0);
auxSolidCylinder(0.5, 2); // 圆柱(半径,高)
}







阅读(1848) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~