明确原理:

先确定一下OpenGL里面的坐标为:x轴正方向为屏幕向右,y轴正方向为屏幕向上,z轴正方向为屏幕由里向外。

当手指在X轴方向上移动时,画面中物体应绕Y轴方向旋转,则为gl.glRotatef(Angle,0,1,0);

当手指在Y轴方向上移动时,画面中物体应绕X轴方向旋转,则为gl.glRotatef(Angle,1,0,0);

除此之外,android中屏幕响应手势移动所应用的function为:onTouchEvent.

下面展示代码:

private final float TOUCH_SCALE_FACTOR = 180.0f / 320;

renderer = new NewRender();

public booleanonTouchEvent(MotionEvent e) {switch(e.getAction()) {caseMotionEvent.ACTION_DOWN:

ypos=e.getY();

xpos=e.getX();return true;caseMotionEvent.ACTION_MOVE:float dy = e.getY() - ypos;//计算触控笔Y位移

float dx = e.getX() - xpos;//计算触控笔X位移

renderer.center.mAngleX = dy * TOUCH_SCALE_FACTOR;//设置沿x轴旋转角度

renderer.center.mAngleY = dx * TOUCH_SCALE_FACTOR;//设置沿y轴旋转角度

requestRender();//重绘画面

return true;

}return true;

}

NewRender()是我继承Renderer创建的一个class.

renderer.center.mAngleX = dy * TOUCH_SCALE_FACTOR;//设置沿x轴旋转角度

renderer.center.mAngleY = dx * TOUCH_SCALE_FACTOR;//设置沿y轴旋转角度

center.mAngleX 和 center.mAngleY是指我的Object(center)的旋转角度。

在center中,我的旋转角度设置为:

gl.glRotatef(mAngleX, 1, 0, 0);//旋转

gl.glRotatef(mAngleY, 0, 1, 0);

gl.glRotatef(mAngleZ,0, 0, 1);

原文:http://www.cnblogs.com/lws520/p/5997030.html

触摸旋转 Android,Opengl es Android 3D 手指触控旋转object相关推荐

  1. Android OpenGL ES 实现 3D 阿凡达(Avatar)效果

    该原创文章首发于微信公众号:字节流动 3D 效果的壁纸 本文实现的效果 偶然间,看到技术交流群里的一位同学在做类似于上图所示的 3D 效果壁纸,乍一看效果确实挺惊艳的.当时看到素材之后,马上就萌生了一 ...

  2. Android OpenGL ES 学习(九) – 坐标系统和实现3D效果

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...

  3. Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换

    Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换 查看全文 http://www.taodudu.cc/news/show-6705596.html 相关文章: word中如何加 ...

  4. OpenGl文章 Android OpenGL ES 简明开发教程

    Android OpenGL ES 简明开发教程 分类:android学习笔记2011-12-14 15:04375人阅读评论(0)收藏举报 ApiDemos 的Graphics示例中含有OpenGL ...

  5. Android OpenGL ES 画出三棱锥

    如今VR这么火,感觉有必要学学OpenGL.什么是OpenGL ES ,OpenGL ES (OpenGL for Embedded System ) 为适用于嵌入式系统的一个免费二维和三维图形库.O ...

  6. Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换

    Viewing和Modeling 变换关系紧密,对应到相机拍照为放置三角架和调整被拍物体位置及角度,通常将这两个变换使用一个modelview 变换矩阵来定义.对于同一个坐标变换,可以使用不同的方法来 ...

  7. Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...

  8. Android OpenGL ES 从入门到精通系统性学习教程

    1 为什么要写这个教程 目前这个 OpenGL ES 极简教程的更新暂时告一段落,在此之前,很荣幸获得了阮一峰老师的推荐. 因为在工作中频繁使用 OpenGL ES 做一些特效.滤镜之类的效果,加上平 ...

  9. Android OpenGL ES 学习(二) -- 图形渲染管线和GLSL

    OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...

最新文章

  1. 一次想不到的Spring事务失效问题跟踪(事务不会滚)
  2. arcsde服务启动不了
  3. 每天学一点儿shell:猜数字游戏
  4. 数据集标注工具_数据标注分享9个数据标注工具
  5. 全手工制作arm-linux交叉编译工具链《一》-转
  6. 测试到产品经理的进阶之路
  7. 在MFC中获取窗口\视图句柄 &获取当前活动的CView .
  8. TableView数据源方法的执行顺序
  9. WebApi基于Token和签名的验证
  10. opencv 快速生成scv文件 java
  11. 静默安装weblogic
  12. python图像色彩分析_Python——图像手绘效果
  13. python中def fun()是什么意思_PYTHON练习-def函数的基础
  14. 虚拟服务器修改教程,【新挑战】十二职业虚拟机一键端图文架设修改教程
  15. python调试神器snoop,让你告别print
  16. win10 企业版2016长期服务激活教程
  17. python天勤金叉编程代码大全_天勤终端数据解决方案
  18. java zxing条形码去掉两边空白,密度调整,固定条形码宽度
  19. Mezo Playing ZomaDeadlineYet Another Meme ProblemHQ9+
  20. Linux 安装rabbitMQ guest账号登录总是提示失败

热门文章

  1. 12伏的蓄电池有几个单格组成_福建汤浅蓄电池ups电源机房一体化
  2. python输出举例_python字符串格式化输出及相关操作代码举例
  3. Linux下程序报出/bin/bash: No such file or directory
  4. 沃信科技ERP系统容灾方案概述
  5. Delphi数据类型
  6. 配置linux服务器做简单的路由器
  7. 2009设计大餐 Adobe CS4 全集下载
  8. xp故障恢复控制台和它的命令
  9. 一个学习的好去处!!
  10. 接口隔离原则——面向对象设计原则