从零开始学习3D可视化之摄像机“最佳看点”

在数字孪生可视化场景中,找到摄像机的最佳看点至关重要。通常,这个看点基于物体中心,通过调整相对于物体的x轴、y轴旋转角度和距离来定位。ThingJS库提供了一个自动计算物体最佳看点的功能,将包围盒中心设为目标,并推荐(45, -45, 2)作为初始视角。开发者可以使用lookAt()方法自定义摄像机的视角,以保持对特定位置或物体的聚焦。" 115272410,10100215,Django框架数据库ORM详解,"['Django框架', 'Python', '数据库']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在数字孪生可视化场景中,当摄像机看向目标物体时,一般将物体中心点作为 “看点” 的 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/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值