zoukankan      html  css  js  c++  java
  • android开发之OpenGL(三)

    注意:

    // 重置当前的模型观察矩阵,让坐标原点恢复到(0,0,0);
    gl.glLoadIdentity();

    // 这句话执行完后,坐标原点发生变化,坐标原点左移 2.0 单位,并移入屏幕 6.0,直到下一句gl.glLoadIdentity();然后恢复到屏幕中心

    gl.glTranslatef(-2.0f, 0.0f, -6.0f);

    1. 由上面的解释后,就不难理解设置旋转的中心轴的的坐标了。

    2. 举例说明。

     1 private float trianvertices[] = { 0.0f, 2.0f, 0.0f, // 上顶点
     2             -2.0f, -2.0f, 0.0f, // 坐下点
     3             2.0f, -2.0f, 0.0f, // 右下点
     4     };
     5 
     6 ... ...
     7 
     8 // 左移 2.0 单位,并移入屏幕 6.0,相当于原点向左移了2个单位
     9 gl.glTranslatef(-2.0f, 0.0f, -6.0f);
    10 
    11 ... ...
    12 //所以这时候垂直方向的旋转中心轴的两点坐标如下
    13 private float linetrianvertices[] = {0.0f, 3.0f, 0.0f,
    14             0.0f, -3.0f, 0.0f};
    15 //这块的点不固定,只要x,z轴不变就OK
    16 
    17 
    18 //设置旋转
    19 gl.glRotatef(rotateTri, 0.0f, 1.0f, 0.0f);

    其中gl.glRotatef (Angle, XvectorYvectorZvector)

       Angle 通常是个变量代表对象转过的角度。 Xvector,Yvector和 Zvector三个参数则共同决定旋转轴的方向

       比如 (1,0,0)所描述的矢量经过 坐标轴的1个单位处并且方向向右。 (1,0,0)所描述的矢量经过X坐标轴的1个单位处,但方向向左。

     

  • 相关阅读:
    简易计算机
    作业-继承
    exception
    作业-窗口
    作业-数字
    作业8
    作业9-1
    作业9-2
    book
    成绩录入
  • 原文地址:https://www.cnblogs.com/fanglove/p/2635832.html
Copyright © 2011-2022 走看看