Ver Mensaje Individual
  #3 (permalink)  
Antiguo 01/03/2013, 01:36
DoHITB
 
Fecha de Ingreso: abril-2012
Ubicación: 41°37′00″N, 00°37′00″E
Mensajes: 462
Antigüedad: 12 años, 1 mes
Puntos: 33
Respuesta: Suma de grados, minutos y segundos en PHP

Buenas!

Como siempre pasa con las medidas compuestas, deberías (es más fácil así) siempre usar la misma unidad.

Es decir:

Código:
n1º n2' n2'' + m1º m2' m3''
Pasamos "n" a segundos (ya que es la más pequeña), y "m" también. Operamos (saldrá sin decimales) y luego convertimos.

Código PHP:
Ver original
  1. function castSegundos($grados,$minutos,$segundos){
  2. return ($grados*3600)+($minutos*60)+$segundos; //lo he puesto con paréntesis para que se vea más claro
  3. }
  4.  
  5. function castGrados($angulo){
  6.   $ret = array();
  7.   $ret[0] = $angulo/3600;
  8.   $angulo = $angulo - $ret[0]*3600;
  9.   $ret[1] = $angulo/60;
  10.   $angulo = $angulo - $ret[1]*60;
  11.   $ret[2] = $angulo;
  12. }
  13.  
  14. function sumaAngulos($anguloA, $anguloB){
  15.   $angulo = $anguloA+$anguloB;
  16.   $angulo = $angulo*4;
  17.   $anguloVars = castGrados($angulo);
  18.   return $anguloVars;
  19. //Podrías hacer, simplemente: return castGrados(($anguloA+$anguloB)*4);
  20. }

Para sumar dos grados, tendrías que hacer usar "castSegundos" para pasar los ángulos a "notación en segundos", y con esos datos llarmar a sumaAngulos.

Espero que te sirva.

Saludos!