不怕不怕噜 2022-08-12 15:58 采纳率: 31.4%
浏览 56
已结题

cesium tile模型旋转

img


找了网上好多例子,沿着模型中心的x轴旋转30度还是找不到方法来旋转我的模型,我觉得我已经很接近了,应该是哪里的逻辑弄错了。

  • 写回答

2条回答 默认 最新

  • sannianerban12138 2022-08-12 16:37
    关注

    让模型旋转一定度数,可以生成一个旋转矩阵,再用你模型本身的矩阵乘以旋转矩阵,得到一个旋转过后的矩阵,重新赋值给你的模型就好了

    var m = tileset.modelMatrix;//获取你模型本身的矩阵
    var RotateX=30;//你的旋转角度
    //RotateX为旋转角度,转为弧度再参与运算
    var m1 = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(RotateX)); 
    //矩阵计算,用原来的矩阵乘以旋转矩阵,得到新的矩阵
    m =Cesium.Matrix4.multiplyByMatrix3(m,m1,m);
    //赋值
    tileset.modelMatrix = m;
    

    这个模式可以使用于所有类型的模型,因为cesium底层描述模型位置和姿态,最终都是一个四维的矩阵来描述的
    如果解决了,希望采纳一下,有什么问题可以私信我

    评论 编辑记录

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月19日
  • 创建了问题 8月12日