用于放大three.js的按钮

use*_*890 2 zoom button three.js

我使用three.js和THREE.OrbitControls动画我不知道如何通过按钮点击更改缩放我如何理解...用于缩放回答此功能

this.dollyIn = function ( dollyScale ) {
        if ( dollyScale === undefined ) {
            dollyScale = getZoomScale();
        }
        scale /= dollyScale;

    };

    this.dollyOut = function ( dollyScale ) {
        if ( dollyScale === undefined ) {
            dollyScale = getZoomScale();
        }
        scale *= dollyScale;

    };
Run Code Online (Sandbox Code Playgroud)

我需要发送什么来增加或减少缩放我如何为这个按钮形式?

<input id="clickMe" type="button" value="+" onclick="..." /> 
Run Code Online (Sandbox Code Playgroud)

Rat*_*ari 6

我在我的一个项目中完成了这个.

你是对的,你可以使用OrbitControls中的dollyIn()dollyOut()函数来放大或缩小.

以下是步骤和代码段:

  • 您需要将OrbitControls与相机和渲染器domElement一起初始化:

    var controls = new THREE.OrbitControls(camera, renderer.domElement);

  • 创建放大和缩小功能:

function zoomModel(isZoomOut, scale) {
  if(isZoomOut){
      controls.dollyIn(scale);
  }else{
      controls.dollyOut(scale);
  }
}
Run Code Online (Sandbox Code Playgroud)
  • 在您的按钮中添加事件监听器以调用zoomModel函数:
 $("#clickMe").on("click", function(){
  // call this to make the model larger/ zoom in
  zoomModel(true, 4);

  // call this to make it smaller / zoom out
  //zoomModel(false, 4);
});
Run Code Online (Sandbox Code Playgroud)

  • dollyIn() 和 dollyOut() 是 OrbitControls 的内部函数,不可公开访问。修订版 116.1 (2认同)