vue3+vite组件中使用Cesium粒子系统

一、注意事项

1.图片的引用路径必须从根目录(即index.html所在的目录)开始,如果使用相对路径,也要返回到根目录再转到对应的目录。

//第一种,直接从根目录开始
image: 'src/assets/particles/Blowing Snow.png'//第二种,相对路径先返回到根目录,再转到对应目录
image: '../../src/assets/particles/Blowing Snow.png',

 2.将shouldAnimate设为true,  才能自动播放动画

二、组件全部代码

<template><div class="root"><div id="cesiumContainer"></div></div>
</template>
<script lang="ts" setup>
import { onMounted } from 'vue'let Cesium: any;
//计算模型坐标系的平移矩阵
function computeEmitterModelMatrix() {//定义粒子发射器的方向、俯仰角以及翻滚角var hpr = Cesium.HeadingPitchRoll.fromDegrees(0.0, 90.0, 0.0, new Cesium.HeadingPitchRoll());//定义一个由平移,旋转和缩放定义的仿射变换var trs = new Cesium.TranslationRotationScale();//火焰位置//平移trs.translation = Cesium.Cartesian3.fromElements(-10.5, 0.0, 0.0, new Cesium.Cartesian3());//旋转trs.rotation = Cesium.Quaternion.fromHeadingPitchRoll(hpr, new Cesium.Quaternion());return Cesium.Matrix4.fromTranslationRotationScale(trs, new Cesium.Matrix4());
}onMounted(() => {Cesium = window.Cesium;let key = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiIzYTBjZGFlOS01YWYzLTRkNTQtODNmYS1lMDNlODU4ZTU4N2EiLCJpZCI6MTAyNDA5LCJpYXQiOjE2NTg3MzM3NTB9.KlBMyEsHLQcZkNqlbMTj5PzQtW_10rbJ_9kkD20duuE";Cesium.Ion.defaultAccessToken = key;const Viewer = new Cesium.Viewer('cesiumContainer',{shouldAnimate:true,// 自动播放animation: true,timeline: true
});window.Viewer = Viewer;// 加载飞机模型var entity = Viewer.entities.add({model: {uri: '../../Cesium_Air.glb',minimumPixelSize: 64},position: Cesium.Cartesian3.fromDegrees(114.39264, 30.52252, 100)});//视角追踪模型Viewer.trackedEntity = entity;//计算把粒子系统从模型坐标系转到世界坐标系指定原点的矩阵const modelMatrix = Cesium.Transforms.eastNorthUpToFixedFrame(Cesium.Cartesian3.fromDegrees(114.39264, 30.52252, 100));var particleSystem = new Cesium.ParticleSystem({image: '../../src/assets/particles/Blowing Snow.png',startScale: 1.0,  //开始比例endScale: 4.0,  //结束比例particleLife: 1.0,   //粒子生命周期speed: 5.0, //粒子速度imageSize: new Cesium.Cartesian2(20, 20),   //粒子图形尺寸emissionRate: 5.0,  //每秒发射粒子个数lifetime: 16.0,   //粒子系统发射粒子的时间modelMatrix: modelMatrix,  //将粒子系统从模型转换为世界坐标的4x4转换矩阵emitterModelMatrix: computeEmitterModelMatrix() //在粒子系统局部坐标系内转换粒子系统发射器的4x4转换矩阵})Viewer.scene.primitives.add(particleSystem);});</script>
<style scoped> #cesiumContainer {position: absolute;top: 0;left: 0;width: 100%;height: 100%;}
</style>

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

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

Flink Kafka[输入/输出] Connector

本章重点介绍生产环境中最常用到的Flink kafka connector。使用Flink的同学&#xff0c;一定会很熟悉kafka&#xff0c;它是一个分布式的、分区的、多副本的、 支持高吞吐的、发布订阅消息系统。生产环境环境中也经常会跟kafka进行一些数据的交换&#xff0c;比如利用kafka con…

贝叶斯算法的故事丨机器学习一文解读

今天分享的内容是贝叶斯算法的核心原理与应用&#xff0c;接下来&#xff0c;通过一个小故事让你快速理解贝叶斯。 杰克是一位聪明的探险寻宝家&#xff0c;有一天&#xff0c;他得到了一张藏宝图&#xff0c;上面标记了宝藏可能埋藏的几个地点&#xff1a;一个古老的城堡、一个…

《深入理解C++11:C++11新特性解析与应用》笔记四

第四章 新手易学&#xff0c;老兵易用 4.1 右尖括号>的改进 在 C98 中&#xff0c;有一条需要程序员规避的规则:如果在实例化模板的时候出现了连续的两个右尖括号 >&#xff0c;那么它们之间需要一个空格来进行分隔&#xff0c;以避免发生编译时的错误。C98 会将>&g…

什么是番茄时钟?如何利用番茄时钟提升工作/学习效率?

番茄时钟的由来“传说” ​ 弗朗西斯科西里洛在上大学期间&#xff0c;一度苦于学习效率的低下&#xff0c;一直不能专注于学习&#xff0c;或学习一会就会分心&#xff0c;于是他找了一个定时器&#xff0c;每次学习时他都设定一个时间进行倒计时&#xff0c;如此反复&#x…

25、Qt设备识别(简单的密钥生成器)

一、说明 在很多商业软件中&#xff0c;需要提供一些可以试运行的版本&#xff0c;这样就需要配套密钥机制来控制&#xff0c;纵观大部分的试用版软件&#xff0c;基本上采用以下几种机制来控制。 1、远程联网激活&#xff0c;每次启动都联网查看使用时间等&#xff0c;这种方…

获取b站合集视频时长最新可用代码(2023.12.28)小白也能用

在网上搜索获取b站分集视频时长的代码&#xff0c;发现大部分都过时了 原链接&#xff1a;已过时代码链接 我对原代码做出了部分修改&#xff0c;以下代码于2023.12.28测试&#xff08;Edge浏览器&#xff09; javascript: (function() {var hour 0;var minute 0;var secon…

labuladong日常刷题-双指针 | LeetCode 83删除排序链表中的重复元素 5最长回文子串

双指针操作链表与字符串 LeetCode 83 删除排序链表中的重复元素 2023.12.28 题目链接labuladong讲解[链接] ListNode* deleteDuplicates(ListNode* head) {/*暴力求解ListNode* cur new ListNode();ListNode* prenode cur;cur->next head;cur cur->next;while(cu…

从Java 8到Java 17:Spring Boot项目升级的终极指南

Java的世界一直在进步&#xff0c;随着Java 17的发布&#xff0c;众多开发者面临着将他们的Spring Boot应用从Java 8迁移到最新版本的任务。在这篇博客中&#xff0c;我将详细介绍如何平滑、高效地完成这一升级过程。从梳理可能的挑战到实际操作步骤&#xff0c;我将为你的升级…

Vue ThreeJs实现银河系行星运动

预览 可通过右上角调整参数&#xff0c;进行光影练习 代码 <template><div id"body"></div> </template> <script>import * as THREE from three import { OrbitControls } from three/examples/jsm/controls/OrbitControls import …

网络编程『简易TCP网络程序』

&#x1f52d;个人主页&#xff1a; 北 海 &#x1f6dc;所属专栏&#xff1a; Linux学习之旅、神奇的网络世界 &#x1f4bb;操作环境&#xff1a; CentOS 7.6 阿里云远程服务器 文章目录 &#x1f324;️前言&#x1f326;️正文TCP网络程序1.字符串回响1.1.核心功能1.2.程序…

【解决方案】智能语音模块,东胜物联远场语音解决方案让控制更简单,应用于智能家居等场景

现在的天气真是冷得不想多动一下&#xff0c;又想打开取暖器&#xff1f;有了它&#xff0c;用声音就能遥控&#xff0c;今天我们就来聊聊智能语音模块。 技术概述 远场语音技术&#xff0c;采用了麦克风阵列、信号处理技术以及先进的语音识别引擎&#xff0c;使得设备能够在距…

k8s快速搭建

VMware16Pro虚拟机安装教程VMware16.1.2安装及各版本密钥CentOS7.4的安装包:提取码&#xff1a;lp6qVMware搭建Centos7虚拟机教程 搭建完一个镜像 关机 拍摄一个快照,克隆两个作为子节点 0. 环境准备 在开始之前&#xff0c;部署Kubernetes集群机器需要满足以下几个条件&#…

Android集成OpenSSL实现加解密-集成

导入so 将编译生成的 OpenSSL 动态库文件&#xff08;.so 文件&#xff09;复制到你的 Android 项目的 libs 目录中 导入头文件 将编译生成的include文件夹导入到项目中 build.gradle添加配置 defaultConfig {……testInstrumentationRunner "androidx.test.runner…

15 Sequence-Driver-Sequencer communication in UVM

我们分别讨论了sequece_item、sequence、sequencer和driver。在本节中&#xff0c;我们将讨论他们如何相互talk&#xff0c;sequencer如何给driver提供从sequence里的sequence item。在开始阅读本节之前&#xff0c;请确保您了解sequencer和driver中使用的所有方法。&#xff0…

华为鸿蒙(HarmonyOS)介绍

华为鸿蒙&#xff08;HarmonyOS&#xff09;介绍 华为鸿蒙&#xff08;HarmonyOS&#xff09;是一款由华为自主研发的操作系统&#xff0c;旨在为各种智能设备提供一种统一、高效、安全的解决方案。鸿蒙系统基于微内核架构&#xff0c;可以应用于多种类型的设备&#xff0c;鸿…

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory

pybullet安装时出现fatal error C1083: 无法打开包括文件: “string.h”: No such file or directory 报错原文&#xff1a; -----CloneTreeCreator.cppD:\Program_Professional\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\include\cstring(11): fat…

2024年开放式耳机十大品牌排名榜、开放式耳机推荐盘点

近年来&#xff0c;虽然越来越多的人开始使用开放式耳机&#xff0c;但我一直认为自己对传统耳机也还算满意&#xff0c;并不需要开放式耳机。前段时间&#xff0c;我去医院检查耳朵医生说我患有中耳炎&#xff0c;直到最近我突然意识到自己听力好像确实因为长时间佩戴入耳式耳…

为什么IDEA建议去掉StringBuilder,而要使用“+”拼接字符串

在字符串拼接时应该都见过下面这种提示&#xff1a; 大家普遍认知中&#xff0c;字符串拼接要用StringBuilder&#xff0c;那为什么idea会建议你是用呢&#xff0c;那到底StringBuilder和有什么具体区别呢&#xff0c;我们一起来探究一下。 普通拼接 普通的几个字符串拼接成一…

高级RAG(三):llamaIndex从小到大的检索

在上一篇博客&#xff1a;父文档检索器 中我们介绍了langchain中的两种父文档检索方式即&#xff1a;“检索完整文档”和“检索较大的文档块”。今天我们要介绍llamaIndex中与langchain的父文档检索有点相似的检索方法即“从小到大的检索”。 一、LlamaIndex 简介 LlamaIndex…

nest定时任务调用service报错

报错&#xff1a; ERROR [Scheduler] ValidationError: Using global EntityManager instance methods for context specific actions is disallowed. If you need to work with the global instances identity map, use allowGlobalContext configuration option or fork() i…