请选择 进入手机版 | 继续访问电脑版
2021ThingJS数字孪生智慧场景可视化开发大赛获奖者专访
查看: 493|回复: 0

从零起头进修3D可视化之摄像机“最好看点”

[复制链接]
avatar

40

主题

40

帖子

283

积分

中级会员

Rank: 3Rank: 3

积分
283
ico_lz  楼主| 发表于 2021-7-14 15:53:51 | 显示全部楼层 |阅读模式
数字孪生可视化场景中,当摄像机看向方针物体时,一般将物体中心点作为 “看点” 的 target 位置。我了解的就是像我们拍摄时摄像机看向物体的最好角度。

可以经过相对于方针物体的坐标系下 x 轴扭转角度、 y 轴扭转角度以及距方针物体“中心”的间隔来肯定一个位置,作为“看点”的 position 位置。

比如,当( x 轴扭转角度, y 轴扭转角度,间隔)=(0,0,1)时,是在正朝向物体 Z 轴偏向上 1 倍包围球半径的位置看向物体。

从零起头进修3D可视化之摄像机“最好看点”



可是上图并不是数字孪生可视化物体的“最好看点”,ThingJS 会默许计较一个物体的“最好看点”,将数字孪生可视化物体包围盒的中心点作为“最好看点”的 target 位置。

以中心点的 X 轴扭转 45 度(xAngle:45),Y 轴扭转 -45 度偏向(yAngle:-45),2倍包围球半径间隔(radiusFactor:2)的位置为“最好看点”的 position 位置。

从零起头进修3D可视化之摄像机“最好看点”



假如需自界说 fit() 物体的摄像机位置,可控制以下参数来停止设备:

  1. app.camera.fit({
  2. 'object': obj,
  3. 'xAngle': 60, //绕物体本身X轴扭转角度
  4. 'yAngle': 30, //绕物体本身Y轴扭转角度
  5. 'radiusFactor':3, //物体包围球半径的倍数
  6. });
复制代码


经过摄像机的 lookAt() 方式,也可以让摄像机一向“盯着”某个位置或数字孪生可视化物体看,示例剧本以下:

  1. //摄像机一向“盯着”[0,0,0]点看
  2. app.camera.lookAt([0, 0, 0]); //
  3. //摄像机一向“盯着”某物体看
  4. var obj = app.query("car01")[0];
  5. app.camera.lookAt(obj);
  6. //取消摄像机一向盯着物体看
  7. app.camera.lookAt(null);
复制代码


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

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


回复

使用道具 举报

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

本版积分规则