作者:桑榆
QQ:934440653
有問題,評論留言,或qq聯繫
旋轉
1.模型繞本地座標x軸旋轉π/2,每次執行都是相對上一次的角度進行旋轉變化(累加);
注:本地座標介紹本地座標介紹
mesh.rotateX(Math.PI/2);//繞x軸旋轉π/2
- 模型繞(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表示
縮放
- 模型x軸方向放大2倍,如果連續執行兩次該語句,相等於比原來方法4倍
mesh.scale.x = 2.0;//x軸方向放大2倍
- 模型整體縮小2倍,相當於xyz三個方向分別縮小2倍
mesh.scale.set(2,2,2);//縮小爲原來2倍
模型Mesh的屬性scale返回值是一個Vector3對象,Vector3對象具有屬性x、y、z對於上面的代碼而言xyz表示座標值,xyz數據類型是float,Vector3對象還具有方法set(),set方法有三個表示xyz座標的參數。
平移
- 模型沿着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
- 單獨設置某一座標軸
mesh.position.y = 80;//設置網格模型幾何中心y座標
- 通過set設置(x,yz)座標
mesh.position.set(80,2,10);//設置網格模型幾何中心三維座標
position屬性和平移方法translateX()一樣都是設置距離,方法translateX()設置的相對上次位置進行平移,兩次執行該方法,距離會疊加,position屬性設置的距離是相對座標系原點位置, 兩次執行position屬性立方體的會只會更新重新定位,兩次的距離參數不是疊加關係,而是替換關係。