// var mx = Cesium.Matrix3.fromRotationX(Cesium.Math.toRadians(0))
// var my = Cesium.Matrix3.fromRotationY(Cesium.Math.toRadians(45))
// var mz = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(0))
// var rotationX = Cesium.Matrix4.fromRotationTranslation(mx)
// var rotationY = Cesium.Matrix4.fromRotationTranslation(my)
// var rotationZ = Cesium.Matrix4.fromRotationTranslation(mz)
// 平移
var heightOffset = 20.0
var boundingSphere = tileset.boundingSphere
var cartographic = Cesium.Cartographic.fromCartesian(boundingSphere.center)
var surface = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, 0.0)
var offset = Cesium.Cartesian3.fromRadians(cartographic.longitude, cartographic.latitude, heightOffset)
var translation = Cesium.Cartesian3.subtract(offset, surface, new Cesium.Cartesian3())
var result = Cesium.Matrix4.fromTranslation(translation)
// 旋转、平移矩阵相乘
// Cesium.Matrix4.multiply(result, rotationX, result)
// Cesium.Matrix4.multiply(result, rotationY, result)
// Cesium.Matrix4.multiply(result, rotationZ, result)
// 赋值给tileset
tileset.modelMatrix = result
位置偏移可以实现,但旋转矩阵相乘之后,赋值给tileset.modelMatrix,模型飞了,请问什么原因
本文由 cmccmz 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。