做Three.js三维可视化场景一般使用OrbitControls相机控制器。这个控制器实现了完整的平移、旋转和缩放等基本功能。提高了开发效率,省去了直接操控相机camera的麻烦,但是也有一定的缺点:
1、我们有时候需要灵活的主动控制相机,比如实现Three.js场景的路径漫游,就需要OrbitControls把相机控制权暂时的交出来,我们人为的控制一段时间,等漫游功能结束后再转交给OrbitControls操控;
2、OrbitControls的缩放和旋转功能都是以屏幕为中心进行,有很多应用场景无法满足用户的需求。我们只能是自己开发定制一个全新的newOrbitControls。下面是一个OrbitControls升级定制的案例,视频-->请欣赏:
Three.js大场景相机控制器/OrbitControls升级版/threejs以鼠标为中心的场景相机控制
gisOrbitControls实现了:
1、重写Three.js的OrbitControls相机控制器
2、以鼠标所在位置为中心的场景旋转操控
3、以鼠标所在位置为中心的场景缩放
4