如何在ThreeJS中将网格旋转90度?

时间:2015-04-27 23:09:23

标签: javascript matrix 3d rotation three.js

我有一个网格,我想在Three JS中旋转90度。 这是当前形势的图像: enter image description here

我希望选定的网格与大网格平行旋转。 我试过像这样旋转矩阵:

{{1}}

但网格进入奇怪的旋转。是否有更简单的方法将其旋转90度?

5 个答案:

答案 0 :(得分:43)

threejs轮换使用Radians(你可能知道)

你可以用这个

mesh.rotation.x = Math.PI / 2;

mesh.rotation.set(new THREE.Vector3( 0, 0, Math.PI / 2));

答案 1 :(得分:13)

您可以使用此功能旋转对象:

function rotateObject(object, degreeX=0, degreeY=0, degreeZ=0) {
   object.rotateX(THREE.Math.degToRad(degreeX));
   object.rotateY(THREE.Math.degToRad(degreeY));
   object.rotateZ(THREE.Math.degToRad(degreeZ));
}

// usage:
rotateObject(myPlane, 40, 30, 20);

答案 2 :(得分:7)

假设meshToRotate需要在X轴上旋转90度。然后执行以下操作。

        var meshToRotate = new THREE.Mesh( geometry, material );

        //Rotating mesh by 90 degree in X axis.     
        meshToRotate.rotateX( Math.PI / 2 );

答案 3 :(得分:1)

在r96上经过测试,您也可以使用

let sheetsArray = []

function sheetsAsJsonById(ids) {
    for (let i = 0; i < ids.length; i++) {
        const queryUrl = `sheets.html`
        await new Promise((resolve, reject) => {
            https
                .get(queryUrl, res => {
                    let stream = []
                    res
                        .on('data', function(data) {
                            stream.push(data)
                        })
                        .on('end', function() {
                            let data = Buffer.concat(stream)

                            data = JSON.parse(data)
                            sheetsArray.push(data['values'])

                            resolve();
                        })
                })
                .on('error', err => {
                    reject(err);
                })
        })

    }
    formatJsonToLocale(sheetsArray)
}

答案 4 :(得分:0)

将您的角度转换为弧度值:

let radian = 2 * Math.PI * (p_angle / 360); //p_angle = your angle, example; 90 or 12, whatever angle