【cesium primitive api】 图元 api 教程(一) 修改模型矩阵实现平移效果

这篇具有很好参考价值的文章主要介绍了【cesium primitive api】 图元 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)

但这样的结果实际上这样的:很明显,这个平移不是我们想要的,cesium 用的是东北天坐标系来渲染实体的,但是我们使用的平移坐标系是固定坐标系,因此需要进行一个转换

cesium 平移,前端,js

 接下来套用链接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轴方向移动了一段距离

cesium 平移,前端,js

这篇文章接下来会继续更新,会更新一些primitve的自定义材质,或者是定义动画等文章来源地址https://www.toymoban.com/news/detail-852931.html

到了这里,关于【cesium primitive api】 图元 api 教程(一) 修改模型矩阵实现平移效果的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Cesium】计算模型的朝向四元数,实现模型运动中调整朝向

    在Cesium的使用过程中,常常需要计算模型在移动过程中的朝向,除了可以利用位置信息让Cesium自动计算之外,还可以通过一些矩阵变换的方法控制模型的朝向,本篇文章笔者记录了自己计算模型朝向信息的方法,欢迎交流~ 大致思路是先根据模型的速度信息、位置信息,建立

    2024年02月12日
    浏览(41)
  • 修改 Stable Diffusion 使 api 接口增加模型参数

     参考:https://zhuanlan.zhihu.com/p/644545784 1、修改 modules/api/models.py 中的 StableDiffusionTxt2ImgProcessingAPI 增加模型名称  2、修改 modules/api/api.py 中 text2imgapi 代码:  3、修改 modules/processing.py 中的 StableDiffusionProcessingTxt2Img ,增加模型名称接收

    2024年02月06日
    浏览(38)
  • MATLAB入门教程(6):修改矩阵中的值

      代码粘贴后并不好看,故使用图片粘贴如下。 代码部分是我在MATLAB里面加的注释版本(使用版本为MATLAB R2022a)   上一讲中提到了如何使用索引,那我们很简单的思路就是对索引值赋值即可 我们先生成矩阵A 接着我们用单向量索引A(15) 即是修改第十五个元素的值(从左到右

    2024年01月20日
    浏览(42)
  • Cesium 实战 - Blender调整模型组件原点,实现直升机尾翼旋转

    某个项目需求,在操作直升机模型的时候,希望直升机机翼和尾翼旋转起来。 机翼旋转比较容易,找到组件名称,按照之前的 《Cesium 实战 - AGI_articulations 扩展:模型自定义关节动作》设置即可实现。 但是在设置尾翼的时候,出现问题,这里记录一下问题以及解决方法。 本

    2024年02月15日
    浏览(67)
  • Cesium 修改鼠标样式

    鼠标样式,有着特别重要的提示作用,合理使用鼠标样式可以让用户对系统操作有很大理解。 Cesium中 修改鼠标样式的代码如下: 这句代码将鼠标样式变成了小手,一般表示该对象可操作,可选中,拖拽等等。 解释一下啊这个代码:_container 这个对象是我们创建viewer传入的di

    2024年02月12日
    浏览(38)
  • Cesium中常用的一些数学计算(矩阵、向量)用法——矩阵

    刚好本人最近在研究数字孪生模拟相关的专题,涉及到三维空间线代向量、矩阵相关的计算,顺便重温了一下线代,在使用的过程中遇到问题的一些总结和实用技巧在下头阐述,相信这篇文章能够给短时间接触这些API的人一些启发。 在三维中可以把矩阵的列看出变换后的基向

    2024年02月10日
    浏览(33)
  • chatgpt新版gpt-3.5-turbo模型API教程

    形式:输入一个问题,模型会生成一个结果,一问一答形式 功能:创建一个聊天接口地址:POST https://api.openai.com/v1/chat/completions (Beta) 请求参数(Request body): model: string 必须 使用的模型,只有 gpt-3.5-turbo 和 gpt-3.5-turbo-0301 两个取值 messages:array 必须 需要传入的内容,里面

    2024年02月04日
    浏览(47)
  • Python调用讯飞星火大模型v3 api接口使用教程

            这里我们可以获取星火免费赠送的200万个token使用和测试,获取方法如下:         打卡网站讯飞星火认知大模型-AI大语言模型-星火大模型-科大讯飞 ,登录用户点击免费使用                 点击购买首次应该会让创建一个应用, 如下图,按要求内容随意填写

    2024年02月05日
    浏览(44)
  • 星火认知大模型API接入Python教程,中文回答效果非常友好

    地址大概是这个: 自己创建一个应用: 进入控制台: 注意:我已经申请好了,如果你需要使用,需要提交一个申请,一般第二天通过。 我们可以看到右侧有三个参数:APPID、APISecret、APIKey,填入下方代码的main中即可: 运行如下: 似乎看起来跟GPT4.0回答差不多?总体效果还

    2024年02月13日
    浏览(35)
  • Cesium中常用的一些数学计算(矩阵、向量)用法——向量

    刚好本人最近在研究数字孪生模拟相关的专题,涉及到三维空间中跟线代相关的计算,顺便重温了一下现代,在使用的过程中遇到的一些总结和实用技巧在下头阐述,相信这篇文章能够给短时间接触这些API的人一些启发。 不同人看向量存在着差异。物理专业学生的视角,向量

    2024年02月10日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包