cesium.js加载模型后,重新设置旋转角度属性值
// 加载模型var position = Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 计算矩阵var rollAngleDegrees = 15; // 设置翻滚角度var rollAngleRadians = Cesium.Math.toRadians(rollAngleDegrees); // 将角度转换为弧度var orientation = Cesium.Transforms.eastNorthUpToFixedFrame(position);var rollMatrix = Cesium.Matrix3.fromRotationZ(rollAngleRadians); // 创建绕 Z 轴旋转的矩阵var orientationWithRoll = Cesium.Matrix4.multiplyByMatrix3(orientation, rollMatrix, new Cesium.Matrix4());// 加载模型并设置位置和翻滚角var model = Cesium.Model.fromGltf({url: './assets/module.gltf',modelMatrix: orientationWithRoll, // 设置模型的位置和翻滚角minimumPixelSize: 16});viewer.scene.primitives.add(model);// 重新设置模型角度setTimeout(function(){// 设置父级旋转let dat2a = 0setInterval(function(){dat2a +=10var newRollAngleDegrees = dat2a; // 设置新的翻滚角度var newRollAngleRadians = Cesium.Math.toRadians(newRollAngleDegrees); // 将角度转换为弧度var newRollMatrix = Cesium.Matrix3.fromRotationY(newRollAngleRadians); // 创建新的绕 Z 轴旋转的矩阵// 获取模型的当前模型矩阵var modelMatrix = model.modelMatrix.clone();// 将新的翻滚角度应用到模型的模型矩阵中var newModelMatrix = Cesium.Matrix4.multiplyByMatrix3(modelMatrix, newRollMatrix, new Cesium.Matrix4());// 更新模型的模型矩阵model.modelMatrix = newModelMatrix;},1000)// 设置指定子名称为fly的模型旋转let dat1a = 0setInterval(function(){dat1a +=5model._nodesByName.fly.matrix = Cesium.Matrix4.fromTranslationQuaternionRotationScale(model._nodesByName.fly._runtimeNode.translation, // 平移Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Y, Cesium.Math.toRadians(dat1a)), // 绕Z轴旋转90度的四元数model._nodesByName.fly._runtimeNode.scale );},800)},3000)
cesium.js官网版本:1.1051,代码内显示版本为:1.19.11

-
首先,通过
Cesium.Cartesian3.fromDegrees方法创建了一个位置向量position,该向量表示模型在地球表面的位置,由经度、纬度和高度构成。 -
接着,通过
Cesium.Transforms.eastNorthUpToFixedFrame方法创建了一个基于给定位置的朝向矩阵orientation,用于将模型放置在地球表面并保持朝向。 -
然后,定义了一个角度变量
rollAngleDegrees,用于设置模型的翻滚角度。通过Cesium.Math.toRadians方法将角度转换为弧度。 -
使用
Cesium.Matrix3.fromRotationZ方法创建了一个绕Z轴旋转的矩阵rollMatrix,用于将模型进行翻滚。 -
使用
Cesium.Matrix4.multiplyByMatrix3方法将朝向矩阵orientation和翻滚矩阵rollMatrix相乘,得到了新的模型矩阵orientationWithRoll,用于将模型放置在地球表面并进行翻滚。 -
调用
Cesium.Model.fromGltf方法加载GLTF模型,并传入模型矩阵orientationWithRoll以及其他参数。 -
设置了一个定时器,在一段时间后开始修改模型的角度。首先通过设置父级节点的旋转角度,让整个模型绕Y轴旋转。随后通过设置子节点名称为'fly'的模型旋转,让特定子模型绕Y轴旋转。这两个旋转都是通过修改模型节点的变换矩阵来实现的。
相关文章:
cesium.js加载模型后,重新设置旋转角度属性值
// 加载模型var position Cesium.Cartesian3.fromDegrees(longitude, latitude, height);// 计算矩阵var rollAngleDegrees 15; // 设置翻滚角度var rollAngleRadians Cesium.Math.toRadians(rollAngleDegrees); // 将角度转换为弧度var orientation Cesium.Transforms.eas…...
②免费AI软件开发工具测评:通义灵码 VS 码上飞
前言 我又双叒叕来测评了!上次给大家带来的是iFlyCode和CodeFlying两款产品的测评,受到了大家的一致好评~ 今天咱就继续来聊聊,这次我们选的的对象是通义灵码和码上飞,从名字上也能看到出来这两款产品一定是跟软件开发有关系的&…...
幻兽帕鲁游戏搭建(docker)
系列文章目录 第一章: 幻兽帕陆游戏搭建 文章目录 系列文章目录前言一、镜像安装1.创建游戏目录2.拉取镜像3.下载配置文件4.启动游戏 二、自定义配置总结 前言 这段时间一直在写论文还有找工作,也没学啥新技术,所以博客也很长时间没写了&am…...
unity报错出现Asset database transaction committed twice!
错误描述: 运行时报错 Assertion failed on expression: ‘m_ErrorCode MDB_MAP_RESIZED || !HasAbortingErrors()’Asset database transaction committed twice!Assertion failed on expression: ‘errors MDB_SUCCESS || errors MDB_NOTFOUND’ 解决办法&…...
去除项目git的控制 端口号的关闭
以下操作都是在windows下。只是记录一下。 find . -name “.git” | xargs rm -rf 查看所有分支 git branch -a 查看当前分支 git branch -a 切换分支 git chenkout develop docker 查看容器的ip docker inspect -f ‘{{.Name}} - {{range .NetworkSettings.Networks}}{{.IP…...
交叉注意力融合时域、频域特征的FFT + CNN -BiLSTM-CrossAttention电能质量扰动识别模型
往期精彩内容: 电能质量扰动信号数据介绍与分类-Python实现-CSDN博客 Python电能质量扰动信号分类(一)基于LSTM模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(二)基于CNN模型的一维信号分类-CSDN博客 Python电能质量扰动信号分类(三)基于Transformer…...
简单的Charles抓包教程
安装Charles 安装地址:https://www.charlesproxy.com/download/ 开关本机抓包 一般我们在抓取手机端内容时需要将Proxy菜单栏下的Windows Proxy取消勾选,禁止charles抓取本机上的请求信息。 注:开启电脑端抓包后,会为电脑添加局…...
如何构建Docker自定义镜像
说明:平常我们使用Docker运行各种容器,极大地方便了我们对开发应用的使用,如MySQL、Redis,以及各种中间件,使用时只要拉镜像,运行容器即可。本文介绍如何创建一个Demo,自定义构建一个镜像。 开…...
一起学数据分析_2
写在前面:代码运行环境为jupyter,如果结果显示不出来的地方就加一个print()函数。 一、数据基本处理 缺失值处理: import numpy as np import pandas as pd#加载数据train.csv df pd.read_csv(train_chinese.csv) df.head()# 查看数据基本…...
请解释Redis是什么?它有哪些主要应用场景?Redis支持哪些数据类型?并描述每种数据类型的特性和使用场景。
请解释Redis是什么?它有哪些主要应用场景? Redis是一款内存高速缓存NoSQL数据库,使用C语言编写,它支持丰富的数据类型,如String、list、set、zset、hash等,并且这些数据类型都直接支持数据的原子性操作&…...
在centos8中部署Tomcat和Jenkins
参考链接1:tomcat安装和部署jenkins_jenkins和tomcat-CSDN博客 参考链接2:--配置开机启动tomcat文件 x超详细:Centos8安装Tomcat并配置开机自动启动_centos设置tomcat开机自启-CSDN博客文章浏览阅读4.4k次,点赞4次&…...
机器学习模型—K means
文章目录 机器学习模型—K means聚类的目标k 均值原理k 均值 的实现手动实现Python 实现K 的确定 手肘法总结机器学习模型—K means K-Means 聚类是一种无监督机器学习算法,它将未标记的数据集分为不同的簇。本文旨在探讨 k 均值聚类的基本原理和工作原理以及实现。 无监督机…...
QT UI设计
在QT中添加VTK 在main函数中初始化 //VTK的初始化语句 #ifndef INITIAL_OPENGL #define INITIAL_OPENGL #include <vtkAutoInit.h> VTK_MODULE_INIT(vtkRenderingOpenGL); VTK_MODULE_INIT(vtkInteractionStyle); VTK_MODULE_INIT(vtkRenderingVolumeOpenGL); VTK_MODU…...
前端小白的学习之路(CSS3 一)
提示:CSS3 是 Cascading Style Sheets(层叠样式表)的第三个主要版本,引入了许多新的特性和增强功能,用于设计和布局网页。本章记录CSS3新增选择器,盒子模型。 目录 一、C3新增选择器 1) 属性选择器 1.[c…...
春暖花开,一起来看看2024年品牌春分海报吧!
春分(Vernal equinox)已至,春花烂漫、燕子归来、百草回芽。 今天我们要分享的是2024年品牌发布的春分节气海报合集,快来随我们一起感受这昂扬、蓬勃的春意吧! (1)泸州老窖 (2)BD…...
golang面试题总结
零、go与其他语言 0、什么是面向对象 在了解 Go 语言是不是面向对象(简称:OOP) 之前,我们必须先知道 OOP 是啥,得先给他 “下定义” 根据 Wikipedia 的定义,我们梳理出 OOP 的几个基本认知: …...
BUGKU-WEB shell
题目描述 题目截图如下: 描述: $poc "a#s#s#e#r#t";$poc_1 explode("#", $poc);$poc_2 $poc_1[0].$poc_1[1].$poc_1[2].$poc_1[3].$poc_1[4].$poc_1[5];$poc_2($_GET[s])进入场景看看:是一个空白的界面 解题思路 …...
系统重构后,对项目定制开发的兼容性问题
公司自实施产品线战略以来,基本推翻了全部旧有业务模块。后续以标准产品二次开发的模式进行项目开发。但在涉及到一些旧有系统二期、三期升级改造过程中。不可避免的需要解决旧有系统的客户定制化开发兼容性问题。也就是旧有系统定制开发的模块不能丢弃。重新开发从…...
Linux---基本操作命令之用户管理命令
1.1useradd 添加新用户 root用户:/root 普通用户:/home/ 创建的用户还是david,只是在dave文件夹下 1.2 passwd 设置密码 给用户tony设置密码: 123456 1.3 id 查看用户是否存在 查看有没有这个用户:id 名字 gid:用…...
excel 破解 保护工作簿及保护工作表
excel 破解 保护工作簿及保护工作表 对于这种 保护工作簿及保护工作表 不知道密码时,可以使用以下方法破解 保护工作簿破解 打开受保存的excel 右键点击sheet名称 —> 查看代码 复制以下代码,粘贴到代码区域 Sub 工作簿密码破解() ActiveWorkbook.…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...
51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
树莓派超全系列教程文档--(62)使用rpicam-app通过网络流式传输视频
使用rpicam-app通过网络流式传输视频 使用 rpicam-app 通过网络流式传输视频UDPTCPRTSPlibavGStreamerRTPlibcamerasrc GStreamer 元素 文章来源: http://raspberry.dns8844.cn/documentation 原文网址 使用 rpicam-app 通过网络流式传输视频 本节介绍来自 rpica…...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
【Oracle APEX开发小技巧12】
有如下需求: 有一个问题反馈页面,要实现在apex页面展示能直观看到反馈时间超过7天未处理的数据,方便管理员及时处理反馈。 我的方法:直接将逻辑写在SQL中,这样可以直接在页面展示 完整代码: SELECTSF.FE…...
大语言模型如何处理长文本?常用文本分割技术详解
为什么需要文本分割? 引言:为什么需要文本分割?一、基础文本分割方法1. 按段落分割(Paragraph Splitting)2. 按句子分割(Sentence Splitting)二、高级文本分割策略3. 重叠分割(Sliding Window)4. 递归分割(Recursive Splitting)三、生产级工具推荐5. 使用LangChain的…...
Cinnamon修改面板小工具图标
Cinnamon开始菜单-CSDN博客 设置模块都是做好的,比GNOME简单得多! 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...
【论文笔记】若干矿井粉尘检测算法概述
总的来说,传统机器学习、传统机器学习与深度学习的结合、LSTM等算法所需要的数据集来源于矿井传感器测量的粉尘浓度,通过建立回归模型来预测未来矿井的粉尘浓度。传统机器学习算法性能易受数据中极端值的影响。YOLO等计算机视觉算法所需要的数据集来源于…...
RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程
本文较长,建议点赞收藏,以免遗失。更多AI大模型应用开发学习视频及资料,尽在聚客AI学院。 本文全面剖析RNN核心原理,深入讲解梯度消失/爆炸问题,并通过LSTM/GRU结构实现解决方案,提供时间序列预测和文本生成…...
力扣-35.搜索插入位置
题目描述 给定一个排序数组和一个目标值,在数组中找到目标值,并返回其索引。如果目标值不存在于数组中,返回它将会被按顺序插入的位置。 请必须使用时间复杂度为 O(log n) 的算法。 class Solution {public int searchInsert(int[] nums, …...
