Android | Vuforia 模型平移、旋转、放缩

找到ImageTargetRenderer.java中如下数据:

Matrix.translateM(modelViewMatrix, 0, 0.0f, 0.0f, 
                    OBJECT_SCALE_FLOAT);
Matrix.rotateM(modelViewMatrix, 0, 
                   ROTATION_ANGLE_DEGREES, 1.0f, 0.0f, 0.0f);
Matrix.scaleM(modelViewMatrix, 0, 
           OBJECT_SCALE_FLOAT, OBJECT_SCALE_FLOAT, OBJECT_SCALE_FLOAT);
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6

1)translate指平移操作,第一个0代表偏移量,后面三个浮点型数据分别代表x, y, z轴
我们将坐标值作如下修改:

Matrix.translateM(modelViewMatrix, 0, 100.0f, 200.0f,
                    OBJECT_SCALE_FLOAT);
  • 1
  • 2

效果图:
这里写图片描述
2)scale指尺寸操作,第一个0代表缩放因子,后面三个数据分别代表x, y, z轴
我们将OBJECT_SCALE_FLOAT值进行修改(在代码前面部分修改):

Matrix.scaleM(modelViewMatrix, 0, 
           OBJECT_SCALE_FLOAT, OBJECT_SCALE_FLOAT, OBJECT_SCALE_FLOAT);
  • 1
  • 2

效果图:
这里写图片描述
我们的banana从中央移到了右上角
3)rotate指旋转操作,第一个0代表偏移量,第二个90.0f代表旋转角度,后面的三个参数依次为按x, y, z轴旋转
代码作如下修改:

Matrix.rotateM(modelViewMatrix, 0, 90.0f, 1.0f, 0, 0);
  • 1

效果图:
这里写图片描述
这里对模型的数据参数直接进行修改,其实也可以将模型的平移、选择、放缩的操作与对触摸屏的手势操作进行link,比如单指拖动实现旋转,双指拖动实现平移,双指分开实现放缩等

参考blog:
浅学OpenGLES2.0
Vuforia AR SDK对模型进行控制(平移、旋转、缩放)

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏