537|1

46

帖子

0

资源

一粒金砂(中级)

从零开始学习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);

 

—————————————————

 

此帖出自传感器论坛

赞赏

1

查看全部赞赏


回复

1568

帖子

3

资源

版主

非常不错,感兴趣ing


回复
您需要登录后才可以回帖 登录 | 注册

最新文章 更多>>
    关闭
    站长推荐上一条 1/9 下一条

    About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

    站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

    北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

    电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2021 EEWORLD.com.cn, Inc. All rights reserved
    快速回复 返回顶部 返回列表