本文译自:http://developer.android.com/training/graphics/opengl/motion.html

在屏幕上绘制对象是OpenGL的最基本功能,你可以使用其他的Android图形框架类,如CanvasDrawable对象来完成这些功能。OpenGLES提供了一些用于在三维空间中移动和变换被绘制的对象的能力,以及其他的创建良好用户体验的独特方式。

在本文中,你需要使用前面几篇博文中介绍的示例,给图形添加旋转动作。

旋转图形

使用OpenGL ES 2.0来旋转一个绘制对象是相对简单的。你要创建另外的变换矩阵(旋转矩阵),然后把它跟投影和摄像机变换矩阵组合到一起:

];
public void onDrawFrame(GL10 gl) {
    ...
    // Create a rotationtransformation for the triangle
    long time = SystemClock.uptimeMillis() % 4000L;
    float angle = 0.090f * ((int) time);
    Matrix.setRotateM(mRotationMatrix, 0, angle, 0, 0, -1.0f);

// Combine the rotationmatrix with the projection and camera view
    Matrix.multiplyMM(mMVPMatrix, 0, mRotationMatrix, 0, mMVPMatrix, 0);

// Draw triangle
    mTriangle.draw(mMVPMatrix);
}

做了这些改变之后,如果你的三角形没有旋转,那么就要确认你是否完成了GLSurfaceView.RENDERMODE_WHEN_DIRTY设置。

启用连续的渲染

如果你一直跟随在学习本文的示例代码,那么要确保像下面代码那样,注释掉对渲染模式的设置,否则OpenGL只会旋转图形一次,然后等待来自GLSurfaceView容器的requestRender()方法的调用。

publicMyGLSurfaceView(Context context){
    ...
    // Render the view onlywhen there is a change in the drawing data
    //setRenderMode(GLSurfaceView.RENDERMODE_WHEN_DIRTY);// comment out for auto-rotation
}

除非对象的变化跟任何用户交互无关,否则设置一个开关标记是一个好主意。

Android---OpenGL ES之添加动作的更多相关文章

  1. Android OpenGL ES 开发教程 从入门到精通

    感谢,摘自:http://blog.csdn.net/mapdigit/article/details/7526556 Android OpenGL ES 简明开发教程 Android OpenGL ...

  2. Android OpenGL ES(七)基本几何图形定义 .

    在前面Android OpenGL ES(六):创建实例应用OpenGLDemos程序框架 我们创建了示例程序的基本框架,并提供了一个“Hello World”示例,将屏幕显示为红色. 本例介绍Ope ...

  3. [工作记录] Android OpenGL ES: non-square texture - continue

    previous: [工作记录] Android OpenGL ES 2.0: square texture not supported on some device recently I found ...

  4. Android OpenGL ES(十三)通用的矩阵变换指令 .

    Android OpenGL ES 对于不同坐标系下坐标变换,大都使用矩阵运算的方法来定义和实现的.这里介绍对应指定的坐标系(比如viewmodel, projection或是viewport) An ...

  5. Android OpenGL ES(十二):三维坐标系及坐标变换初步 .

    OpenGL ES图形库最终的结果是在二维平面上显示3D物体(常称作模型Model)这是因为目前的打部分显示器还只能显示二维图形.但我们在构造3D模型时必须要有空间现象能力,所有对模型的描述还是使用三 ...

  6. Android OpenGL ES(八)绘制点Point ..

    上一篇介绍了OpenGL ES能够绘制的几种基本几何图形:点,线,三角形.将分别介绍这几种基本几何图形的例子.为方便起见,暂时在同一平面上绘制这些几何图形,在后面介绍完OpenGL ES的坐标系统和坐 ...

  7. Android OpenGL ES .介绍

    引自:http://blog.csdn.net/hgl868/article/details/6971624 1.    OpenGL ES 简介 Android 3D引擎采用的是OpenGL ES. ...

  8. Android OpenGL ES(六)创建实例应用OpenGLDemos程序框架 .

    有了前面关于Android OpenGL ES的介绍,可以开始创建示例程序OpenGLDemos. 使用Eclipse 创建一个Android项目 Project Name: OpenGLDemos ...

  9. Android OpenGL ES(五)GLSurfaceView .

    Android OpenGL ES 相关的包主要定义在 javax.microedition.khronos.opengles    GL 绘图指令 javax.microedition.khrono ...

  10. Android OpenGL ES(三)OpenGL ES API 命名习惯 .

    OpenGL ES是个跨平台的3D图形开发包规范,最常见的实现是采用C语言实现的,Android OpenGL ES 实现上是使用Java 语言对底层的C接口进行了封装,因此在android.open ...

随机推荐

  1. windows 下mysql的安装于使用(启动、关闭)

    1.下载Windows (x86, 64-bit), ZIP Archive解压: 2.双击在bin目录里的mysqld.exe dos窗体一闪就没了,这时netstat -an发现port3306已 ...

  2. 基于MapReduce的HBase开发

    在伪分布式模式和全分布式模式下 HBase 是架构在 HDFS 上的,因此完全可以将MapReduce 编程框架和 HBase 结合起来使用.也就是说,将 HBase 作为底层“存储结构”, MapR ...

  3. 【PAT】1041. Be Unique (20)

    题目链接:http://pat.zju.edu.cn/contests/pat-a-practise/1041 题目描述: Being unique is so important to people ...

  4. Java进阶02 异常处理

    链接地址:http://www.cnblogs.com/vamei/archive/2013/04/09/3000894.html 作者:Vamei 出处:http://www.cnblogs.com ...

  5. 百度地图api基本用法

    首先 ,如果想调用百度地图api,你需要获取一个百度地图api的密钥. 申请密钥很简单,在百度地图api的首页就有相关链接,填写相关信息百度就会给你一个密钥了. 接下来,就是引入百度地图的api 关键 ...

  6. 读取中兴3G告警log告警文件到集合

    1.文件格式 ALARM_ID=102305_404205 EVENT_TIME=-- :: NOTIFICATION_TYPE= MANAGED_OBJECT_INSTANCE=NodeId=,Bs ...

  7. Can't call commit when autocommit=true(转)

    java.sql.SQLException: Can't call commit when autocommit=true at com.mysql.jdbc.SQLError.createSQLEx ...

  8. 阿根廷探戈舞会- 一起salsa百科 - 一起salsa网 - Powered by HDWiki!

    阿根廷探戈舞会- 一起salsa百科 - 一起salsa网 - Powered by HDWiki! 阿根廷探戈舞会 编辑词条 发表评论(2)     目录 • 京城阿根廷探戈资源 • 上海阿根廷探戈 ...

  9. Eclipse用法和技巧十一:分栏显示

    在编码的时候,有时候需要同时看到两个文件的代码.或者在代码走读的时候,能同时看到两个文件的代码能加快我们对代码的理解.来看看如何在eclipse中同时显示两个文件的代码.        步骤一:拖住一 ...

  10. hadoop 学习入门 一 云计算之旅

    一. 什么是云计算: 云计算是分布式计算.网格计算.并行计算.效用计算.网络存储.负载均衡.虚拟化.网络计算等传统计算技术的融合体. 二. 云计算的核心技术: 1 编程模型 2 海量数据分布存储技术 ...