Cesium 视角跟随-第一人称视角漫游
创始人
2025-06-01 12:55:00

Cesium 视角跟随-第一人称视角漫游

    • 实现思路
    • 核心代码
    • 在线示例

作为三维项目,以第一人称视角漫游是比较常见的需求,而 Cesium 默认是不带此功能,因此需要自己实现。

在网上几乎没有发现完整的实现示例,大多都是部分代码或者提供思路,经研究,终于实现功能,这里记录一下。

本文包括实现思路、核心代码以及在线示例三部分。


实现思路

在最开始的时候,作者以为官方会有类似于 viewer.trackedEntity = entity; 的方法来实现第一人称视角,结果找半天并没有发现。

后来,想的是通过 viewer.camera.setViewviewer.camera.lookAtTransform 之类的方式实现,结果尝试很多次并没有成功。

viewer.camera.lookAtTransform 也可以实现固定视角,但是没找到如何改变仰角,效果不太好,因此放弃。

最后改变思路,尝试实时监听飞行状态,通过 viewer.camera.lookAt 动态修改视角,实现第一人称视角飞行。

在调整模型角度的时候,因网上的碎片代码,并没有完美设置模型的方向与姿态,稍微花了点时间调整。


完成第一视角跟随之后,还需要取消跟随,按照常规来说,有绑定就应该有解绑。

通过 onTickEvent = viewer.clock.onTick.addEventListener 绑定,作者认为是 viewer.clock.onTick.removeEventListener,结果发现直接调用一次方法也可以,这样更省事:onTickEvent()

至此,第一视角跟随功能已可以完全实现!


核心代码

这里贴上核心代码,具体解释详见注释信息。


// 获取当前模型方向和位置
// entityB2 为模型对象
const orientation = entityB2.orientation;
const position = entityB2.position;// 实时调整位置
function adjust() {if (viewer.clock.shouldAnimate === true) {// 获取偏向角let ori = orientation.getValue(viewer.clock.currentTime); // 获取位置let center = position.getValue(viewer.clock.currentTime);// 1、由四元数计算三维旋转矩阵var mtx3 = Cesium.Matrix3.fromQuaternion(ori);// 2、计算四维转换矩阵:var mtx4 = Cesium.Matrix4.fromRotationTranslation(mtx3, center);// 3、计算角度:var hpr = Cesium.Transforms.fixedFrameToHeadingPitchRoll(mtx4);// 获取角度(弧度)const headingTemp = hpr.heading;const pitchTemp = hpr.pitch;// 调整角度为第一人称,注意调整的角度const heading = Cesium.Math.toRadians(Cesium.Math.toDegrees(headingTemp) + 90);const pitch = Cesium.Math.toRadians(Cesium.Math.toDegrees(pitchTemp) - 12);// 视角高度,根据模型大小调整const range = 140.0;// 动态改变模型视角viewer.camera.lookAt(center, new Cesium.HeadingPitchRange(heading, pitch, range));}
}onTickEvent = viewer.clock.onTick.addEventListener(adjust);setTimeout(function (){alert('您现在可以拖动了!');// 关闭视角跟随onTickEvent && onTickEvent();
},10000);

在线示例

示例中展示了, 三维地图第一人称飞行

在线示例中,使用的官方模型,有需要 B2 轰炸机模型的可以 点击下载。

Cesium 沙盒测试

三维地图第一人称飞行

在这里插入图片描述


参考博客:

Cesium中的相机—setView&lookAtTransform
cesium飞行第一视角
Cesium 设置entity的姿态及获取entity的hpr(仰俯角、偏转角、翻滚角)
如何在Cesium中停用onTick方法

相关内容

热门资讯

汽车搭电一次多少钱(汽车搭电大... 今天给各位分享汽车搭电一次多少钱的知识,其中也会对汽车搭电大概多少钱进行解释,如果能碰巧解决你现在面...
宝马跑车敞篷价格(宝马跑车敞篷... 本篇文章极速百科给大家谈谈宝马跑车敞篷价格,以及宝马跑车敞篷价格图片对应的知识点,希望对各位有所帮助...
cbr650r(cbr650r... 本篇文章极速百科给大家谈谈cbr650r,以及cbr650r座高对应的知识点,希望对各位有所帮助,不...
在哪买机票最便宜(在哪买机票最... 今天给各位分享在哪买机票最便宜的知识,其中也会对在哪买机票最便宜票进行解释,如果能碰巧解决你现在面临...
etc办理点(etc办理点节假... 今天给各位分享etc办理点的知识,其中也会对etc办理点节假日休息吗进行解释,如果能碰巧解决你现在面...
宝马1181报价及图片(宝马1... 今天给各位分享宝马1181报价及图片的知识,其中也会对宝马1181报价及图片及价格进行解释,如果能碰...
限行处罚扣分吗(限行被扣分吗)... 本篇文章极速百科给大家谈谈限行处罚扣分吗,以及限行被扣分吗对应的知识点,希望对各位有所帮助,不要忘了...
车车(车车车念什么) 车车 车... 今天给各位分享车车的知识,其中也会对车车车念什么进行解释,如果能碰巧解决你现在面临的问题,别忘了关注...
毕节景点(毕节景点排名) 毕节... 本篇文章极速百科给大家谈谈毕节景点,以及毕节景点排名对应的知识点,希望对各位有所帮助,不要忘了收藏本...
二手车提档后上牌流程(二手车提... 今天给各位分享二手车提档后上牌流程的知识,其中也会对二手车提档上牌流程及费用进行解释,如果能碰巧解决...
高速路免费到几号(春节后高速路... 本篇文章极速百科给大家谈谈高速路免费到几号,以及春节后高速路免费到几号对应的知识点,希望对各位有所帮...
东本(东本与广本谁的质量好) ... 今天给各位分享东本的知识,其中也会对东本与广本谁的质量好进行解释,如果能碰巧解决你现在面临的问题,别...
朗动和k3哪个好(k3和朗动哪... 本篇文章极速百科给大家谈谈朗动和k3哪个好,以及k3和朗动哪个更值得购买对应的知识点,希望对各位有所...
路虎敞篷suv(路虎敞篷suv... 今天给各位分享路虎敞篷suv的知识,其中也会对路虎敞篷suv揽胜极光价格进行解释,如果能碰巧解决你现...
莱阳到烟台动车(莱阳到烟台动车... 今天给各位分享莱阳到烟台动车的知识,其中也会对莱阳到烟台动车时刻表高铁时刻表进行解释,如果能碰巧解决...
雪佛兰跑车(迪士尼雪佛兰跑车)... 今天给各位分享雪佛兰跑车的知识,其中也会对迪士尼雪佛兰跑车进行解释,如果能碰巧解决你现在面临的问题,...
郑州限号时间段(郑州限号时间段... 本篇文章极速百科给大家谈谈郑州限号时间段,以及郑州限号时间段几点到几点中牟对应的知识点,希望对各位有...
2019滴滴车型库(2019滴... 今天给各位分享2019滴滴车型库的知识,其中也会对2019滴滴车型一览表进行解释,如果能碰巧解决你现...
鹤壁到郑州高铁(鹤壁到郑州高铁... 今天给各位分享鹤壁到郑州高铁的知识,其中也会对鹤壁到郑州高铁多少公里进行解释,如果能碰巧解决你现在面...
石家庄高铁站是哪个站(石家庄高... 本篇文章极速百科给大家谈谈石家庄高铁站是哪个站,以及石家庄高铁站是哪个站下车对应的知识点,希望对各位...
23路公交车时间表(顺义23路... 本篇文章极速百科给大家谈谈23路公交车时间表,以及顺义23路公交车时间表对应的知识点,希望对各位有所...
阳春高铁最新消息(阳春高铁最新... 本篇文章极速百科给大家谈谈阳春高铁最新消息,以及阳春高铁最新消息今天对应的知识点,希望对各位有所帮助...
郑州外地车限行规定(郑州外地车... 本篇文章极速百科给大家谈谈郑州外地车限行规定,以及郑州外地车限行规定时间对应的知识点,希望对各位有所...
成都地铁7号线运营时间(成都地... 本篇文章极速百科给大家谈谈成都地铁7号线运营时间,以及成都地铁7号线运营时间表2022对应的知识点,...
世界最好的车(世界最好的车是什... 今天给各位分享世界最好的车的知识,其中也会对世界最好的车是什么牌子 排名进行解释,如果能碰巧解决你现...
k1136次列车途径车站(k1... 本篇文章极速百科给大家谈谈k1136次列车途径车站,以及k1136次列车途经站点对应的知识点,希望对...
特斯拉suv(特斯拉suv30... 今天给各位分享特斯拉suv的知识,其中也会对特斯拉suv30万左右进行解释,如果能碰巧解决你现在面临...
成都高铁站在哪里(成都高铁站是... 本篇文章极速百科给大家谈谈成都高铁站在哪里,以及成都高铁站是哪个站台对应的知识点,希望对各位有所帮助...
丰田小型车(广汽丰田小型车) ... 本篇文章极速百科给大家谈谈丰田小型车,以及广汽丰田小型车对应的知识点,希望对各位有所帮助,不要忘了收...
大指挥官报价2018(2021... 今天给各位分享大指挥官报价2018的知识,其中也会对2021大指挥官车型进行解释,如果能碰巧解决你现...