最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

Three.js中模型對(duì)象角度旋轉(zhuǎn)

2022-06-11 21:18 作者:地理信息技術(shù)雜談  | 我要投稿

在Three.js的場(chǎng)景中,加載三維模型,需要對(duì)模型參照x、y、z三個(gè)軸的角度旋轉(zhuǎn)進(jìn)行設(shè)置。

在加載三維模型的時(shí)候,可以直接設(shè)置模型的三個(gè)軸的rotation屬性:

model.rotation.x = -Math.PI / 4;

model.rotation.z = Math.PI / 4;

model.rotation.y = Math.PI / 2;

但是,在實(shí)際的場(chǎng)景中,這樣設(shè)置模型展示的結(jié)果是不正確的,按照Three.js的說明文檔中,在場(chǎng)景中模型的變換,需要通過矩陣進(jìn)行變換。

具體的代碼實(shí)現(xiàn)方式如下:

//模型對(duì)象旋轉(zhuǎn)的函數(shù),每次設(shè)置一個(gè)坐標(biāo)軸的變換

function rotateAroundWorldaxis(object, axis, radians) {

let rotWorldMatrix = new THREE.Matrix4();

rotWorldMatrix.makeRotationaxis(axis.normalize(), radians);

rotWorldMatrix.multiply(object.matrix);?

object.matrix = rotWorldMatrix;?

object.rotation.setFromRotationMatrix(object.matrix);

}

???//調(diào)用方式,設(shè)置x、y、z軸的旋轉(zhuǎn)

? let xaxis = new THREE.Vector3(1, 0, 0);

? let yaxis = new THREE.Vector3(0, 1, 0);

? let?zaxis = new THREE.Vector3(0,?0, 1);

?//模型、旋轉(zhuǎn)軸和旋轉(zhuǎn)角度(弧度)

??rotateAroundWorldaxis(model, xaxis, Math.PI / 8);

對(duì)于之前版本的Three.js,函數(shù)實(shí)現(xiàn)的有些不同

// Three.js r49之前:

?object.rotation.getRotationFromMatrix(object.matrix, object.scale);

// ?Three.js?r59之前:

object.rotation.setEulerFromRotationMatrix(object.matrix);

對(duì)于Three.js中現(xiàn)有一些形狀對(duì)象,直接設(shè)置三個(gè)軸的變換就行,不需要這樣進(jìn)行變換。

Three.js中模型對(duì)象角度旋轉(zhuǎn)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
甘洛县| 华安县| 延津县| 饶河县| 衢州市| 五河县| 灌云县| 宜州市| 新沂市| 本溪市| 乌拉特前旗| 广宁县| 仙游县| 海兴县| 高陵县| 岑溪市| 连江县| 金阳县| 红桥区| 金塔县| 余庆县| 宿州市| 时尚| 红河县| 芜湖市| 郴州市| 朝阳县| 吴旗县| 五河县| 新源县| 浠水县| 栾川县| 平舆县| 博湖县| 永宁县| 重庆市| 得荣县| 陆丰市| 达孜县| 金沙县| 宿松县|