触摸旋转 Android,Opengl es Android 3D 手指触控旋转object
明确原理:
先确定一下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相关推荐
- Android OpenGL ES 实现 3D 阿凡达(Avatar)效果
该原创文章首发于微信公众号:字节流动 3D 效果的壁纸 本文实现的效果 偶然间,看到技术交流群里的一位同学在做类似于上图所示的 3D 效果壁纸,乍一看效果确实挺惊艳的.当时看到素材之后,马上就萌生了一 ...
- Android OpenGL ES 学习(九) – 坐标系统和实现3D效果
OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...
- Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换
Android OpenGL ES 2.0 屏幕坐标和3D世界坐标转换 查看全文 http://www.taodudu.cc/news/show-6705596.html 相关文章: word中如何加 ...
- OpenGl文章
Android OpenGL ES 简明开发教程
Android OpenGL ES 简明开发教程 分类:android学习笔记2011-12-14 15:04375人阅读评论(0)收藏举报 ApiDemos 的Graphics示例中含有OpenGL ...
- Android OpenGL ES 画出三棱锥
如今VR这么火,感觉有必要学学OpenGL.什么是OpenGL ES ,OpenGL ES (OpenGL for Embedded System ) 为适用于嵌入式系统的一个免费二维和三维图形库.O ...
- Android OpenGL ES 开发教程(16):Viewing和Modeling(MODELVIEW) 变换
Viewing和Modeling 变换关系紧密,对应到相机拍照为放置三角架和调整被拍物体位置及角度,通常将这两个变换使用一个modelview 变换矩阵来定义.对于同一个坐标变换,可以使用不同的方法来 ...
- Android OpenGL ES 学习(十一) –渲染YUV视频以及视频抖音特效
OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...
- Android OpenGL ES 从入门到精通系统性学习教程
1 为什么要写这个教程 目前这个 OpenGL ES 极简教程的更新暂时告一段落,在此之前,很荣幸获得了阮一峰老师的推荐. 因为在工作中频繁使用 OpenGL ES 做一些特效.滤镜之类的效果,加上平 ...
- Android OpenGL ES 学习(二) -- 图形渲染管线和GLSL
OpenGL 学习教程 Android OpenGL ES 学习(一) – 基本概念 Android OpenGL ES 学习(二) – 图形渲染管线和GLSL Android OpenGL ES 学 ...
最新文章
- 一次想不到的Spring事务失效问题跟踪(事务不会滚)
- arcsde服务启动不了
- 每天学一点儿shell:猜数字游戏
- 数据集标注工具_数据标注分享9个数据标注工具
- 全手工制作arm-linux交叉编译工具链《一》-转
- 测试到产品经理的进阶之路
- 在MFC中获取窗口\视图句柄 &获取当前活动的CView .
- TableView数据源方法的执行顺序
- WebApi基于Token和签名的验证
- opencv 快速生成scv文件 java
- 静默安装weblogic
- python图像色彩分析_Python——图像手绘效果
- python中def fun()是什么意思_PYTHON练习-def函数的基础
- 虚拟服务器修改教程,【新挑战】十二职业虚拟机一键端图文架设修改教程
- python调试神器snoop,让你告别print
- win10 企业版2016长期服务激活教程
- python天勤金叉编程代码大全_天勤终端数据解决方案
- java zxing条形码去掉两边空白,密度调整,固定条形码宽度
- Mezo Playing ZomaDeadlineYet Another Meme ProblemHQ9+
- Linux 安装rabbitMQ guest账号登录总是提示失败