cesium primitive api 修改模型矩阵实现平移效果

cesium 图元 api

Cesium是一个基于WebGL的开源虚拟地球软件开发库,提供了丰富的API,其中包括图元

API和实体API。

异同点:

  1. 相同点:图元API和实体API都是用来绘制三维场景中的对象,包括点、线、面等各种形状。

  2. 不同点:

  • 数据结构不同:图元API的数据结构基于Geometry和Appearance两个独立的对象,而实体API的数据结构则是继承于Entity对象。
  • 功能不同:实体API可以存储属性信息,比如位置、颜色、大小、标签等,而图元API则不支持存储属性信息。
  • 复杂度不同:图元API支持更为复杂的几何结构,可以绘制更为复杂的形状,而实体API则更适用于绘制简单的点、线、面等对象。
  • 兼容性不同:实体API兼容KML和GeoJSON数据格式,而图元API则不支持这些数据格式。

综上所述,图元API适用于需要更加灵活和复杂的场景,而实体API则更适用于简单的三维场景以及与其他数据源的集成。

上面的资料使用csdn 创作助手实现的,这么智能吗,省去查找资料的过程。

对图元进行平移

其实这个问题也找过ai,但是ai给出的答案存在明显的错误,如果我们要对一个primitive 进行平移操作,直接给他一个新的变换矩阵不就好了吗,实际上是的,但只是最终效果和我们想要的不是很同。

你可以看看这篇博文,了解一下不同的地方:

链接1:

(3条消息) [Cesium]cesium里面的坐标系、相互转换关系以及平移问题_cesium transform_程老师2088的博客-CSDN博客https://blog.csdn.net/chengzhf/article/details/120250233?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522168955808216800197010667%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=168955808216800197010667&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-120250233-null-null.142%5Ev88%5Econtrol_2,239%5Ev2%5Einsert_chatgpt&utm_term=cesium%20%E5%B9%B3%E7%A7%BB&spm=1018.2226.3001.4187

可能你的一般思路也许是这样:也就是直接在z轴方向加上50 米

const translation = new Cesium.Cartesian3(0, 0, 50) // x、y、z 分别表示平移的距 
p.modelMatrix = Cesium.Matrix4.fromTranslation(translation)

但这样的结果实际上这样的:很明显,这个平移不是我们想要的,其实我也不是很明白这个原因,渲染到世界坐标系之后

 接下来套用链接1博文中的代码,虽然那个代码是对实体进行操作,但是修改一下也能用于图元:

这个代码排版真丑,在我的IDE 里面是正常的

           const p = pickedObject.primitive; // 从pickedObject中获取primitive
// 定义平移的距离const translation = new Cesium.Cartesian3(0, 0, 50); // x、y、z 分别表示平移的距离
// 获取模型的中心点, 你也可以访问boundingSphere来获取外接球,但这个属性需要在primitive 构建时指定,否则就只有访问这个私有属性const center = p._boundingSpheres[0].center;
// 将坐标系从东北天坐标系转换为固定坐标系const transform = Cesium.Transforms.eastNorthUpToFixedFrame(center);
// 将平移向量与转换矩阵相乘得到结果const result = Cesium.Matrix4.multiplyByPoint(transform, translation, new Cesium.Cartesian3());
// 将结果与中心点相减,得到相对于世界坐标系的平移向量const world_translation = Cesium.Cartesian3.subtract(result, center, new Cesium.Cartesian3());
// 使用平移向量创建模型矩阵,并将其赋值给p的modelMatrix属性p.modelMatrix = Cesium.Matrix4.fromTranslation(world_translation);

看看效果图:这次确实是在z轴方向移动了一段距离

这篇文章接下来会继续更新,会更新一些primitve的自定义材质,或者是定义动画等

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

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

相关文章

SSM之SpringMVC day01

今日内容 理解SpringMVC相关概念完成SpringMVC的入门案例学会使用PostMan工具发送请求和数据掌握SpringMVC如何接收请求、数据和响应结果掌握RESTful风格及其使用完成基于RESTful的案例编写 SpringMVC是隶属于Spring框架的一部分,主要是用来进行Web开发,…

20230316英语学习

篇目1 Why We Forget Most of the Books We Read 为啥读过的书我们大多都会忘记? Pamela Paul’s memories of reading are less about words and more about the experience.“I almost always remember where I wasand I remember the book itself.I remember th…

20230320英语学习

篇目1 The Myth of Sustainable Fashion 时尚行业,能否实现可持续发展? Few industries tout their sustainability credentials more forcefully than the fashion industry.Products ranging from swimsuits to wedding dresses are marketed as carb…

雷军入局ChatGPT大战...

14号,小米CEO雷军在微博宣布,正在研发一些“有趣的技术和产品”。 雷军称,此前曾多次被问及对于大模型和AIGC的看法。 此次,雷军正式对这些问题公开进行回应,表示“在AI领域已经耕耘多年”,对大模型“当然会…

MiniGPT4,开源了!

梦晨 发自 凹非寺量子位 | 公众号 QbitAI GPT-4识图功能迟迟不开放,终于有人忍不住自己动手做了一个。 MiniGPT-4来了,Demo开放在线可玩。 传一张海鲜大餐照片上去,就能直接获得菜谱。 传一张商品效果图,就可以让AI写一篇带货文案…

别再纠结 GPT-4 了,最强平替 MiniGPT4 开源了,完全免费!

ChatGPT狂飙160天,世界已经不是之前的样子。 我新建了人工智能中文站https://ai.weoknow.com 每天给大家更新可用的国内可用chatGPT资源 GPT-4识图功能迟迟不开放,终于有人忍不住自己动手做了一个。 MiniGPT-4来了,Demo开放在线可玩。 传一…

Midjourney最新「平移扩图」玩法,自定义无限延展,轻松创造超长画卷

尚恩 发自 凹非寺量子位 | 公众号 QbitAI 玩扩图,Midjourney是认真的。 现在只要几个指令,就能轻松创造超长画卷。 我们先来看一张图,这张是原来的图: 这是经过自定义扩充后的效果,是酱婶儿: 这就是Midjour…

文心一言APP国区可下载!免费体验120+玩法,超多新花样!

编辑 | 量子位 点击下方卡片,关注“自动驾驶之心”公众号 ADAS巨卷干货,即可获取 本文只做学术分享,如有侵权,联系删文 终于,正版百度文心一言APP上架苹果商店了! (此前百度因为盗版文心一言APP…

掌握Tampermonkey,让网页玩出新花样

掌握Tampermonkey,让网页玩出新花样 何为Tampermonkey?Tampermonkey有何神通?操作示例 今天我要向朋友们介绍一个超酷的浏览器插件,Tampermonkey。我把它称之为一根神奇的魔法棒,可以让你对网页的玩法、样式和功能实现自定义。 熟…

歌神影帝:搞过数据库的人,职业宽度超乎你的想象

人工智能时代,AI 会取代很多工种,数据处理、数据库运维等等,都会慢慢的演进到自动化时代,ChatGPT 已经为行业带来了深刻影响。 而我们如果不做数据库,还能从事什么岗位的工作呢? 答案可以有:歌神…

人工智能时代,有哪些新的职业机会?

人工智能技术的发展和应用对社会产生的影响非常大,尤其是近期接连而来ChatGPT,GPT4,让很多圈外人都对人工智能产生了更大的兴趣,人工智能技术带给我们方便的同时,也带给了我们焦虑,大家都在思考一个问题&am…

最高年薪近56万!2023最新AIGC就业趋势报告出炉

【导读】猎聘大数据研究院重磅发布《AIGC就业趋势大数据报告2023》,招聘平均年薪已达40万,博士需求量同比增长超100%。 不用赘述,大家都知道,最近半年ChatGPT是有多么火爆。 随着ChatGPT的全球爆火,AIGC也已成功从科…

7800 个工作岗位危矣,AI 对大厂发起“进攻”?

整理 | 屠敏 出品 | CSDN(ID:CSDNnews) “人类工作岗位即将被 AI 所取代”,当这一危言耸听的言论照进现实,从业者过往眼中的“铁饭碗”也将不复存在。 据彭博社报道,IBM 成为首家公开支持 AI 取代人类劳动力…

chatgpt赋能Python-python_contour图

Python Contour图:图像处理和分析的重要工具 Contour图是一种在图像处理和分析中非常常用的工具。在Python的科学计算库中,包括NumPy和Matplotlib,Contour图有着广泛的应用。Contour图的主要作用是用等高线来展示二维区域的数值分布状况&…

chatgpt赋能python:Python中按钮的位置摆放

Python中按钮的位置摆放 在Python应用程序中,按钮是常见的交互元素之一。按钮通常用于响应用户的操作,例如提交表单或执行某些功能。然而,在设计应用程序时,按钮的位置是一个重要的问题,因为它将直接影响用户体验和应…

chatgpt赋能python:Pythonrjust方法的用法及优势

Python rjust 方法的用法及优势 在Python编程语言中,有很多内置方法或函数可以帮助我们更加方便地处理文本、字符串和数字等数据类型。其中,rjust()方法就是一个非常实用的方法,它可以在字符串的左侧填充指定数量的空格或其他字符。本文将向…

chatgpt赋能python:Python桌面编程:探索图形用户界面

Python桌面编程:探索图形用户界面 Python是一种广受欢迎的高级编程语言,被广泛应用于数据科学、人工智能、Web开发和自动化。但是,随着越来越多的应用程序向图形用户界面(GUI)转移,Python的桌面编程能力也…

chatgpt赋能Python-pythonyolo

Python YOLO - 重新定义物体检测 随着人工智能技术的发展,物体检测成为了一项非常重要的任务,而Python YOLO作为一种新兴的物体检测技术,受到了越来越多人的关注。那么,Python YOLO究竟是什么,以及它有何优势呢&#…

树莓派系列-6-Qt控制树莓派GPIO(3B V1.2)

Qt 控制树莓派GPIO ​ 今天来个临时小任务,使用树莓派通过GPIO引脚控制继电器开关。 文章目录 Qt 控制树莓派GPIO系统安装安装Qt树莓派引脚图在Shell中测试在Qt中编码在pro中包含库Cpp代码 实物图资源链接 关键字: 树莓派3B、Qt、GPIO、继电器、控制 系…

树莓派系统的安装教程

大家好,我是爱吃饼干的小白鼠,今天就和大家说说如何安装树莓派的系统。 在这里,我简单介绍一下什么是树莓派? 树莓派(Raspberry Pi)是尺寸仅有信用卡大小的一个小型电脑,您可以将树莓派连接电视…