实现这个较旧的 R70 threejs 代码以使用较新版本的正确方法
correct way of implementing this older R70 threejs code to work with newer version
我有这段代码抛出错误。但是,它在这个 jsfiddle 中工作得很好。我正在尝试旋转立方体并使用轨迹球控件对其进行平移。这在 fiddle 中有效,但是当我将它放入 visual studio 时,它在 chrome 中抛出此错误,“无法读取 属性
'multiplyQuaternions' 未定义。
https://jsfiddle.net/perrinprograms/n6u6asza/668/
这是我要实现的代码。我猜这是因为 fiddle 使用的是 three.js 的旧版本,而我在我的项目中使用的是较新的版本。有谁知道是否有办法正确编写这一行,"geometry.quaternion"?谢谢。
var geometry = new THREE.Geometry();
deltaRotationQuaternion = new THREE.Quaternion()
.setFromEuler(new THREE.Euler(
toRadians(deltaMove.y * 0.4),
toRadians(deltaMove.x * 0.4),
0,
'XYZ'
));
geometry.quaternion.multiplyQuaternions(deltaRotationQuaternion, geometry.quaternion);
}
THREE.Geometry
没有 quaternion
属性(据我所知,r70 也没有)。
THREE.Object3D
是否具有 属性,并且是 THREE.Mesh
的基础 class,因此您可以使用它像这样:
var myMesh = new THREE.Mesh(geometry, material);
myMesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, myMesh.quaternion);
编辑: 看看你的 fiddle,看起来你已经明白了,对吗?
three.jsr87
我有这段代码抛出错误。但是,它在这个 jsfiddle 中工作得很好。我正在尝试旋转立方体并使用轨迹球控件对其进行平移。这在 fiddle 中有效,但是当我将它放入 visual studio 时,它在 chrome 中抛出此错误,“无法读取 属性 'multiplyQuaternions' 未定义。
https://jsfiddle.net/perrinprograms/n6u6asza/668/
这是我要实现的代码。我猜这是因为 fiddle 使用的是 three.js 的旧版本,而我在我的项目中使用的是较新的版本。有谁知道是否有办法正确编写这一行,"geometry.quaternion"?谢谢。
var geometry = new THREE.Geometry();
deltaRotationQuaternion = new THREE.Quaternion()
.setFromEuler(new THREE.Euler(
toRadians(deltaMove.y * 0.4),
toRadians(deltaMove.x * 0.4),
0,
'XYZ'
));
geometry.quaternion.multiplyQuaternions(deltaRotationQuaternion, geometry.quaternion);
}
THREE.Geometry
没有 quaternion
属性(据我所知,r70 也没有)。
THREE.Object3D
是否具有 属性,并且是 THREE.Mesh
的基础 class,因此您可以使用它像这样:
var myMesh = new THREE.Mesh(geometry, material);
myMesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, myMesh.quaternion);
编辑: 看看你的 fiddle,看起来你已经明白了,对吗?
three.jsr87