cesium3d-tiles平移、贴地、旋转和缩放//⽬前只验证过cesiumlab处理的3dtiles数据,其他⼯具处理的数据有待验证。
//⽰例参数,根据实际情况设置(可定制UI实现动态调整,直到满意为⽌)
var params = {
tx: 110.5, //模型中⼼X轴坐标(经度,单位:⼗进制度)
ty: 30, //模型中⼼Y轴坐标(纬度,单位:⼗进制度)
tz: 1120, //模型中⼼Z轴坐标(⾼程,单位:⽶)夏日即景作文
rx: 60, //X轴(经度)⽅向旋转⾓度(单位:度)
ry: 30, //Y轴(纬度)⽅向旋转⾓度(单位:度)
rz: 0, //Z轴(⾼程)⽅向旋转⾓度(单位:度)
scale: 1 //缩放⽐例
};
//平移、贴地、旋转模型
function update3dtilesMaxtrix(tilet) {
糍粑的做法//旋转
var mx = Cesium.Matrix3.fromRotationX());
var my = Cesium.Matrix3.fromRotationY());
var mz = Cesium.Matrix3.fromRotationZ());
var rotationX = Cesium.Matrix4.fromRotationTranslation(mx);
var rotationY = Cesium.Matrix4.fromRotationTranslation(my);
var rotationZ = Cesium.Matrix4.fromRotationTranslation(mz);
//平移
var position = Cesium.Cartesian3., , );
var m = Cesium.Transforms.eastNorthUpToFixedFrame(position);
//旋转、平移矩阵相乘
Cesium.Matrix4.multiply(m, rotationX, m);
Cesium.Matrix4.multiply(m, rotationY, m);
Cesium.Matrix4.multiply(m, rotationZ, m);
//赋值给tilet
受之无愧tilet._ansform = m;
故宫记//缩放
zoom3dtiles(tsfParams);
}
function zoom3dtiles(tilet) {
加薪申请书怎么写var scale = (params.scale || 1) * 1;我的小阿姨
tilet._root.customTransform = {
matrix: {
origin: tilet._ansform.clone(),
rotation: Cesium.Matrix4.IDENTITY,
translation: Cesium.Matrix4.IDENTITY,
}
一个人旅行
};
var m1 = Cesium.Matrix4.fromScale(new Cesium.Cartesian3(scale, scale, scale));
tilet._root.customTransform.matrix.scale = m1;
tilet._root.customTransform.scale = scale;
var m2 = new Cesium.Matrix4();
Cesium.Matrix4.multiply(tilet._root.igin, tilet._root.ation, m2); Cesium.Matrix4.multiply(m2, tilet._root.customTransform.matrix.scale, m2);
Cesium.Matrix4.multiply(m2, tilet._root.anslation, tilet._ansform);
}
//调⽤⽰例
function test(viewer) {
viewer.scene.globe.depthTestAgainstTerrain = true;
var url = "./test/tilet.json";
var tilet = new Cesium.Cesium3DTilet({
url: url
});
var primitive = viewer.scene.primitives.add(tilet);
var originalSphere = t.boundingSphere;
var radius = originalSphere.radius;
微云文件
update3dtilesMaxtrix(tilet);
}).otherwi(function (error) {
var msg = JSON.stringify(error);
console.log(msg);
});
}