세슘의 gltf 가지를 사용하며 비행기의 3D 모델을 표시하고 싶습니다. 이렇게하려면 dataSources에로드하고 추가하는 czmlDataSource를 만듭니다.세슘에서 unitQuaternion czml 속성을 올바르게 사용하는 방법
문제는 내가 방향 quaternion을 계산하여 바닥에 평행 한 평면을 주어진 lat, lon, alt 북쪽에 기본적으로 놓는 방법을 알아낼 수 없다는 것입니다. .
var geoPosition = new Cesium.Cartographic(Cesium.Math.toRadians(inputPosition.lon), Cesium.Math.toRadians(inputPosition.lat), inputPosition.alt);
var cartesianPosition = Cesium.Ellipsoid.WGS84.cartographicToCartesian(geoPosition);
var euler = [cartesianPosition.x, cartesianPosition.y, cartesianPosition.z];
var qx = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_X, euler[0]);
var qy = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Y, euler[1]);
var qz = Cesium.Quaternion.fromAxisAngle(Cesium.Cartesian3.UNIT_Z, euler[2]);
var qt = Cesium.Quaternion.multiply(qz, qy);
var q = Cesium.Quaternion.multiply(qt, qx);
Cesium.Quaternion.normalize(q, q);
var czmlSrc = [{
"orientation": {
"epoch": "2012-08-04T16:00:00Z",
"interpolationAlgorithm": "LINEAR",
"interpolationDegree": 1,
"unitQuaternion": [0, q.x,q.y,q.z,q.w,
3600, q.x,q.y,q.z,q.w]
}
}];
이 답변을 업데이트해야합니까? – emackey