supermap iclient3d for cesium中的平移,旋转

昨天写的模型机头不是速度的方向

基础知识

屏幕坐标系,笛卡尔空间直角坐标系,大地坐标系

平移和旋转都是基于笛卡尔空间直角坐标系,也就是基于地心。但是我们想实现模型的旋转是基于模型的局部坐标系,那么就要坐标转换。

向量归一化:单位向量

旋转矩阵左乘右乘:

思考:给定一个初始旋转矩阵 R1,绕向量 r 旋转 θ 度得到旋转矩阵 R2,最终得到旋转矩阵 R3。那么,是 R3 等于 R2 乘以 R1 还是 R3 等于 R1 乘以 R2 呢?

固定坐标系:每次旋转都根据同一坐标系旋转,左乘单个旋转矩阵. 典型代表:RPY角

非固定坐标系:每次旋转都根据上一次旋转后的坐标系旋转,右乘单个旋转矩阵. 典型代表:ZYZ角

参考文章旋转矩阵变换的乘积顺序问题---机器人学_旋转矩阵可以交换顺序-CSDN博客

东北天坐标系

x正东,y正北,z指天

平移

平移思路:

源点笛卡尔坐标系坐标1,终点局部坐标系坐标2,(1)然后计算局部坐标系到笛卡尔坐标系的转换矩阵m,(2)m与坐标2算出终点笛卡尔坐标系坐标,(3)得到笛卡尔坐标系坐标1向笛卡尔坐标系终点坐标的转换矩阵,(4)然后相乘

实现

传入参数是模型entity对象

复制代码
const Translation =(plane:any)=>
{
    //飞机原来的位置
    let origin=Cesium.Cartesian3.fromDegrees(104.173,30.822,600)
    console.log(origin)
    //(1)    局部转笛卡尔的转换矩阵
    const m = Cesium.Transforms.eastNorthUpToFixedFrame(origin)
    //   平移量的局部坐标系
    const tempTranslation = new Cesium.Cartesian3(500,500,0)
    // (2)  终点的笛卡尔坐标
    const offset = Cesium.Matrix4.multiplyByPoint(m, tempTranslation, new Cesium.Cartesian3(0, 0, 0))
    //计算两个笛卡尔的分量差异
    const translation = Cesium.Cartesian3.subtract(offset, origin, new Cesium.Cartesian3())
    //(3)   分量差异=>转换矩阵
    let m2=Cesium.Matrix4.fromTranslation(translation)
    //(4)   坐标×转换矩阵(你也可以用分量的xyz直接加)
   var newPoint = Cesium.Matrix4.multiplyByPoint(m2, origin, new Cesium.Cartesian3());
    plane.position=newPoint
}

旋转

思路:

我的想法在初始点算出偏移角度,然后后续在速度的方向上偏移这个角度就可以了

(1)源点的局部坐标向笛卡尔坐标转换的矩阵m

(2)局部坐标系下旋转的变化矩阵n

(3)速度方向矩阵p

(4)mn绕局部坐标系旋转所以左乘,p是笛卡尔坐标系

相关推荐
大江东去浪淘尽千古风流人物12 小时前
【SLAM】Hydra-Foundations 层次化空间感知:机器人如何像人类一样理解3D环境
深度学习·算法·3d·机器人·概率论·slam
新启航-光学3D测量16 小时前
海上风电桩基、海底管道的腐蚀情况或结构损伤的光学三维扫描测量逆向-激光三维扫描仪
科技·3d·制造
CG_MAGIC1 天前
法线贴图常见问题:修复与烘焙适配全方案
3d·blender·贴图·zbrush·建模教程·渲云渲染
轻轻唱1 天前
2026工业级3D打印设备稳定性实测:5大品牌对比评测+选型指南
大数据·人工智能·3d
新启航-光学3D测量1 天前
人体三维尺寸(如胸围、腰围、肩宽)的光学三维扫描测量逆向-激光三维扫描仪
科技·3d·制造
不会码码1 天前
WebGL+Three.js:打造网页3D模型展厅
javascript·3d·webgl
BY组态2 天前
智捷云:快捷、智能、高效的物联网解决方案提供商
物联网·3d·iot·web组态·组态
听麟2 天前
HarmonyOS 6.0+ APP智能快递代收管理系统开发实战:定位追踪与取件提醒落地
深度学习·3d·华为·wpf·harmonyos
大写-凌祁2 天前
VLN视觉语言导航全面解析:从入门到前沿技术
人工智能·计算机视觉·3d·aigc
安宝特 3D CAD2 天前
支持国产与主流CAD互转的工具推荐:安宝特3D_Evolution,实现无损参数化迁移
经验分享·3d·cad·航空航天·cad数据转换