OpenGL中的平移旋转缩放

1.opengl中缩放使用的函数是glScalef

   其原型为void glScalef(GLfloat  x,  GLfloat  y,  GLfloat  z);

该函数表示模型在各轴上进行扩大和缩小。例如:glScalef (1.0, 2.0, 1.0);

表示y坐标值扩大两倍,这样原本的物体就变长了。

       glTranslatef(-50.0f,0.0f,0.0f);
glScalef( 1.0f,2.0f,1.0f);//y轴方向放大两倍
        glBegin(GL_TRIANGLES);  
       glVertex3f(0.0f,0.0f, 0.0f); 
       glVertex3f(50.0f,0.0f, 0.0f); 
       glVertex3f(0.0f,50.0f, 0.0f); 
   glEnd();

运行结果图为:


2.平移使用glTranslatef函数

其原型为void glTranslatef(GLfloat  x,  GLfloat  y,  GLfloat  z);

例如:glTranslatef(-50.0,0.0,-20.0);表示物体沿x负方向移动50,沿z轴负方向移动20.

需要注意的是,当移动的时候,并不是相对屏幕中心移动,而是相对与当前所在的屏幕移动。

其作用就是将绘点坐标的原点在当前原点的基础上平移一个(x,y,z)向量。

       glClear(GL_COLOR_BUFFER_BIT); //清除颜色
glBegin(GL_TRIANGLES);     //划线
glVertex3f(0.0f,0.0f,0.0f);
glVertex3f(50.0f,0.0f,0.0f);
glVertex3f(0.0f,50.0f,0.0f);
glEnd();

        glTranslatef(-50.0f,0.0f,0.0f);//向x的负方向平移50
        glBegin(GL_TRIANGLES);  
       glVertex3f(0.0f,0.0f, 0.0f); 
       glVertex3f(50.0f,0.0f, 0.0f); 
       glVertex3f(0.0f,50.0f, 0.0f); 
  glEnd();

运行结果如下图:


3.旋转使用glRotatef函数

其原型为:void glRotatef(GLfloat  angle,  GLfloat  x,  GLfloat  y,  GLfloat  z);

angle表示旋转的角度,(x,y,z)表示转轴。例如:glRotatef(45.0, 0.0, 0.0, 1.0);

表示模型沿着(0,0,1)这个轴旋转45°。

glTranslatef(-50.0f,0.0f,0.0f);
        glRotatef(45,0.0f,.0f,1.0f);//按z轴方向旋转45°
        glBegin(GL_TRIANGLES);  
       glVertex3f(0.0f,0.0f, 0.0f); 
       glVertex3f(50.0f,0.0f, 0.0f); 
       glVertex3f(0.0f,50.0f, 0.0f); 
   glEnd();

运行结果为:


  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
OpenGL是一种开放源代码的图形库,用于开发二维和三维图形应用程序。其支持光照、平移旋转缩放等功能。 光照是在OpenGL实现逼真和真实感的一个重要方面。通过对物体表面的光照进行计算和模拟,可以模拟出光线在真实世界的表现。OpenGL提供了多种光照模型和光源类型,如平行光照、点光源和聚光灯等。通过设置光源的属性,如位置、颜色和强度,可以控制光照的效果。同时,还可以设置材质的属性,如漫反射、镜面反射和环境光反射等,以使物体表面具有不同的反射特性。 平移旋转缩放是控制物体在OpenGL位置、方向和大小的重要操作。通过平移(Translation),可以改变物体的位置。通过旋转(Rotation),可以改变物体的方向。通过缩放(Scaling),可以改变物体的大小。这些操作可以通过设置模型视图矩阵来实现,将物体的顶点坐标进行相应的变换。平移旋转缩放都可以相对于世界坐标系进行,也可以相对于物体自身坐标系进行。 在OpenGL,可以通过矩阵操作来实现平移旋转缩放平移可以通过将物体的位置矩阵与一个平移矩阵相乘来实现。旋转可以通过将物体的方向矩阵与一个旋转矩阵相乘来实现。缩放可以通过将物体的大小矩阵与一个缩放矩阵相乘来实现。通过改变这些矩阵的数值,可以控制物体在空间的位置、方向和大小。 总结来说,OpenGL提供了一系列的函数和接口,可以实现光照、平移旋转缩放等操作,使得开发者可以自由控制物体的表现和行为。这些功能在图形应用程序非常重要,可以帮助开发者创建出逼真和动态的图形效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值