cesium键盘控制模型

效果:

由于对添加模型和更新位置api进行二次了封装,下面提供思路

1.添加模型

const person = reactive({
  modelTimer: null,
  position: {
    lon: 104.07274,
    lat: 30.57899,
    alt: 1200,
    heading: 0,
    pitch: 0,
    roll: 0,
  },
});  
window.swpcesium.addEntity.addModel({
    id: "model",
    position: person.position,
    config: {
      url: "./model/f18.gltf",
      minSize: 200,
      maxSize: 300,
    },
  });

2.监听键盘事件并更新模型位置

// 添加键盘监听事件
document.addEventListener("keydown", function (e) {
  switch (e.keyCode) {
    // 抬头
    case 38:
      person.position.pitch += 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("抬头");
      break;
    // 低头
    case 40:
      person.position.pitch -= 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("低头");
      break;

    // 左转
    case 37:
      person.position.heading -= 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("左转");
      break;
    // 右转
    case 39:
      person.position.heading += 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("右转");
      break;
    // 顺时针
    case 96: // 0
      person.position.roll += 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("顺时针翻滚");
      break;

    // 逆时针
    case 110:
      person.position.roll -= 5;
      window.swpecesium.addEntity.transform({
        id: "model",
        position: person.position,
      });
      console.log("逆时针翻滚");
      break;

    default:
      break;
  }
});

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/297602.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

主流大语言模型从预训练到微调的技术原理

引言 本文设计的内容主要包含以下几个方面: 比较 LLaMA、ChatGLM、Falcon 等大语言模型的细节:tokenizer、位置编码、Layer Normalization、激活函数等。大语言模型的分布式训练技术:数据并行、张量模型并行、流水线并行、3D 并行、零冗余优…

【教学类-43-16】 20240106 推算5-9宫格数独可能出现的不重复题量(N宫格数独模板数量的推算)

作品展示: 通过对各种已有结果的人工推算,目前得到两个结论 一、阶乘基本样式的数量【【123】【321】【231】【132】【312】【312】】6组 结论:阶乘等于出现的基本样式数量 以下N*N格会出现的最大排序数量(比如包含333222111这种…

玩转爱斯维尔 LaTeX 模板:定制技巧一网打尽!

简介 关于 LaTeX 小编写过一些推文: 适合撰写课程论文的 LaTeX 模板; LaTeX 常用数学符号汇总; 免费升级 overleaf 高级账户!; 如何下载使用期刊的 LaTeX 模板 本文基于常用的 Elsevier 期刊模板,小编分享个人常用的使用技巧&#xff0…

nvidia-smi 完整查看显卡型号

当我们在使用nvidia-smi查看显卡的型号的时候,会发现出现如下问题: 可以看到我们此时无法看到显卡的准确型号,只能看到NVIDIA GeForce ... 解决方法:使用如下命令即可完整显示显卡型号 nvidia-smi -L 如下所示:

APP自动化测试工具:八款推荐解析

如果想学习提升找不到资料,没人答疑解惑时,请及时加入群:1150305204,里面有各种测试开发资料和技术可以一起交流哦。 uiautomator2 github地址:github.com/openatx/uia… UiAutomator 是 Google 提供的用来做安卓自动…

C语言中灵活多变的动态内存,malloc函数 free函数 calloc函数 realloc函数

文章目录 🚀前言🚀管理动态内存的函数✈️malloc函数✈️free函数✈️calloc函数✈️realloc函数 🚀在使用动态内存函数时的常见错误✈️对NULL指针的解引用✈️ 对动态开辟空间的越界访问✈️对非动态开辟内存使用free释放✈️使用free释放一…

新手养布偶猫如何选择猫主食冻干?K9、sc、希喂三个品牌推荐!

布偶猫是食肉动物,但由于肠胃脆弱敏感,所以在饮食上需要特别关注哦!为了给它们最好的呵护,现在有了主食冻干这种优质猫主食!它不仅符合猫咪的天然饮食习惯,还用了新鲜生肉做原料呢!营养满分不说…

我的隐私计算学习——联邦学习(2)

笔记内容来自多本书籍、学术资料、白皮书及ChatGPT等工具,经由自己阅读后整理而成 (三)联邦学习的算子 ------------------------ 算子是什么?--------------------------- ​ 从广义上讲,对任何函数进行某一项操作都可…

设计模式学习2

代理模式:Proxy 动机 “增加一层间接层”是软件系统中对许多复杂问题的一种常见解决方案。在面向对象系统中,直接食用某些对象会带来很多问题,作为间接层的proxy对象便是解决这一问题的常见手段。 2.伪代码: class ISubject{ pu…

SPI知识大全

目录 SPI介绍SPI分为硬件SPI与软件SPISPI工作模式和时序图硬件SPI编写软件SPI编写拓展: SPI介绍 SPI(Serial Peripheral Interface)是一种常用的通信接口,用于在两个设备之间进行数据传输。它通常用于板级通信,具有高…

SolidUI Gitee GVP

感谢Gitee,我是一个典型“吃软不吃硬”的人。奖励可以促使我进步,而批评往往不会得到我的重视。 我对开源有自己独特的视角,我只参与那些在我看来高于自身认知水平的项目。 这么多年来,我就像走台阶一样,一步一步参与…

Redis——centos7环境安装Redis6.2.14版本,make命令编译时报错:jemalloc/jemalloc.h:没有那个文件或目录

一、报错原因 在redis-6.2.14文件夹下有一个README.md文件,有如下一段话: 在构建 Redis 时,通过设置 MALLOC 环境变量来选择非默认的内存分配器。Redis 默认编译并链接到 libc malloc,但在 Linux 系统上,jemalloc 是…

AntV-G6 -- 将G6图表应用到项目中

1. 效果图 2. 安装依赖 npm install --save antv/g6 3. 代码 import { useEffect } from alipay/bigfish/react; import G6 from antv/g6;const data {id: root,label: 利息收入,subLabel: 3,283.456,ratio: 3,children: [{id: child-a,label: 平均利息,subLabel: 9%,ratio:…

【airsim】python控制airsim

使用airsim 1.8.1编译完成,进过block项目在cpp测试后,开始踩坑使用python。 使用AirSim\PythonClient\setup.py或者pip安装airsim。 python setup.py install或者 pip install airsim此时,windows电脑的环境信息 (air_py38) D:\code\Gith…

JDBC数据库访问——数据库操作

与指定的数据库建立连接后,就可以使用JDBC提供的API对数据库进行操作,包括查询、新增、更新、删除等。 1.查询操作 和数据库建立连接后,对数据库表进行查询操作的步骤如下: ①创建statement对象 由已创建的Connection对象con调…

PID各种算法的基本优缺点

PID时间系数对PID本身的影响 积分时间过小积分作用增强。 微分时间过大,微分控制作用过强,容易产生振荡。 在这里的时间系统,一般指的是采样的时间,也就是PID控制的周期。在无人机当中一般采用10ms控制一次。 一般来说采样周期越小…

【Docker】容器的相关命令

上一篇:创建,查看,进入容器 https://blog.csdn.net/m0_67930426/article/details/135430093?spm1001.2014.3001.5502 目录 1. 关闭容器 2.启动容器 3.删除容器 4.查看容器的信息 查看容器 1. 关闭容器 从图上来看,容器 aa…

如何在 Xftp 中使用自定义编辑器编辑远程服务器文件

1、简介 很多时候我们使用 Xshell 远程登录linux服务器进行文本编辑,通过命令行窗口难以进行快速编辑,因此,借助 Xftp 工具,指定文本编辑器,能够快速帮助我们实现文本编辑。 2、Xftp 使用 在上文中(https:…

软件工程概论------文件管理

目录 1.文件的相关概念 2.文件目录 3.位示图 4.索引文件 5.例题 1.文件的相关概念 文件:具有符号名的、在逻辑上具有完整意义的一组相关信息项的集合。 逻辑结构:有结构的记录式文件、无结构的流式文件。 物理结构: 连续结构、链接结构、索引结构、多个物理块的索引表。 …

乔布斯在斯坦福大学经典演讲

今天,很荣幸来到各位从世界上最好的学校之一毕业的毕业典礼上。我从来没从大学毕业过,说实话,这是我离大学毕业最近的一刻。 今天,我只说三个故事,不谈大道理,三个故事就好。 第一个故事,是关于…
最新文章