Three.js实现滚轮放大展现不同的模型

Three.js实现滚轮放大展现不同的模型

在做一个飞机可视化项目...真的垃圾...软件开发交给专业的开发工程师不行吗???

修改OrbitControls.js的源码

不想修改, 但是不懂js是如何继承...无奈出此下策

OrbitControls.js的源码中增加如下代码

this.getSpherical = function () {
	return spherical;
};

OrbitControls在透视相机(PerspectiveCamera)的控制原理

具体怎么实现看源码, 但对于此案例, 只要知道OrbitControls通过球坐标系的半径(.radius)的数值来放大缩小视野

具体实现

  1. 给对象分层(layers) 可看我上篇博文

  2. 通过radius数值作为触发条件

    var controlsRadius = controls.getSpherical().radius;
    if (controlsRadius !== 0) {
        if (controlsRadius <= 3) {
            camera.layers.mask = 2;
        } else {
            camera.layers.mask = 8;
        }
    }
    

3.把上述代码放入渲染的函数中

posted @ 2019-03-21 18:52  RichardHaha  阅读(1718)  评论(0编辑  收藏  举报