gpt4 book ai didi

javascript - 实现旧版 R70 Threejs 代码以与新版本配合使用的正确方法

转载 作者:行者123 更新时间:2023-12-03 03:34:14 30 4
gpt4 key购买 nike

我有一段代码抛出错误。然而,它在这个 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 的基类,因此您可以像这样使用它:

var myMesh = new THREE.Mesh(geometry, material);
myMesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, myMesh.quaternion);

编辑:看看你的 fiddle ,看起来你已经明白了,对吗?

三.js r87

关于javascript - 实现旧版 R70 Threejs 代码以与新版本配合使用的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45943670/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com