编程语言
首页 > 编程语言> > Javascript-Three.js:具有缩放阻尼的OrbitControl?

Javascript-Three.js:具有缩放阻尼的OrbitControl?

作者:互联网

在three.js的r.72dev分支中添加了阻尼功能.
它非常适合平滑旋转.

是否也可以启用缩放阻尼(惯性)?

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

解决方法:

我在three.js r73 OrbitControls中添加了缩放阻尼,请参见此演示:

http://jsfiddle.net/L0rdzbej/149/

用法就像默认的轨道控件一样,您可以使用以下设置进行自定义:

controls.constraint.smoothZoom = true;
controls.constraint.zoomDampingFactor = 0.2;
controls.constraint.smoothZoomSpeed = 5.0;

缺点:仅适用于鼠标滚轮,不适用于缩放或鼠标中键.我想它可以扩展,但是直到现在我还不够在意.我愿意提出建议.

我的解决方案基于paulkaplan于2013年提出的要点:https://gist.github.com/paulkaplan/5770247.不用说three.js和Orbit Controls从那时起发生了很大变化.如果某些前任作者正式添加此功能,将不胜感激,但有时需要一段时间;-)

To give you a quick overview I modified the following:

在OrbitContraint()中:

一堆缩放所需的变量,

增加的功能:this.smoothZoomUpdate = function(){/ * … * /};

并在OrbitConstraint.update()函数中对其进行调用:

this.update = function () {
    //...
    this.smoothZoomUpdate ();
    //...
}

同样在THREE.OrbitControls()内部修改了onMouseWheel()函数{/ * … * /}

标签:three-js,javascript
来源: https://codeday.me/bug/20191119/2036647.html