Autodesk forge 如何正确使用SetViewFromArray
我有两个3D点:目标对象的中心和相机位置。我想设置一个视图,就好像我从相机位置看对象一样 我正在努力找出如何计算setViewFromArray()函数的视图参数Autodesk forge 如何正确使用SetViewFromArray,autodesk-forge,Autodesk Forge,我有两个3D点:目标对象的中心和相机位置。我想设置一个视图,就好像我从相机位置看对象一样 我正在努力找出如何计算setViewFromArray()函数的视图参数 View parameters: [position-x, position-y, position-z, target-x, target-y, target-z, up-x, up-y, up-z, aspect, fov (radians), orthoScale, isPerspective (0=perspective, 1
View parameters: [position-x, position-y, position-z, target-x, target-y, target-z, up-x, up-y, up-z, aspect, fov (radians), orthoScale, isPerspective (0=perspective, 1=ortho)]
我假设“位置”是指摄像机的位置,“目标”是我的对象。我试过了,但看不清楚。我也不知道“向上”是什么意思
有人能解释一下或者分享一下示例代码吗
多谢各位
Bandu最简单的方法是使用“viewer.restoreState(JSON_OBJ)”方法 在JSON_OBJ对象内指定“目标对象”和相机的位置(“眼睛”),并调用restoreState。您可以指定其他内容,如FOV和轴心点,以获得所需的外观 以下是一篇详细的博文: 下面是一个快速示例,指定目标和眼睛并调用restoreState:
const JSON_OBJ = {"viewport":{"name":"",
"eye":[-56.65177484061517,-110.22448381222459,48.75854608014884],
"target":[-56.61241442215515,-110.13854629080645,48.725902642962545],
"up":[0.13593096966393645,0.29678471606580187,0.9452203995872939],"worldUpVector":[0,0,1],
"pivotPoint":[17.422795311668544,39.67309215526787,3.7083339691161967],"distanceToOrbit":172.6794473004014,
"aspectRatio":1.9732770623333973,
"projection":"perspective","isOrthographic":false,
"fieldOfView":37.80748217565049}
}
viewer.restoreState(JSON_OBJ)
更新: 但是,如果您喜欢使用
setviewfromrarray
,请确保使用getviewarrayfromrcamera
来获取相机状态数组,如下所示:
let cameraState = viewer.getViewArrayFromCamera()
> [126.9228, -105.0679, 107.23, 116.13, -28.34, 33.9, 0, 0, 1, 1.90909, 0.761012]
viewer.setViewFromArray([126.9228, -105.0679, 107.23, 116.13, -28.34, 33.9, 0, 0, 1, 1.90909, 0.761012])
获取生成的阵列,然后移动摄影机,如下所示:
let cameraState = viewer.getViewArrayFromCamera()
> [126.9228, -105.0679, 107.23, 116.13, -28.34, 33.9, 0, 0, 1, 1.90909, 0.761012]
viewer.setViewFromArray([126.9228, -105.0679, 107.23, 116.13, -28.34, 33.9, 0, 0, 1, 1.90909, 0.761012])