将视图设置为正交 [英] Set view to orthographic

查看:21
本文介绍了将视图设置为正交的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何获取当前视图并将其设置为正交视图?

我尝试使用viewer.getCamera()获取当前如何设置视图的参数,然后使用viewer.applyCamera()进行设置。

var camera = viewer.getCamera();
console.log('Camera: ' + JSON.stringify(camera));

返回:

Camera: {
   "metadata": {"version":4.3,"type":"Object","generator":"ObjectExporter"},
   "object":{"uuid":"78D2EA86-853B-473F-9E0E-E3F0C8874E40",
   "type":"Camera",
   "matrix":[1,0,0,0,0,1,0.00009999999747378752,0,0,-0.00009999999747378752,1,0,114010.796875,88329.0078125,135503.609375,1],
   "children":[
       {"uuid":"53C7FA49-B00C-4616-9E7A-CCB94A661A45",
        "type":"DirectionalLight",
        "color":8355711,"intensity":0,
        "matrix":1,0,0,0,0,1,0,0,0,0,1,0,-0.5,0.20000000298023224,0.05999999865889549,1]},
        {
           "uuid":"7D5EC244-7268-4190-8480-4BD1DD56F8CB",
           "type":"Object3D","matrix":[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]
        }]}}

然后我尝试设置,将"矩阵"数组作为参数,但视图跳转。

viewer.setViewFromArray(params); 

推荐答案

我使用来自当前摄像头的数据遵循数组的格式,并通过viewer.setViewFromArray应用它们。我保留了所有其他参数,但只将最后一个参数设置为1(正射)。它在我这边看起来工作得很好。

 viewerApp.myCurrentViewer.setViewFromArray([
    viewerApp.myCurrentViewer.getCamera().position.x,
    viewerApp.myCurrentViewer.getCamera().position.y,
    viewerApp.myCurrentViewer.getCamera().position.z,
    viewerApp.myCurrentViewer.getCamera().target.x,
    viewerApp.myCurrentViewer.getCamera().target.y,
    viewerApp.myCurrentViewer.getCamera().target.z,
    viewerApp.myCurrentViewer.getCamera().up.x,
    viewerApp.myCurrentViewer.getCamera().up.y,
    viewerApp.myCurrentViewer.getCamera().up.z,
    viewerApp.myCurrentViewer.getCamera().aspect,
    viewerApp.myCurrentViewer.getCamera().fov,
    1,
    1
]);

您还可以检查源Viewer3D.js,以了解setViewFromArray如何工作的工作流。

Viewer3D.prototype.setViewFromArray=函数(参数,名称){...}

如果您只是想在透视和正视之间切换,可以使用直接接口:

Viewer.Navigation.toOrthgraph()

Viewer.Navigation.toVision()

这篇关于将视图设置为正交的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆