【问题标题】:OrbitControls with damping带阻尼的 OrbitControls
【发布时间】:2021-11-23 17:18:24
【问题描述】:

有没有办法、插件或想法让 THREE.js OrbitControls 在旋转时产生惯性效果?

我想用这样的阻尼旋转一个世界球体: http://stemkoski.github.io/Three.js/Polyhedra.html

原来的OrbitControls 行为如下所示: http://threejs.org/examples/#misc_controls_orbit

【问题讨论】:

  • 阻尼不是 r.71 中OrbitControls 的功能。如果需要,您可以使用TrackballControls
  • 现在已经在three.js的r.72dev分支中添加了阻尼功能:github.com/mrdoob/three.js/pull/7016
  • 太棒了!你(和 Mr.Doob 以及所有其他在three.js 上工作的人)很棒。感谢您提供此信息。

标签: javascript three.js orbitcontrols


【解决方案1】:

OrbitControls 现在支持阻尼/惯性。

controls = new THREE.OrbitControls( camera, renderer.domElement );
controls.enableDamping = true;
controls.dampingFactor = 0.05;

然后在你的动画循环中添加

controls.update(); // required if controls.enableDamping = true, or if controls.autoRotate = true

three.js r.108

【讨论】:

  • 这是一个古怪的惯性基本实现。阻尼系数越低,旋转灵敏度越高。 (每拖动一个像素旋转更多)有机会将它们分开吗?
  • @ManuelGraf OrbitControls 就是一个例子;它不是核心库的一部分。您可以随意编辑它,或者更好的是,提出具体的改进。
猜你喜欢
  • 2017-11-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-12
  • 1970-01-01
相关资源
最近更新 更多