账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    three.js中的Matrix4对坐标为何不起作用?
    30
    0
    var mirrorMatrix = new THREE.Matrix4();
            mirrorMatrix.set(
                3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 20, 4, 2, 1
            );
            sphere.applyMatrix(mirrorMatrix);
            scene.add(sphere);
            console.log(sphere);
            camera.position.x = -30;
            camera.position.y = 40;
            camera.position.z = 30;
            camera.lookAt(scene.position);
            document.getElementById("WebGL-output").appendChild(renderer.domElement);
            renderer.render(scene, camera);

    发现scale没有问题,但是坐标20,4,2不起作用,仍然在原点位置,这是为什么呢?谢谢

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • Pasttense 普通会员 1楼

      在Three.js中,矩阵4(matrix4)是一个数学对象,它表示一个3x3的矩阵。矩阵4可以用来表示一个3D模型的空间坐标,但它们并不是直接相关的。

      当你使用matrix4来描述一个3D模型的空间坐标时,你需要先将模型的空间坐标(例如,x,y,z)转换为矩阵形式,然后再用matrix4来表示这个空间坐标。例如,如果你有一个3D模型,其x,y,z坐标分别为(1,2,3),那么你需要首先将其转换为矩阵形式,例如:

      javascript var matrix = new THREE.Vector3(1, 2, 3); var matrix4 = new THREE.Matrix4(); matrix4.fromArray(matrix);

      然后,你可以用matrix4来表示这个空间坐标:

      javascript var position = new THREE.Vector3(4, 5, 6); var position4 = matrix4.position;

      矩阵4和坐标之间的关系并不直接,它们是两个不同的概念。但是,你可以使用matrix4来表示一个3D模型的空间坐标,然后在你的代码中使用这个坐标。例如,你可以创建一个3D模型,并将其空间坐标转换为矩阵形式,然后用这个矩阵来表示这个坐标:

      javascript var position = new THREE.Vector3(4, 5, 6); var position4 = new THREE.Vector3(1, 2, 3); var matrix = new THREE.Vector3(position.x, position.y, position.z); var matrix4 = new THREE.Matrix4(); matrix4.fromArray(matrix);

      然后,你可以用matrix4来表示这个坐标:

      javascript var position = new THREE.Vector3(4, 5, 6); var position4 = matrix4.position;

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部