Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   OOP (https://www.clubdelphi.com/foros/forumdisplay.php?f=5)
-   -   Operaciones algebraicas entre radianes y grados decimales (https://www.clubdelphi.com/foros/showthread.php?t=94615)

compuin 02-02-2020 20:11:36

Conversion Grados a Radianes y retorno
 
Hola amigos,

Tengo un problema, realizando calculos entre grados

Necesito conseguir el producto entre 2 grados, los cuales son

lt := 0° 00' 00"
decl := 23° 24' 15"

Utilizo esta ecuacion para obtener el resultado de multiplicar lt * decl, asi:

Código Delphi [-]
DA, lt, decl : double;

Código Delphi [-]
DA:= RadToDeg(sin(DegToRad(tan(DegToRad(lt))*tan(DegToRad(decl)))));

El resultado que obtengo es 0° 00' 00", pero el valor correcto deberia ser -2° 51' 47"

No entiendo que esta mal en mi calculo

Gracias de antemano por cualquier aporte

Casimiro Noteví 03-02-2020 11:26:04

Multiplicar por cero, da cero.

compuin 03-02-2020 12:33:22

Me disculpo

Utilice el valor no apropiado

El correcto es 45 22’ 35” y no 0 00’ 00”

ecfisa 03-02-2020 17:57:30

Hola.


Tu código con los valores que indicas,
Código Delphi [-]
...
var
  da, lt, decl : Extended;
begin
  lt   := 45.37638888888889; // => 45 22’ 35
  decl := 23.40388888888889; // => 23° 24' 15"
  da   := RadToDeg(sin(DegToRad(tan(DegToRad(lt))*tan(DegToRad(decl)))));
  ShowMessage(da.ToString);
  ...
da el resultado : 0,438539207272871 => 0° 26' 18.74115"

Saludos :)

compuin 03-02-2020 19:00:30

Cita:

Empezado por ecfisa (Mensaje 535522)
Hola.


Tu código con los valores que indicas,
Código Delphi [-]
...
var
  da, lt, decl : Extended;
begin
  lt   := 45.37638888888889; // => 45 22’ 35
  decl := 23.40388888888889; // => 23° 24' 15"
  da   := RadToDeg(sin(DegToRad(tan(DegToRad(lt))*tan(DegToRad(decl)))));
  ShowMessage(da.ToString);
  ...
da el resultado : 0,438539207272871 => 0° 26' 18.74115"

Saludos :)

Me arroja error ejecutando por la clausula ToString

Puedes poner la Unit completa para replicarlo por favor ?

Casimiro Noteví 03-02-2020 20:01:41

Es que depende de la versión de Delphi, prueba con:
Código Delphi [-]
ShowMessage( FloatToStr(da) );

compuin 03-02-2020 20:02:03

Cita:

Empezado por Casimiro Notevi (Mensaje 535527)
Es que depende de la versión de Delphi, prueba con:
Código Delphi [-]
ShowMessage( FloatToStr(da) );

Utilizo Delphi 7

compuin 03-02-2020 20:24:45

Gracias, con eso mostro los datos

El resultado a pesar que se ejecuta no es correcto.

Creo que tengo un problema convirtiendo radianes, grados, decimales


Aqui tengo otro ejemplo



Código Delphi [-]
var
lt, decl, da : double;

La formula es

SIN DA = TAN LT * TAN DECL

Deberia obtener este resultado

Código Delphi [-]
lt:= -2.19474036998329;
           decl:=   -24.7975765404927

El resultado deberia ser

Código Delphi [-]
da:= -3.06365791942224


Aqui es donde no entiendo cuando convertir a radianes, grados o decimales

ecfisa 03-02-2020 20:29:03

Cita:

Empezado por compuin (Mensaje 535528)
Utilizo Delphi 7

Entonces haz como te indica Casimiro ;)

Saludos :)

compuin 03-02-2020 20:32:00

Cita:

Empezado por ecfisa (Mensaje 535531)
Entonces haz como te indica Casimiro ;)

Saludos :)

Ya lo hice y muesta el mensaje

escafandra 04-02-2020 00:17:57

Cita:

Empezado por compuin (Mensaje 535530)
La formula es

Código Delphi [-]
SIN DA = TAN LT * TAN DECL

Deberia obtener este resultado

Código Delphi [-]
lt:=    -2.19474036998329; 
decl:= -24.7975765404927


El resultado deberia ser
Código Delphi [-]
da:= -3.06365791942224

Aqui es donde no entiendo cuando convertir a radianes, grados o decimales




Por partes:
1- Según la formula que pones DA = ARCSIN(TAN LT * TAN DECL) pero eso no lo veo en el código que debería ser algo como:
Código Delphi [-]
var
  DA, lt, decl : extended;
begin
  lt:=    -2.19474036998329;
  decl:= -24.7975765404927;

  DA:= RadToDeg(arcsin(tan(DegToRad(lt))*tan(DegToRad(decl))));
end;
Eso siempre que los datos sean grados y el resultado también.


2.- Los ángulos que das están ambos en el 4º cuadrante y su tangente será negativa para ambos. El producto de las tangentes será positivo y eso significa si, o si que es seno de DA es positivo, luego DA está en el primer o segundo cuadrante, con lo que no va a ser negativo del orden que das (-3.06365791942224).

3.- Con las conclusiones obtenidas tenemos, que la fórmula que das es incorrecta, o que el código lo es, ambas cosas o que los datos no son grados, en cuyo caso serían radianes pero considerando esto último, tampoco da -3.06365791942224.

4.- Debes revisar bien el planteamiento que das, las matemáticas no fallan y los ordenadores tampoco.


Saludos.

compuin 04-02-2020 01:11:53

Ok

Voy a revisar todo de nuevo y lo vuelvo a postear

compuin 04-02-2020 02:06:10

Retomo el post

Necesito calcular DA (Diferencia Ascensional) de un planeta. Estos son los valores a usar

Latitud = 02º45'20''

Declinacion = 23º41'12''

Formula para calcular

TAN (latitud) * TAN (DECL planeta ) = SIN DA

El resultado debe dar = 04º39'38''

Cual es la forma de hacerlo correctamente en Delphi ?

Casimiro Noteví 04-02-2020 11:11:31

Cita:

Empezado por compuin (Mensaje 535539)
Cual es la forma de hacerlo correctamente en Delphi ?

¿Cómo lo harías con papel y lápiz?
Paso a paso, ¿cómo lo harías?

compuin 04-02-2020 11:14:29

Con papel y lápiz en el mismo orden de la ecuación

Pero en código no me funciona de esa manera

escafandra 04-02-2020 18:42:04

Cita:

Empezado por compuin (Mensaje 535539)
Retomo el post

Necesito calcular DA (Diferencia Ascensional) de un planeta. Estos son los valores a usar

Latitud = 02º45'20''

Declinacion = 23º41'12''

Formula para calcular

TAN (latitud) * TAN (DECL planeta ) = SIN DA

El resultado debe dar = 04º39'38''

Cual es la forma de hacerlo correctamente en Delphi ?

Pues si la calculadora de mi teléfono no falla, el resultado es 01° 12' 35,5"
No tengo delphi a mano.

Saludos.

compuin 04-02-2020 18:54:58

Cita:

Empezado por escafandra (Mensaje 535553)
Pues si la calculadora de mi teléfono no falla, el resultado es 01° 12' 35,5"
No tengo delphi a mano.

Saludos.

Pues no es el resultado esperado

compuin 04-02-2020 19:10:39

Cita:

Empezado por escafandra (Mensaje 535553)
Pues si la calculadora de mi teléfono no falla, el resultado es 01° 12' 35,5"
No tengo delphi a mano.

Saludos.

Y si multiplcas ese resultado por 0.910099 ?

escafandra 04-02-2020 19:20:50

1,209861111111×0,910099=1,101093387361

Saludos

compuin 04-02-2020 19:22:33

Cita:

Empezado por escafandra (Mensaje 535557)
1,209861111111×0,910099=1,101093387361

Saludos

No puede ser, como es posible que la formula no funcione ...


La franja horaria es GMT +2. Ahora son las 21:22:56.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi