模型的旋转、缩放、平移

作者:桑榆
QQ:934440653
有问题,评论留言,或qq联系

旋转

1.模型绕本地坐标x轴旋转π/2,每次执行都是相对上一次的角度进行旋转变化(累加);
:本地坐标介绍本地坐标介绍

mesh.rotateX(Math.PI/2);//绕x轴旋转π/2
  1. 模型绕(0,0,1)向量表示的轴旋转π/4
var axis = new THREE.Vector3(0,0,1);//向量axis
mesh.rotateOnAxis(axis,Math.PI/4);//绕axis轴旋转π/4

rotateOnAxis(axis, angle)方法相比.rotateX、.rotateY、.rotateZ更通用,可以实现立方体绕任何轴旋转,参数axis表示旋转轴,使用对象Vector3表示

缩放

  1. 模型x轴方向放大2倍,如果连续执行两次该语句,相等于比原来方法4倍
mesh.scale.x = 2.0;//x轴方向放大2倍
  1. 模型整体缩小2倍,相当于xyz三个方向分别缩小2倍
 mesh.scale.set(2,2,2);//缩小为原来2倍

模型Mesh的属性scale返回值是一个Vector3对象,Vector3对象具有属性x、y、z对于上面的代码而言xyz表示坐标值,xyz数据类型是float,Vector3对象还具有方法set(),set方法有三个表示xyz坐标的参数。

平移

  1. 模型沿着x轴正方向平移100,可以多次执行该语句,每次执行都是相对上一次的位置进行平移变换
mesh.translateX(100);//沿着x轴正方向平移距离100

2.模型沿着向量(0,1,0)表示的方向平移100

var axis = new THREE.Vector3(0,1,0);//向量axis
mesh.translateOnAxis(axis,100);//沿着axis轴表示方向平移100

translateOnAxis(axis, distance)方法相比.translateX、.translateY、.translateZ更通用,可以实现立方体沿着任何方向旋平移,参数axis表示平移方向,使用对象Vector3表示

位置属性position

  1. 单独设置某一坐标轴
  mesh.position.y = 80;//设置网格模型几何中心y坐标
  1. 通过set设置(x,yz)坐标
mesh.position.set(80,2,10);//设置网格模型几何中心三维坐标

position属性和平移方法translateX()一样都是设置距离,方法translateX()设置的相对上次位置进行平移,两次执行该方法,距离会叠加,position属性设置的距离是相对坐标系原点位置, 两次执行position属性立方体的会只会更新重新定位,两次的距离参数不是叠加关系,而是替换关系。

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值