Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
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
Responder Con Cita
  #2  
Antiguo 03-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.096
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Multiplicar por cero, da cero.
Responder Con Cita
  #3  
Antiguo 03-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Me disculpo

Utilice el valor no apropiado

El correcto es 45 22’ 35” y no 0 00’ 00”
Responder Con Cita
  #4  
Antiguo 03-02-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
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
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....

Última edición por ecfisa fecha: 03-02-2020 a las 18:01:36.
Responder Con Cita
  #5  
Antiguo 03-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
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 ?
Responder Con Cita
  #6  
Antiguo 03-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.096
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Es que depende de la versión de Delphi, prueba con:
Código Delphi [-]
ShowMessage( FloatToStr(da) );
Responder Con Cita
  #7  
Antiguo 03-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por Casimiro Notevi Ver Mensaje
Es que depende de la versión de Delphi, prueba con:
Código Delphi [-]
ShowMessage( FloatToStr(da) );
Utilizo Delphi 7
Responder Con Cita
  #8  
Antiguo 03-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
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
Responder Con Cita
  #9  
Antiguo 03-02-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Cita:
Empezado por compuin Ver Mensaje
Utilizo Delphi 7
Entonces haz como te indica Casimiro

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #10  
Antiguo 03-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Entonces haz como te indica Casimiro

Saludos
Ya lo hice y muesta el mensaje
Responder Con Cita
  #11  
Antiguo 04-02-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por compuin Ver Mensaje
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.

Última edición por escafandra fecha: 04-02-2020 a las 00:27:27.
Responder Con Cita
  #12  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Ok

Voy a revisar todo de nuevo y lo vuelvo a postear
Responder Con Cita
  #13  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
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 ?
Responder Con Cita
  #14  
Antiguo 04-02-2020
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.096
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por compuin Ver Mensaje
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?
Responder Con Cita
  #15  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Con papel y lápiz en el mismo orden de la ecuación

Pero en código no me funciona de esa manera
Responder Con Cita
  #16  
Antiguo 04-02-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
Cita:
Empezado por compuin Ver Mensaje
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.
Responder Con Cita
  #17  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
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
Responder Con Cita
  #18  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
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 ?
Responder Con Cita
  #19  
Antiguo 04-02-2020
Avatar de escafandra
[escafandra] escafandra is offline
Miembro Premium
 
Registrado: nov 2007
Posts: 2.197
Poder: 20
escafandra Tiene un aura espectacularescafandra Tiene un aura espectacular
1,209861111111×0,910099=1,101093387361

Saludos
Responder Con Cita
  #20  
Antiguo 04-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 214
Poder: 14
compuin Va por buen camino
Cita:
Empezado por escafandra Ver Mensaje
1,209861111111×0,910099=1,101093387361

Saludos
No puede ser, como es posible que la formula no funcione ...
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Conversion Grados a Radianes y retorno compuin OOP 41 05-02-2020 23:07:41
Radianes a Grados torito Varios 4 05-05-2010 01:48:46
Operaciones entre bases de datos subzero MS SQL Server 3 17-01-2008 21:55:57
operaciones entre fechas Torreblanca Varios 4 09-07-2005 20:20:27
Convertir decimales a radianes Picard C++ Builder 6 05-06-2004 11:43:47


La franja horaria es GMT +2. Ahora son las 15:16:16.


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