Club Delphi  
    Paypal   FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Coloboración Paypal con ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
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 Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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: 230
Poder: 16
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: 38
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: 230
Poder: 16
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 Noteví
Casimiro Noteví Casimiro Noteví is offline
Merodeador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.679
Poder: 10
Casimiro Noteví Tiene un aura espectacularCasimiro Noteví 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 29-04-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Operaciones algebraicas entre radianes y grados decimales

Hola amigos como estan?

Tengo un problema tratando de convertir radianes a grados decimales.

En estas instrucciones tengo lo siguiente

Código Delphi [-]
L:=  26.11428;     //Longitud de Planeta A
B:= -2.62070;      //Longitud de Planeta B
R:=  0.724603;    //Unidades Astronomicas

Lt:= 88.35704;    //Longitud de Planeta A
Bt:= 0.00014;     //Longitud de Planeta B
Rt:= 0.983824;   //Unidades Astronomicas

Luego aplico las siguientes formulas:

Código Delphi [-]
    x1 := R * Cos(DegToRad(B)) * Cos(DegToRad(L));
    y1 := R * Cos(DegToRad(B)) * Sin(DegToRad(L));
    z1 := R * Sin(DegToRad(B));

    x2 := Rt * Cos(DegToRad(Bt)) * Cos(DegToRad(Lt));
    y2 := Rt * Cos(DegToRad(Bt)) * Sin(DegToRad(Lt));
    z2 := Rt * Sin(DegToRad(Bt));

    x:= x1 - x2;
    y:= y1 - y2;
    z:= z1 - z2;

Donde,

Código Delphi [-]
x:=  0.621746;
y:= -0.664810;
z:= -0.033134;

Hasta aca todo bien, el problema lo tengo tratando de usar esta formula:

Código Delphi [-]
Dist := Sqr(x * x + y * y + z * z);

El resultado deberia ser
Código Delphi [-]
0.00552606
pero me arroja
Código Delphi [-]
0.688303

y en esta otra,

Código Delphi [-]
LTT := 0.0057755183 * Dist;

El resultado deberia ser
Código Delphi [-]
0.910845
pero me arroja
Código Delphi [-]
0.005975

He revisado varias veces las ecuaciones y al parecer el problema podria ser cuando trato de multiplicar y/o sumar radianes y grados decimales, lo que no se es como corregir eso

Agradezco quien me pueda ayudar con esto
Responder Con Cita
  #8  
Antiguo 29-04-2020
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 38
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
Dados los valores:
Código:
x =  0.621746;
y = -0.664810;
z = -0.033134;
Sqr (cuadrado de un número):
Código:
 (x*x + y*y + z*z)² = (0.8296382866)² = 0.68883997865
Sqrt (raíz cuadradra de un número):
Código:
√(x*x + y*y + z*z) = √(0.8296382866) = 0.9108448203
¿ De donde obtienes el valor 0.00552606 ?

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #9  
Antiguo 29-04-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Hola,

Aca anexo los algoritmos originales con los valores senalados




imagenes de lo

Última edición por compuin fecha: 29-04-2020 a las 15:15:19.
Responder Con Cita
  #10  
Antiguo 29-04-2020
compuin compuin is offline
Miembro
 
Registrado: oct 2010
Posts: 230
Poder: 16
compuin Va por buen camino
Ya vi el error

Estaba usando esto

Código Delphi [-]
Dist := Sqr(x * x + y * y + z * z);

En lugar de esto

Código Delphi [-]
Dist := Sqrt(x * x + y * y + z * z);

Por eso el calculo no era correcto

Muchas gracias por la ayuda!!

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 18:48:13.


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
Copyright 1996-2007 Club Delphi