在cesium中实现键盘监听控制飞机的heading pitch roll
主要参考例子:
https://sandcastle.cesium.com/index.html?src=HeadingPitchRoll.html
上述例子中的第一人称视角处理有纰漏,改进后的效果和实现的代码如下:

let canvas = viewer.canvas;
canvas.setAttribute("tabindex", "0"); // needed to put focus on the canvas
canvas.addEventListener("click", function () {
canvas.focus();
});
canvas.focus();
let scene = viewer.scene;
let pathPosition = new SampledPositionProperty();
this.planePath = viewer.entities.add({
id: "keyboardDemoPlanePath",
position: pathPosition,
// name: "path",
path: {
show: true,
leadTime: 0,
trailTime: 60,
width: 10,
resolution: 1,
material: new PolylineGlowMaterialProperty({
glowPower: 0.3,
taperPower: 0.3,
color: Color.PALEGOLDENROD
})
}
});
let camera = viewer.camera;
let controller = scene.screenSpaceCameraController;
let r = 0;
let center = new Cartesian3();
let hpRoll = new HeadingPitchRoll();
let hpRange = new HeadingPitchRange();
let speed = 1;
let deltaRadians = _Math.toRadians(3.0);
let position = Cartesian3.fromDegrees(
114.4152843,
30.512368,
5000.0
);
let speedVector = new Cartesian3();
let fixedFrameTransform = Transforms.localFrameToFixedFrameGenerator

本文介绍如何在Cesium中使用键盘控制飞行器的姿态(heading、pitch、roll),包括监听键盘事件并调整飞行器的位置与角度,实现第一人称视角等功能。
最低0.47元/天 解锁文章
623

被折叠的 条评论
为什么被折叠?



