Я использую CesiumJ.Я хотел бы создать точку D на расстоянии C от точки A, используя направление B
Point A => start Position (CartographicPosition {latitude, longitude; altitude})
Direction B => direction from A (HeadingPitchRoll {heading, pitch, roll})
Distance C => in meters
Я пытаюсь получить вращение, с которым сталкивается объект, и создать точку перед ним.
Моя текущая реализация -
public createROIfromRotation(position: Cartographic, rotation: HeadingPitchRoll): Cartographic {
const pos = Cesium.Ellipsoid.WGS84.cartographicToCartesian(position);
const quat = Cesium.Transforms.headingPitchRollQuaternion(pos, rotation);
const rot = CesiumMath.QuaternionToEuler(quat);
const dir = Cesium.Cartesian3.multiplyByScalar(rot, 10, new Cesium.Cartesian3());
const roiPos = Cesium.Cartesian3.add(pos, dir, new Cesium.Cartesian3());
return Cesium.Ellipsoid.WGS84.cartesianToCartographic(roiPos);
}
Но она не вращается вокруг объекта, она делает какую-то кривую в разных плоскостях.
Мне бы хотелось, чтобы красная точка былавсегда перед грузовиком на расстоянии 10 метров Пример