javascript - Three.js OrbitControls如何在平移时逐渐平稳地停止,而不是立即停止?
问题描述
当我在屏幕上平移场景时,我应该如何设置OrbitControls
让场景逐渐停止,而不是像这个网站那样立即停止?
这是我的代码。
controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.mouseButtons = {
ORBIT: THREE.MOUSE.RIGHT,
ZOOM: THREE.MOUSE.MIDDLE,
PAN: THREE.MOUSE.LEFT
};
controls.enableDamping = true;
controls.dampingFactor = 0.25;
controls.screenSpacePanning = false;
const direction = new THREE.Vector3();
camera.getWorldDirection(direction);
camera.getWorldPosition(controls.target);
controls.target.addScaledVector(direction, 50);
谢谢!!
解决方案
使用您的代码时,我可以在我的计算机上看到阻尼,请参阅https://jsfiddle.net/p2kgvxoc/。您可能希望设置OrbitControls.dampingFactor
为较低的值以使阻尼效果更明显。还要确保使用活动的渲染循环。
推荐阅读
- html - 矩形 720px 在手机 720 x 1280 上只有一半可见
- c++ - 我以前没有见过这样的代码,它是什么?
- javascript - React Native - 二维码生成器大小限制
- python - 是否可以制作一个可以读取文件的程序,但不能从程序外部打开文件?
- php - 如何在ajax post中使用特定的表格行数据
- javascript - 元素已附加但未显示在 nextElementSibling [更新]
- javascript - Redux 连接无法到达商店
- php - 如何在 PHP 中从映射的网络驱动器中定位文件?
- json - discord.js 12 任何方式将数据从 json 文件发送到通道?
- watson-assistant - 何时考虑采用多工作区编排方法