Autodesk Viewer-如何反转摄影机角度?

时间:2018-10-05 08:23:37

标签: autodesk-forge autodesk-viewer

我想向查看器中添加一个按钮,该按钮将向用户显示模型的“反角”。我希望结果本质上是用户释放模型时所看到的结果,该模型沿着模型的中心在屏幕上完全水平拖动。

这里的用例是我们希望能够锁定视图,但使用户能够平移和查看反向角度的功能-而不启用诸如轨道或自由轨道之类的东西。

这是我到目前为止所做的:

        var currentPosition = viewer.navigation.getPosition();
        var newX = -currentPosition.x;
        var newY = -currentPosition.y;
        var newZ = -currentPosition.z;

        var newPosition = {
          x: newX,
          y: newY,
          z: newZ
        };

        viewer.navigation.setView(newPosition,
            viewer.navigation.getTarget());

但是,当模型从枢轴平移时,这给了我们一些不良的行为-此代码将一个模型放置在屏幕中央的右边,并将其放在屏幕的左边。我想绕着自身旋转模型,就像在自由轨道上水平拖动一样。

1 个答案:

答案 0 :(得分:0)

请尝试以下操作,而不是仅更改摄像机位置的符号(可有效地通过世界原点反映位置),

const oldPos = viewer.navigation.getPosition();
const oldTarget = viewer.navigation.getTarget();
const newPos = {
    x: oldPos.x + 2.0 * (oldTarget.x - oldPos.x),
    y: oldPos.y + 2.0 * (oldTarget.y - oldPos.y),
    z: oldPos.z + 2.0 * (oldTarget.z - oldPos.z)
};
viewer.navigation.setView(newPos, oldTarget);