Ver Mensaje Individual
  #29  
Antiguo 04-02-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.210
Reputación: 22
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por compuin Ver Mensaje
Haciendolo como me orientas me da este error

Código Delphi [-]var da, lt, decl : Extended; begin lt := 1.73916666667; // => 01' 44’ 21" decl := 21.4341666667; // => 21° 26' 03" //da := RadToDeg(sin(DegToRad(tan(DegToRad(lt))*tan(DegToRad(decl))))); DA:= tan(lt)* tan(decl); DA:= arcsin(da); ShowMessage( FloatToStr(da) ); // DA 02º36'10'' end;



Ves, mal interpretado. El seno de un angulo no puede ser mayor de 1 en valor absoluto. Los datos que te han dado son ángulos y no las tangentes. Ten en cuenta las unidades de los ángulos, pues si te los dan en radianes no tendrás que convertir. Las funciones trigonométricas de delphi funcionan en radianes.

el valor obtenido para DA es 0,68299.

Sigo viendo falta de rigor matemático en los ejemplos que tienes. Te paso la función:
Código Delphi [-]
function DiferenciaAscensional(lt, decl: Extended): Extended;
begin
  Result:= RadToDeg(arcsin(tan(DegToRad(lt)) * tan(DegToRad(decl))));
end;


Y para el caso en el que te den ya las tangentes:
Código Delphi [-]
function DiferenciaAscensional2(lt, decl: Extended): Extended;
begin
  Result:= RadToDeg(arcsin(lt * decl));
end;




Saludos.

Última edición por escafandra fecha: 04-02-2020 a las 21:58:51.
Responder Con Cita