// 创建一个航向角、俯仰角和横滚角对象
var heading = Cesium.Math.toRadians(90); // 航向角,90度表示正东
var pitch = Cesium.Math.toRadians(0); // 俯仰角,0度表示水平
var roll = Cesium.Math.toRadians(0); // 横滚角,0度表示平衡
let hpr = new Cesium.Matrix3(); // new Cesium.HeadingPitchRoll(heading, pitch, roll) // heading围绕负z轴的旋转。pitch是围绕负y轴的旋转。Roll是围绕正x轴的旋转 笛卡尔空间直角坐标系向上为z 向右为Y 向相机为x // let hprObj = new Cesium.HeadingPitchRoll(-0.18*Math.PI, 0, 0) //(z,y,x) 2021/11/24 原
let hprObj = new Cesium.HeadingPitchRoll(0, 0, 100); //(z,y,x) // Cesium.Matrix3.fromHeadingPitchRoll (headingPitchRoll,result)
hpr = Cesium.Matrix3.fromHeadingPitchRoll(hprObj, hpr); // 2、平移 // 2.3储存平移的结果
let modelMatrix = Cesium.Matrix4.multiplyByTranslation(
// 2.1从以度为单位的经度和纬度值返回Cartesian3位置
// 2.2计算4x4变换矩阵
Cesium.Transforms.eastNorthUpToFixedFrame(
Cesium.Cartesian3.fromDegrees(112.555, 38.55, 0)
),
new Cesium.Cartesian3(),
new Cesium.Matrix4()
); /// 3、应用旋转 // Cesium.Matrix4.multiplyByMatrix3 (矩阵,旋转,结果) // Cesium.Matrix4.multiplyByMatrix3(modelMatrix, hpr, modelMatrix)
Cesium.Matrix4.multiplyByMatrix3(modelMatrix, hpr, modelMatrix);
tileset._root.transform = modelMatrix;
Cesium 模型旋转
于 2023-08-23 14:29:01 首次发布