我有一些错误的代码。但是,它适用于这个jsfiddle就好了。我试图旋转一个立方体,并用轨迹球控件平移它。这适用于小提琴,但当我把它带入视觉工作室时,它会把这个错误扔进chrome,"无法读取属性 ' multiplyQuaternions'未定义"。
https://jsfiddle.net/perrinprograms/n6u6asza/668/
这是我试图实现的代码。我猜它是因为小提琴使用的是旧版本的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);
}
答案 0 :(得分:1)
THREE.Geometry
没有quaternion
属性(据我所知,r70也没有)。
THREE.Object3D
确实拥有该属性,并且是THREE.Mesh
的基类,因此您可以像这样使用它:
var myMesh = new THREE.Mesh(geometry, material);
myMesh.quaternion.multiplyQuaternions(deltaRotationQuaternion, myMesh.quaternion);
编辑:看着你的小提琴,看起来你已经想出来了,对吗?
three.js r87