模型的旋轉、縮放、平移

作者:桑榆
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屬性立方體的會只會更新重新定位,兩次的距離參數不是疊加關係,而是替換關係。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章