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