Cesium 3dtiles 模型姿态调整

//模型加载  

this.iveModel = new Cesium .Cesium3DTileset({

        url: this.path

      });

      var primitives = this.viewer.scene.primitives.add(this.iveModel);

        primitives.readyPromise.then(t => {

          var originalSphere = t.boundingSphere;

          var radius = originalSphere.radius;

          var matrix = this.RotatePanByMatrix();

          this.iveModel._root.transform = matrix;

      setTimeout(() => {

        this.viewer.zoomTo(this.iveModel);

      }, 500);

        });

//模型

  //旋转 rx ry rz 旋转角

      var mx = Cesium .Matrix3.fromRotationX(Cesium .Math.toRadians(Number(this.rx)));

      var my = Cesium .Matrix3.fromRotationY(Cesium .Math.toRadians(Number(this.ry)));

      var mz = Cesium .Matrix3.fromRotationZ(Cesium .Math.toRadians(Number(this.rz)));

      var rotationX = Cesium .Matrix4.fromRotationTranslation(mx);

      var rotationY = Cesium .Matrix4.fromRotationTranslation(my);

      var rotationZ = Cesium .Matrix4.fromRotationTranslation(mz);

 //缩放比例

      var sacle = Cesium .Matrix4.fromArray([

        Number(this.scalex),

        0.0,

        0.0,

        0.0,

        0.0,

        Number(this.scaley),

        0.0,

        0.0,

        0.0,

        0.0,

        Number(this.scalez),

        0.0,

        0.0,

        0.0,

        0.0,

        1.0

      ]);

  //平移

      var position = Cesium .Cartesian3.fromDegrees(Number(this.tx), Number(this.ty), Number(this.tz));

      var m = Cesium .Transforms.eastNorthUpToFixedFrame(position);

      

//矩阵相乘得到最终结果

      Cesium .Matrix4.multiply(m, rotationX, m);

      Cesium .Matrix4.multiply(m, rotationY, m);

      Cesium .Matrix4.multiply(m, rotationZ, m);

      Cesium .Matrix4.multiply(m, sacle, m);

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值