ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

ThingJS摄像机总结

2021-08-02 20:02:54  阅读:423  来源: 互联网

标签:总结 target app 旋转 摄像机 camera ThingJS 环绕


飞行
设置摄像机的位置:镜头位置 position 和被拍摄物体的位置 target (又叫目标点)
app.camera.position = [x,y,z];
app.camera.target = [x,y,z];
app.camera.fit 聚焦到某物体:
// 盯着某一物体:设置摄像机到物体的“最佳看点”
app.camera.fit(obj);
// 盯着某一坐标点
app.camera.fit({
position: [100, 100, 100],
target: [0, 0, 0]
});
app.camera.flyTo 飞到某个位置:
// 摄像机飞到一个指定位置
app.camera.flyTo({
position: [0, 20, 20],
target: [-30, 10, 0],
time: 2 * 1000,
complete: function() {
console.log(“飞行结束”);
}
});

//飞到某物体的左侧
app.camera.flyTo({
object: obj,
xAngle: 0, //绕物体自身X轴旋转角度
yAngle: 90, //绕物体自身Y轴旋转角度
radiusFactor: 3, //物体包围盒半径的倍数
time: 1 * 1000,
complete: function() {
console.log(“飞行结束”);
}
});

app.camera.rotateAround 环绕某物体
app.camera.rotateAround({
object: obj,//环绕的物体
time: 5*1000,//环绕飞行的时间
yRotateAngle : 180,//环绕y轴飞行的旋转角度
loopType:THING.LoopType.PingPong //循环往复环绕
});
app.camera.followObject 摄像机跟随物体
app.camera.followObject(obj);
交互
move 摄像机水平移动5米:设置移动距离(水平移动,垂直移动),正负代表方向
app.camera.move(5,0);
zoom 摄像机推进10米:设置推进距离,正负代表方向
app.camera.zoom(10);
rotateAround 摄像机旋转:环绕 Y 轴、X 轴旋转10度
app.camera.rotateAround({
target: app.camera.target,
yRotateAngle: 10, // 环绕Y轴旋转角度(俯仰面(竖直面)内的角度)
xRotateAngle: 10, // 环绕X轴旋转角度(方位面(水平面)内的角度)
time: 1000 // 环绕飞行的时间
});
摄像机观察模式的切换:
var viewMode = app.camera.viewMode;
if (viewMode = “normal”) {
app.camera.viewMode = THING.CameraView.TopView; //切换成顶视图(2D)模式
}else {
app.camera.viewMode = THING.CameraView.Normal; //切换成 3D 模式
}

关闭默认的交互操作:左键旋转、右键平移、滑轮缩放
app.camera.inputEnabled=false // 关闭所有默认的交互操作(旋转、平移、缩放);

app.camera.enablePan=false // 关闭默认的平移操作;

app.camera.enableRotate=false // 关闭默认的旋转操作;

app.camera.enableZoom=false // 关闭默认的缩放操作;
设置摄像机的上下水平移动范围:摄像机转动范围
//设置摄像机水平角度范围[最小值, 最大值]
app.camera.yAngleLimitRange = [30, 60];
//设置摄像机俯仰角度范围[最小值, 最大值]
app.camera.xAngleLimitRange = [30, 60];
在地球上控制相机—在地球上使用摄像机,相关操作需要添加 isEarth 参数

  1. 使用快捷代码-地图-动态创建map
  2. 设置园区在地球上的坐标(问题:不知道坐标怎么得来的)
  3. 将摄像机飞到指定的位置时,创建园区
  4. 在earthFlyTo方法的回调函数中去创建园区
    app.camera.earthFlyTo 摄像机在地球上飞行到指定位置:
    app.camera.earthFlyTo({
    time: 3000, // 飞行时间 ms
    lonlat: sceneLonlat, // 要飞到的目标点的经纬度
    height: 200, // 摄像机离地高度
    heading: 0, // 水平角(方位角)单位:度
    pitch: 45, // 垂直角(俯仰角)单位:度
    complete: function () {
    }
    });
    摄像机水平旋转:在地球上使用摄像机,相关操作需要添加 isEarth 参数
    app.camera.rotateAround({
    isEarth: true,
    target: app.camera.target,
    yRotateAngle: 360, // 水平旋转360度
    xRotateAngle: 0, // 环绕X轴旋转角度(方位面(水平面)内的角度)
    time: 5000 // 环绕飞行的时间
    });

标签:总结,target,app,旋转,摄像机,camera,ThingJS,环绕
来源: https://blog.csdn.net/weixin_55966654/article/details/119332816

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有