0
一年前,我创建了一个小型坦克游戏,作为使用three.js和WebSockets的概念验证。然而在Three.js的后期版本中,做四元数的方式已经改变了。我找不到如何在最新版本中执行的示例代码。这是我的旧代码:Three.Js中的四元数 - 将物体夹到风景
function calculateQuaternions(tankmesh) {
var n = getLandscapeNormal(tankmesh);
var q1 = new THREE.Quaternion();
q1.setFromAxisAngle(new THREE.Vector3(0, 1, 0), tankmesh.rotation.y);
var q2 = new THREE.Quaternion();
var axis = new THREE.Vector3(0, 1, 0);
var theta = Math.acos(axis.dot(n));
axis.cross(n).normalize();
q2.setFromAxisAngle(axis, theta);
q2.multiply(q1);
tankmesh.quaternion = q2;
}
的getLandscapeNormal函数返回指示该罐schould倾斜的方向(在坦克的位置从景观的斜率计算)的归一化矢量。 当代码的工作,坦克移动就像在这个视频:https://www.youtube.com/watch?v=CMNllyqq_O0
任何人都可以帮助我如何做这个计算现在?
'tankmesh.quaternion .copy(q2);'是做它的方法。 – WestLangley