Cesium 更新primitive矩阵,实现primitive移动和旋转

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);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值