【发布时间】:2022-01-18 20:55:00
【问题描述】:
我不明白为什么我的相机不向后倾斜。当我刷新页面时,它会出现一次。然后在那之后,如果我移动鼠标滚轮它什么也不会做。我希望它会在 x 四元数之间向后倾斜(当我上下滚动时)。
export default class Experience {
constructor(options = {}) {
//...
this.camera = new Camera();
this.renderer = new Renderer(this.canvas);
this.scrollTargetPosition = new THREE.Quaternion();
this.scrollTargetPosition.setFromAxisAngle(new THREE.Vector3(0, 0, 1),0);
this.onMouseScroll();
this.animate();
}
onMouseScroll() {
window.addEventListener("wheel", (event) => {
if (event.wheelDelta > 0) {
this.scrollTargetPosition.x = 0;
} else {
this.scrollTargetPosition.x = Math.PI / 2;
}
console.log("Target: " + this.scrollTargetPosition.x); //Pictures below
console.log("Camera: " + this.camera.quaternion.x);
});
}
animate() {
this.camera.quaternion.slerp(this.scrollTargetPosition, 0.9);
requestAnimationFrame(this.animate.bind(this));
this.renderer.render(this.scene, this.camera);
}
}
如果我向下滚动:
【问题讨论】:
-
设置
Quaternion.x = Math.PI / 2时要达到什么目的?您是否尝试将相机绕 x 轴旋转 90 度? -
@Marquizzo 是的,但这只是一个测试。我希望最终能够将其更改为任何东西,而不仅仅是围绕 x 的 90 度
标签: javascript three.js camera quaternions