本文源地址:http://blog.csdn.net/xiaominghimi/archive/2010/12/09/6064367.aspx
Himi 原创, 转载请注明! 谢谢。
上一篇文章讲述了如何构造一个简单的立方体,以及对立方体设定颜色,那么这一章学习对立方体进行变换操作。
对上一篇文章的学习中也强调了两个Transform 对象的不同之处,这里不多说了。操作立方体其实就是渲染的时候传入Transform对象参数对其改变状态、位置、大小;那么下面先贴出一段 在按键里处理的代码,然后注释以及分析。那么首先来介绍三个方法;
-
Transform.postScale(float sx, float sy, float sz):在 x、y、z 方向伸缩 3D 对象。大于 1 的值将按照给定因数扩大对象;0 和 1 之间的值将缩小对象。负值则同时执行伸缩和镜像操作。
-
Transform.postTranslate(float tx, float ty, float tz):通过为 x、y 和 z 坐标增加指定值移动 3D 对象。负值则表示向负轴方向移动对象。
-
Transform.postRotate(float angle, float ax, float ay, float az):按给定角度绕穿过(0, 0, 0)和(ax, ay, az)的轴旋转对象。角度为正值,则表示若您顺着正旋转轴方向观察,对象是按顺时针旋转的。例如,postRotate(30, 1, 0, 0)将绕 x 轴将对象旋转 30 度。
所有操作名都是以 "post" 开头的,表示当前Transform对象是从右边与给定转换矩阵相乘的 —— 矩阵操作的顺序是非常重要的。如果您向右旋转 90 度,然后走两步,这时您所处的位置显然与先走两步再转身不同。您可以在各步行指令之后调用两个 post 方法postRotate()和postTranslate(),从而获得上面的步行指令。调用顺序决定了所获得的步行指令。由于使用的是后乘,所以您最后使用的转换会首先应用。
M3G 有一个Transform类和一个Transformable接口。所有快速模式的 API 均可接受Transform对象作为参数,用于修改其关联的 3D 对象。另外,在保留模式下使用Transformable接口来转换作为 3D 世界一部分的节点,后续文章再进行详细学习。
代码很简单,也很容易理解。
这里为了让一些同学更好的理解,那么我来代表性的详细说下 备注1 ;
我们对立方体进行变化操作,那么第一步:知道以哪个轴来做操作,所以按键处理先对 定义的 XYZ 进行判断,XYZ=1代表X轴 依次类推
;第二步:经过第一步确定了以哪个轴来做操作后,开始判定我们要对其进行什么操作,备注1 在STATE_ROATE状态下,那肯定是做旋转的操作。接下来第三步:操作对应的值参数 angle 进行赋值;备注1这里angle =10;意思是旋转角度是10,大家看到赋值之前对按键也进行了判定,当 -1 -3(对应模拟器的上方向与左方向),做逆时针旋转;当 -2 -4(对应模拟器的下方向与右方向),做顺时针旋转;其实也就是旋转角度10前面到底是“+”号还是“-”号!第四步:变化操作的方法postRotate()第一个参数为角度,第二到四参数也表示的以哪个轴来旋转 ;这里传入的是 1,0,0 ,也对应了XYZ =1 ,以X轴为旋转轴来操作!
当然可能我描述的也是以我理解的来讲述的,如果还是不理解,那么把代码放入项目中运行,自己手工修改angle,变化操作参数值等等来看运行效果就会很容易理解啦。
(推荐大家订阅本博客,因为咱的更新速度可是很快的~娃哈哈)
2010/12/90:23
分享到:
相关推荐
原文学习地址:【J2me3D系列学习文章之一】构造我们3D世界中的第一个立方体! http://blog.csdn.net/xiaominghimi/archive/2010/12/07/6059650.aspx
这个程序是在刚接触3D时做的练习,感觉还不错。虽然有点粗糙,但可以给初学者带来一起帮助。
J2ME的3D开发教程
快速入门J2ME,感觉不错的学习资料,贡献!
j2me 3D CS demo
j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api j2me----api
J2ME 3D手机游戏开发详解 完整版 分为3部分
J2ME学习笔记J2ME学习笔记J2ME学习笔记J2ME学习笔记J2ME学习笔记J2ME学习笔记J2ME学习笔记J2ME学习笔记
J2ME3D手机游戏开发详解(随书源码),移动开发系列丛书,
基于j2me的3d场景设计 立即模式 构建5个五角星 可实现五角星的旋转 缩放 旋转加速等
J2me中任意角度图片旋转 J2me中任意角度图片旋转
j2me jsr 184 实现人脸模型的旋转
J2ME 3D手机游戏开发详解 完整版 分为3部分
较早的一篇介绍J2ME平台的文章,介绍了J2EE/J2SE/J2ME的关系,以及J2ME的配置和简表,以及配置和简表所包括的类库。
J2ME 入门学习书籍打包下载J2ME 入门学习书籍打包下载J2ME 入门学习书籍打包下载
J2ME学习之环境搭建.学习j2me首先需要搭建环境
J2ME 3D 游戏 黑暗之门的代码 3D入门必看
通过对手机游戏开发,MIDP 2.0,以及JSR-184(J2ME 3D技术)的研究,采用立即模式,运用深度优先遍历算法来随机生成游戏地图,并尽力模拟手机游戏的普遍性形式,实现一个操作简单,并有一定可玩性的完整3D手机迷宫...
j2me学习笔记【12】——游戏操作Canvas类的up、down、left、right、fire属性使用实例 j2me学习笔记【13】——创建矩形框、圆角矩形以及填充颜色小例子 j2me学习笔记【14】——创建圆弧并填充颜色小例子 j2me学习笔记...
j2me 3d 源程序,一个显示和旋转3维模型的手机源程序