Cesium 更新primitive矩阵,使primitive移动和旋转,不用每次删除再创建

这篇具有很好参考价值的文章主要介绍了Cesium 更新primitive矩阵,使primitive移动和旋转,不用每次删除再创建。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Cesium 更新primitive矩阵,使primitive移动和旋转,不用每次删除再创建,webgl,javascript,矩阵文章来源地址https://www.toymoban.com/news/detail-735201.html

let viewer = new Cesium.Viewer("cesiumContainer");
let scene = viewer.scene;

//旋转角度
let hpr = new Cesium.HeadingPitchRoll(0, 0, 0);
//位置点
let point = new Cesium.Cartesian3(110.0744619,30.0503706,100);
let origin = Cesium.Cartesian3.fromDegrees(point.x,point.y,point.z);
//初始的矩阵
const modelMatrix = Cesium.Transforms.headingPitchRollToFixedFrame(origin,hpr);

// 创建Geometry对象
var geometry = new Cesium.BoxGeometry.fromDimensions({
  dimensions: new Cesium.Cartesian3(50000.0, 50000.0, 50000.0)
});

// 创建Appearance对象
var appearance = new Cesium.MaterialAppearance({
  material: Cesium.Material.fromType('Color', {
	color: Cesium.Color.RED
  })
});
let instance = new Cesium.GeometryInstance({
  geometry: geometry
})

// 创建Primitive对象
var primitive = new Cesium.Primitive({
  geometryInstances: instance,
  appearance: appearance,
  modelMatrix: modelMatrix
});

// 添加Primitive对象到场景中
primitive = scene.primitives.add(primitive);

let rotateZ = 0;
setInterval(function(){
  rotateZ += 0.01;
  point.x += 0.01;
  origin = Cesium.Cartesian3.fromDegrees(point.x,point.y,point.z);
  hpr = new Cesium.HeadingPitchRoll(rotateZ, 0, 0);
  let temp = Cesium.Transforms.headingPitchRollToFixedFrame(origin,hpr);
  primitive.modelMatrix = temp;
},10);

到了这里,关于Cesium 更新primitive矩阵,使primitive移动和旋转,不用每次删除再创建的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Blender基础操作:移动、旋转、缩放、删除、抓取、复制

    1. 物体的移动 微调面板:Adjust last operation:对上一步操作进行微调 2.物体旋转与缩放 快速归位 几个快捷键 ALT+G 坐标归零 ALT+R 旋转归零 ALT+S 缩放归零 3.删除、抓取、复制 快捷键x:确认后删除 (视图不能缩放处理方法:选择视图》对齐视图》游标居中并查看全部/视图中心对

    2024年02月11日
    浏览(51)
  • cesium-2-entity(包含gltf创建)和primitive

    viewer -- datasources(DataSourceCollection类型) -- datasource -- entities(EntityCollection类型) -- entity 需要学习的方向是:只需要注意每个层与层之间的关系和entity实例如何创建即可 增: add(dataSource) → Promise.DataSource 删:(destroy一般为boolean,指是否需要直接销毁该datasource) remove(dataSource,

    2024年02月01日
    浏览(40)
  • 图形学基础:二维三维刚体的移动、缩放和旋转矩阵

    1.1 缩放矩阵 x,y分别表示在x轴,y轴缩放的倍数 示例: 点(2,1)在x,y轴上分别缩放x倍,y倍 1.2 平移矩阵 x,y分表表示在x轴,y轴上移动的距离 示例:点(2,1)分别在x轴,y轴上平移x距离,y距离 1.3 旋转矩阵 示例:点(x,y) 绕原点逆时针旋转θ° 示例: 点 (2,0) 绕原点旋转90° 绕

    2024年04月15日
    浏览(40)
  • 106.(cesium篇)cesium椎体旋转

    地图之家总目录(订阅之前建议先查看该博客) 下面献上完整代码,代码重要位置会做相应解释

    2024年02月03日
    浏览(52)
  • 绿盾用户使用看图软件每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看

    Win10专业版 绿盾控制台7.0 看图软件FastStone Image Viewer 绿盾用户使用看图软件FastStone Image Viewer每次都需要把图片解密之后才能打开查看,怎么才能不用这么麻烦打开就能看,用户说每次都需要把图片解密之后才能使用,实在是影响效率 需要绿盾控制台添加自定义程序 1.远程用

    2024年02月14日
    浏览(77)
  • 游戏引擎中为什么要用四元数表示旋转而不用欧拉角旋转?

    个人观点,仅供参考,如有错误可太刺激了 四元数的简单概念和使用 欧拉角通常用于表示一个物体的 旋转状态 ,而不是表示 旋转过程 。 欧拉角描述的是物体相对于某个参考坐标系的朝向或旋转状态,通常以不同的轴(例如,绕X轴、Y轴和Z轴)的旋转角度来表示。这可以让

    2024年02月06日
    浏览(58)
  • cesium 3DTileset的平移、旋转、缩放

    加载模型 平移和修改高度 方法一:

    2024年02月12日
    浏览(41)
  • 069:cesium围绕一个固定点自动左右旋转

    第069个 点击查看专栏目录 本示例的目的是介绍如何在vue+cesium中设置一个固定点为中心点,通过lookAtTransform来固化点,通过监听clock,来设置自动旋转。 直接复制下面的 vue+cesium源代码,操作2分钟即可运行实现效果. 示例效果

    2024年02月08日
    浏览(46)
  • cesium多颗卫星绕着不同的轨道旋转示例

    本示例的目的是介绍演示如何在vue+satellite项目中模拟多颗卫星的运行轨迹和覆盖状态。 直接复制下面的 vue+satellite源示例代码,操作2分钟即可运行实现效果 示例效果 配置方式 1)查看基础设置:https://xiaozhuanlan.com/topic/5180746392 2)将上述的源代码,粘贴到 src/views/Home.vue 中,

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

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

    2024年02月15日
    浏览(72)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包