我如何实现ZoomAll功能从任何相机角度在Three.js
How can I implement ZoomAll functionality from any camera angle in Three.js?
我有一个场景,有许多Object3D对象包含块,圆柱体和网格。我也有一个透视相机和使用轨迹球控制。我需要的是一种方法来设置相机的位置,而不修改FOV或相机角度,并确保场景中的所有对象都在屏幕上可见。我已经成功地使用了预设的顶部、底部、左侧和右侧视图,使用了整个场景的边界框,但我需要这在任何相机角度都能工作,因为用户可以使用轨迹球控件将视图旋转到任何位置。
如果有一种方法可以根据相机位置,目标和对象列表获得2d边界矩形,我想我可以让它工作,但我很难找到如何做到这一点。
功能是这样的:在一个包含许多物体的场景中,用户用鼠标将相机旋转到任意位置,然后点击"全部缩放"按钮。然后,相机被放大(移动)或缩小(保持FOV恒定),使所有对象适合屏幕。
如何旋转和平移整个场景,使相机位于一个看着原点的轴上。
从那里得到边界框,计算相机所需的距离并平移相机。
然后旋转并平移整个画面
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 有没有任何方法可以将控制器从文件加载到ui路由器$stateProvider中
- jQuery中是否内置了任何字符串格式化函数
- 在单击任何位置时隐藏元素,而不检查每次DOM单击
- 是否有任何snippet或jQuery插件可以列出easylist.txt模式匹配的DOM中的所有元素
- 有任何可能将facebook实时信使整合到一个网站中
- 是否有任何方法可以使用jQuery替换在数组中定义值的文本
- AJAX:$_GET不返回任何值
- 在同一个服务工作者中处理service-worker.js有任何影响吗
- 将事件处理程序绑定到任何可能的事件
- 在Highcharts中,我们可以通过任何方式在渲染图表之前获得plotWidth和plotHeight
- 任何方式使AJAX调用Gmail API,而无需通过JS库
- document.styleSheets不返回任何内容
- 在D3.js中,有没有任何方法可以将x和y方向上的滚动事件绑定到平移svg
- Graphiti中是否有任何工具提示功能
- 有没有任何方法可以使用node-js从不同的机器打开浏览器
- 在解析对象.save()中;没有返回任何原因
- 任何浏览器都不支持javascript函数
- threejs:当相机接近网格末端时,如何在任何方向重新定位网格
- 我如何实现ZoomAll功能从任何相机角度在Three.js