cesium 坐标系

在这里插入图片描述

1、通过上面图片标记的信息Z轴朝北,X轴朝西,Y轴朝上,可以得到cesium坐标系是右手坐标系:

在这里插入图片描述
2、gltf模型是Y轴朝上,Z轴朝前坐标系,:
在这里插入图片描述
3、我们用cesium中entity加载一个模型:
(1) cesium 加载gltf模型如果只乘上位置矩阵,注释model对象中的坐标轴转换得到效果图:
在这里插入图片描述
(2) 设置四元数orientation(heading pitch roll 角度)值,cesium中的model对象内部会自动将模型的Y轴转Z轴朝上和Z轴转X轴朝前,就是将模型坐标系变换到三维空间坐标系,示例代码和效果图:

    var entity = viewer.entities.add({
          position : new Cesium.Cartesian3.fromDegrees(121.52317,31.11436,1000),
          orientation:Cesium.Quaternion.fromHeadingPitchRoll(Cesium.HeadingPitchRoll.fromDegrees(0.0,0.0,0.0)),
          model : {
              uri :'../data/model/GroundVehicle/GroundVehicle.glb',
              scale:650,
              minimumPixelSize:100,

          }
      });

在这里插入图片描述

(3) 不设置四元数orientation(heading pitch roll 角度)值,首先cesium中 Entity对象的computeModelMatrix方法会执行Transforms.eastNorthUpToFixedFrame 这句代码,意思是先模型的坐标转换到X轴朝东,Y轴朝北,Z轴朝上;然后model对象内部会自动将模型的Y轴转Z轴朝上和Z轴转X轴朝前,最终模型的X轴朝向东,Y轴朝北;最终得到模型朝前方向是东方向,左侧指向北方向。示例代码和效果图:

   var entity = viewer.entities.add({
          position : new Cesium.Cartesian3.fromDegrees(121.52317,31.11436,1000),
          model : {
              uri :'../data/model/GroundVehicle/GroundVehicle.glb', 
              scale:650,
              minimumPixelSize:100,

          }
      });

在这里插入图片描述

4、最后使用右手坐标系和第一张图标记的方位很容易推导cesium Transforms.js中坐标系定义:

//由第一个X轴 第二个Y轴 得出Z轴
var vectorProductLocalFrame = {
  up: {
    south: "east",
    north: "west",
    west: "south",
    east: "north",
  },
  down: {
    south: "west",
    north: "east",
    west: "north",
    east: "south",
  },
  south: {
    up: "west",
    down: "east",
    west: "down",
    east: "up",
  },
  north: {
    up: "east",
    down: "west",
    west: "up",
    east: "down",
  },
  west: {
    up: "north",
    down: "south",
    north: "down",
    south: "up",
  },
  east: {
    up: "south",
    down: "north",
    north: "up",
    south: "down",
  },
};
  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值