关于javascript:从零开始学习3D可视化之摄像机最佳看点

数字孪生可视化场景中,当摄像机看向指标物体时,个别将物体中心点作为 “看点” 的 target 地位。我了解的就是像咱们拍摄时摄像机看向物体的最佳角度。
能够通过绝对于指标物体的坐标系下 x 轴旋转角度、 y 轴旋转角度以及距指标物体“核心”的间隔来确定一个地位,作为“看点”的 position 地位。
比方,当( x 轴旋转角度, y 轴旋转角度,间隔)=(0,0,1)时,是在正朝向物体 Z 轴方向上 1 倍突围球半径的地位看向物体。

然而上图并不是数字孪生可视化物体的“最佳看点”,ThingJS 会默认计算一个物体的“最佳看点”,将数字孪生可视化物体突围盒的中心点作为“最佳看点”的 target 地位。
以中心点的 X 轴旋转 45 度(xAngle:45),Y 轴旋转 -45 度方向(yAngle:-45),2倍突围球半径间隔(radiusFactor:2)的地位为“最佳看点”的 position 地位。

如果需自定义 fit() 物体的摄像机地位,可管制以下参数来进行设置:

app.camera.fit({
 'object': obj,
 'xAngle': 60, //绕物体本身X轴旋转角度
 'yAngle': 30, //绕物体本身Y轴旋转角度
 'radiusFactor':3, //物体突围球半径的倍数
});

通过摄像机的 lookAt() 办法,也能够让摄像机始终“盯着”某个地位或数字孪生可视化物体看,示例脚本如下:

//摄像机始终“盯着”[0,0,0]点看
app.camera.lookAt([0, 0, 0]); //
//摄像机始终“盯着”某物体看
var obj = app.query("car01")[0];
app.camera.lookAt(obj);
//勾销摄像机始终盯着物体看
app.camera.lookAt(null);

—————————————————
数字孪生可视化:https://www.thingjs.com/

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理