Ver Mensaje Individual
  #5  
Antiguo 14-06-2016
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.211
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por DanielMC Ver Mensaje
Alguien pudiera traducir el código que puso el Sr.Neftali a c++!!!.
Mira a ver si esta traducción a C++ Builder te sirve.
Código PHP:
#include <Math.hpp>
#include <Math.h>

double RoundTo(double F, int d=0)
{
   
double p = pow10(d);
   return 
floor(F*p+0.5)/p;
}

double WGS84Distance(double plon1, double plat1, double plon2, double plat2, BOOL Almostnul = false)
{
  
double d, s, c;
  
double lat1, lon1, lat2, lon2, almost1;
  
int R = 6378137; // Medium earth radius in meter

  // d = R x arcos [ sin(lat1) x sin(lat2) + cos(lat1) x cos(lat2) x cos(lon2-lon1) ]
  
lat1 = DegToRad(plat1);
  
lon1 = DegToRad(plon1);
  
lat2 = DegToRad(plat2);
  
lon2 = DegToRad(plon2);
  if (
lon1 == lon2 && lat1 == lat2)
    
d = 0;
  else{
    
s = sin(lat1) * sin(lat2);
    
c = cos(lat1) * cos(lat2) * cos(lon2 - lon1);

    if(
Almostnul)
      
almost1 = RoundTo((s + c) * 100000000) / 100000000;
    else
      
almost1 = (s + c);

    if(
almost1 !=1)
      
d = R * ArcCos(s + c);
    else
      
d = 0;
  }
  return 
d;
} 
Saludos.
Responder Con Cita