Three.js相机控件OrbitControls基本用法
通过OrbitControls.js可以对Threejs 的三维场景进行缩放,平移,旋转操作,其本质上改变的幷不是场景,而是相机的参数。
OrbitControls.js使用
鼠标操作:通过拖动鼠标左键可以720旋转展示三维场景,通过拖动鼠标右键可以平移三维场景,通过上下滚动鼠标中键可以缩放三维场景。
1.创建控件对象
1 | var control = new THREE.OrbitControls(camera); |
2.禁止使用旋转,缩放,平移
1 2 3 | control.enableRotate = false ; //禁止旋转 control.enablePan = false ; //禁止平移 control.enableZoom = false ; //禁止缩放 |
3.启用旋转,缩放,平移
1 2 3 | control.enableRotate = true ; //启用旋转 control.enablePan = true ; //启用平移 control.enableZoom = true ; //启用缩放 |
4.设置缩放范围
使用 正投用相机对象 OrthographicCamera
1 2 | control.minZoom = 0.5; control.maxZoom = 2; |
使用 相机空间对象 OrbitControls
1 2 3 4 5 6 | //透视投影相机:相机距离目标观察点距离越远显示越小,距离越近显示越大 //相机距离观察目标点极小距离——模型最大状态 control.minDistance = 200; //相机距离观察目标点极大距离——模型最小状态 control.maxDistance = 500; |
5.设置旋转范围
1 2 3 4 5 6 | // 上下旋转范围 control.minPolarAngle = 0; control.maxPolarAngle = Math.PI; // 左右旋转范围 control.minAzimuthAngle = -Math.PI * (100 / 180); control.maxAzimuthAngle = Math.PI * (100 / 180); |
6.变化事件change
有些静态场景不需要一直周期性调用渲染函数渲染场景,而且鼠标旋转缩放场景的时候才重新渲染,此时可以使用相机空间OrbitControls的变化时间change监听出发函数调用渲染函数render
1 | control.addEventListener( 'change' , render); |
7.相机空间的作用窗口范围
使用相机空间OrbitControls创建一个相机空间对象的时候,默认情况下,在浏览器的窗口整个内容区域body发生鼠标事件都会旋转、平移或缩放三维场景。但是在实际应用中如果需要控制OrbitControls的作用范围,你需要通过OrbitControls构造函数的第二个参数设置。
1 | var control = new THREE.OrbitControls(camera, renderer.domElement); |
8.相机查看目标
执行THREE.OrbitControls
构造函数时候,默认设置.target属性的值是Vector3(0,0,0)
,如果在执行new THREE.OrbitControls
之前设置了camera.lookAt(特定位置);
,相当于再次设置camera.lookAt(new THREE.Vector3(0,0,0));
posted on 2022-06-16 13:52 caicai2015 阅读(13002) 评论(0) 编辑 收藏 举报
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!