viewer.scene.camera.changed.addEventListener(function(){
var cameraHeading = viewer.scene.camera.heading;
var diff = preCameraHeading - cameraHeading;
if(model){
model.modelMatrix = Cesium.Matrix4.multiply(model.modelMatrix, rotateAroundZ(diff), new Cesium.Matrix4());
preModelMatrixes[0] = model.modelMatrix;
}
preCameraHeading = cameraHeading;
}, this);
function rotateAroundZ(rads){
var cosTheta = Math.cos(rads);
var sinTheta = Math.sin(rads);
var v = [cosTheta, sinTheta, 0.0, 0.0, -sinTheta, cosTheta, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0];
return Cesium.Matrix4.fromArray(v);
}
网友评论