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: // 0person.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.hqwc.cn/news/322797.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux第3步_安装Ubuntu操作系统

创建好虚拟机后,就可以安装Ubuntu操作系统了。 1、双击“VMware Workstation Pro”,得到下面的界面。 2、点击“编辑虚拟机设置”,见下图: 3、等几秒钟,得到下面的界面: 4、点击“CD/DVD”,得到…

Vue电商后端管理API接口测试

引言 最近有人在学习接口自动化测试时没有接口练手,其实接口的话,要么找第三方提供的,要么自己开发。第三方在线API需要认证,并且普通的话每天调用次数有一定的限制。自己开发的话,只要不停电,想怎么用就怎…

上帝视角俯视工厂设计模式

引言 本篇聊聊设计模式中的简单工厂、工厂方法、抽象工厂设计模式,争取在看完这篇后不会再傻傻分不清以及能够应用在实际项目中 背景 以一个咱们都熟悉的场景举个例子,我们平时都会戴口罩,用来过滤一些普通病毒,大致的设计如下…

听GPT 讲Rust源代码--compiler(13)

File: rust/compiler/rustc_data_structures/src/flat_map_in_place.rs 文件flat_map_in_place.rs定义了名为FlatMapInPlace的trait和它的相关实现。 FlatMapInPlace<T>是一个泛型trait&#xff0c;表示可以将一个项目转换为另一个项目并且可以原地完成转换的类型。具体来…

Linux第14步_安装FTP服务器

安装“vim编辑器”后&#xff0c;我们紧接着“安装FTP服务器”。 1、在安装前&#xff0c;要检查虚拟机可以上网&#xff0c;否则可能会导致安装失败。 2、在虚拟机界面右击鼠标&#xff0c;弹出下面的对话框 3、点击“打开终端(E)”&#xff0c;得到下面的界面 &#xff1a;…

苹果怎么同步备忘录?教程来了,干货满满!

在苹果设备中&#xff0c;备忘录是一款非常实用的应用程序&#xff0c;可用于记录日常生活中的各种事项。然而&#xff0c;还有一些小伙伴不知道苹果怎么同步备忘录&#xff0c;这可能会成为他们的一个困扰。别着急&#xff01;本文将详细介绍同步苹果手机备忘录的方法&#xf…

D6208 单片双向马达驱动芯片 ,噪声低 工作电源电压范围宽

D6208 是一块单片双向马达驱动电路&#xff0c;它使用TTL电平的逻辑信号就能控制卡式录音机和其它电子设备中的双向马达。该电路由一个逻辑部分和一个功率输出部分组成。逻辑部分控制马达正、反转向及制动&#xff0c;功率输出部分根据逻辑控制能提供100mA&#xff08;典型值&a…

PHP运行环境之宝塔软件安装及Web站点部署流程

PHP运行环境之宝塔软件安装及Web站点部署流程 1.1安装宝塔软件 官网&#xff1a;https://www.bt.cn/new/index.html 自行注册账号&#xff0c;稍后有用 下载安装页面&#xff1a;宝塔面板下载&#xff0c;免费全能的服务器运维软件 1.1.1Linux 安装 如图所示&#xff0c;宝…

什么是DigiCert证书?

DigiCert作为全球知名的证书颁发机构&#xff0c;以其卓越的品质和全面的服务&#xff0c;为用户的数据安全保驾护航。 一、为何选择DigiCert证书&#xff1f; 权威认证&#xff1a;DigiCert与全球众多知名企业和政府机构合作&#xff0c;拥有广泛的认可度。高安全性&#xff…

Springboot整合RocketMQ 基本消息处理

目录 1. 同步消息 2. 异步消息 3. 单向消息 4. 延迟消息 5. 批量消息 6. 顺序消息 7. Tag过滤 导入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-spring-boot-starter</artifactId></dependency> …

GraphQL和REST API的区别

我的新书《Android App开发入门与实战》已于2020年8月由人民邮电出版社出版&#xff0c;欢迎购买。点击进入详情 GraphQL&#xff08;Graph Query Language&#xff09;和REST&#xff08;Representational State Transfer&#xff09;是两种用于构建和设计API的不同方法。以下…

UseContentHash选项能否在打包AssetBundle时计算可靠的Hash

1&#xff09;UseContentHash选项能否在打包AssetBundle时计算可靠的Hash 2&#xff09;如何清理Native Reserved部分的内存 3&#xff09;Addressables资源完整性校验 4&#xff09;通过Image.color和CanvasRenderer.SetColor修改UI组件颜色的区别 这是第368篇UWA技术知识分享…