• 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个单位处,但方向向左。

     

  • 相关阅读:
    Appium 服务命令行参数
    DC 输入 输出 时钟 PVT设置
    .synopsys_dc.setup编写
    Excel VBA编程常用语句300句
    C# 泛型单例工厂
    C# Winform与JS交互
    SQL分析“聚集索引、非聚集索引”区别
    C# ClassHelper动态创建程序集和类, 添加/删除类属性
    从30个角度对比 PostgreSQL 和 MySQL
    C# 常用类和命名空间
  • 原文地址:https://www.cnblogs.com/fanglove/p/2635832.html
Copyright © 2020-2023  润新知