我想向查看器中添加一个按钮,该按钮将向用户显示模型的“反角”。我希望结果本质上是用户释放模型时所看到的结果,该模型沿着模型的中心在屏幕上完全水平拖动。
这里的用例是我们希望能够锁定视图,但使用户能够平移和查看反向角度的功能-而不启用诸如轨道或自由轨道之类的东西。
这是我到目前为止所做的:
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());
但是,当模型从枢轴平移时,这给了我们一些不良的行为-此代码将一个模型放置在屏幕中央的右边,并将其放在屏幕的左边。我想绕着自身旋转模型,就像在自由轨道上水平拖动一样。
答案 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);