2016-12-23 8 views
0

Я хотел бы сделать сферическое пересечение сферы или эллипсоида эллипсоиду, если у меня есть две координатные точки GPS. Какова формула для этого?Столкновение между двумя точками GPS

Предположим, у меня есть две точки GPS с двумя разными lon, lat, alt. Я хотел бы сделать сферу с пересечением сфер или эллипсоидом до эллипсоида. Есть ли для этого формула?

WGS84toXYZ(xAv, yAv, zAv, (m_sPosAV.GetLongitude()*math::pi)/180, (m_sPosAV.GetLatitude()*math::pi)/180, (m_sPosAV.GetAltitude()*math::pi)/180); // lon direction Nort 
    WGS84toXYZ(xPoi, yPoi, zPoi, (poi.Position().GetLongitude()*math::pi)/180, (poi.Position().GetLatitude()*math::pi)/180, (poi.Position().GetAltitude()*math::pi)/180); // lon direction Nort 

    Sphere avSphere; 
    Sphere poiSphere; 

    avSphere.position.x = xAv; 
    avSphere.position.y = yAv; 
    avSphere.position.z = 0; 
    avSphere.radius = 1550000; 
    poiSphere.position.x = xPoi; 
    poiSphere.position.y = yPoi; 
    poiSphere.position.z = 0; 
    poiSphere.radius = 100000; 

    if (doesItCollide(avSphere, poiSphere)) 
    { 
     qDebug() << "collision sphere"; 
    } 
+0

Если у вас есть только широта и долгота, вы имеете дело с кругами, а не с шарами. Обнаружение столкновения между двумя сферами легко: круги сталкиваются, если расстояние между центром меньше, чем сумма района каждого круга. – Hugal31

+0

У меня есть широта, долгота и высота, поэтому я хочу сделать сферу сфера пересечения не кругами – andre

+0

Я преобразовал сферические координаты в декартовы координаты, но столкновение всегда происходит – andre

ответ

0

Sphere легко: Если расстояние между вашими 2 пункта меньше, чем сумма ваших радиусов сфер, вы получили себе пересечение.