亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

three.js中的Matrix4對坐標為何不起作用?

three.js中的Matrix4對坐標為何不起作用?

牛魔王的故事 2019-02-24 16:27:48
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不起作用,仍然在原點位置,這是為什么呢?謝謝
查看完整描述

1 回答

?
幕布斯7119047

TA貢獻1794條經驗 獲得超8個贊

https://img1.sycdn.imooc.com//5c7e19d2000156fc06220410.jpg

所以修改矩陣如下:

mirrorMatrix.set(

    3, 0, 0, 20, 0, 3, 0, 4, 0, 0, 3, 2, 0, 0, 0, 1

);

Update1:

https://img1.sycdn.imooc.com//5c7e19f40001878e08000136.jpg


因為使用數組來存儲矩陣,矩陣是二維的,如果用一維數組存儲的話,肯定會涉及一個順序問題,即一行行的存儲還是一列列的存儲;

官網的說明是set方法使用的是行主序,元素中的矩陣是列主序,舉例如下:

矩陣


3 0 0 20

0 3 0 4

0 0 3 2

0 0 0 1

https://img1.sycdn.imooc.com//5c7e19fa0001ddc402130116.jpg


如果使用行主序存儲在數組中,那么這個數組是[3, 0, 0, 20, 0, 3, 0, 4, 0, 0, 3, 2, 0, 0, 0, 1]


https://img1.sycdn.imooc.com//5c7e19fd0001e1de01660117.jpg


如果使用列主序存儲在數組中,那么這個數組是[3, 0, 0, 0, 0, 3, 0, 0, 0, 0, 3, 0, 20, 4, 2, 1]


查看完整回答
反對 回復 2019-03-05
  • 1 回答
  • 0 關注
  • 857 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號