elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Foros Generales
| |-+  Foro Libre
| | |-+  Ayuda matematica-
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Ayuda matematica-  (Leído 4,483 veces)
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Ayuda matematica-
« en: 9 Abril 2011, 03:14 am »

.
Coordenadas esfericas.

OJO mis ejes Z y X son el piso y mi eje Y es mi altitud., de donde Z es lo que se define como que tan seca o lejos esta de un objeto.

Como se calcula en angulo azimutal de dos puntos?

x = d * sin(a) * cos(e)
y = d * sin(e)
z = d * cos(a) * cos(e)

donde:

d = distancia entre dos puntos ( X,Y,Z )
a = angulo azimutal
e = angulo de elevacion

hasta ahora ya pude saber como saber el angulo de elevacion de un punto con respecto al punto origen

e = csc( y/d )

Pero para el angulo de la azimutal

[Aqui empiza mi duca sigan leyendo]

llego a un punto muerto donde ya no se que rayos hacer.

El angulo azimutal involucra a el eje x y el eje z, el eje y solo es involucrado por la elevacion ( Logica Basica )

x = d * sin(a) * cos(e)
z = d * cos(a) * cos(e)

Entonces empesando a despejar

Como en ambas expresiones existen d y cos(e) puedo hacer un reemplazo de terminos asi:

Quitando a cos(e) para simplificar la cosa:

cos(e) = x / ( d*sin(a) )

En la segunda formula reemplazo (  z = d * cos(a) * cos(e) )

z = d * cos(a) * x / ( d*sin(a) )

Simplificando un poco queda:

z = cos(a) * x /  sin(a)

y tratando de despejar a el angulo a obtengo:

z/x = cos(a) / sin(a)    siendo lo mismo a:      z/x = cos(a) * csc(a)

por lo tanto:

cosec ( z/x ) = a * csc( a )
sin(cosec(z/x)) = a*a

por lo tanto

raiz( sin(cosec(z/x)) ) = a

pero al aplicar dicho despeje no me da el angulo ya mensionado. alguien sabe como solucionarlo?

Dulces Lunas!¡.
.
« Última modificación: 9 Abril 2011, 03:24 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
leogtz
. . .. ... ..... ........ ............. .....................
Colaborador
***
Desconectado Desconectado

Mensajes: 3.069


/^$/


Ver Perfil WWW
Re: Ayuda matematica-
« Respuesta #1 en: 9 Abril 2011, 03:55 am »

Mira, a mi me queda:

x =d * sen(a) * cos(a)
z = d cos(a) * cos(e)

cos(e) = x/d*sen(a) ------------> z = d * cos(a) * x / d * sin(a)

Por lo que se eliminan las "d"

Al eliminarlas, salta una identidad trigonométrica, la de cotangente

ctg(x) = 1/tan(x)
ctg(x) = (1/1)/(sen(x)/cos(x)

Bueno, por lo que queda:

z = x(1 / tan(a))
z = x/tan(a)

De ahí ya se puede ver como vamos a despejar "a"

z * tan(a) = x
tan(a) = x/z

arctan(tan(a)) = arctan(x/z)
a = arctan(x/z)

no lo he checado bien, lo hice aquí, compruebalo.

EDITO:

Ya lo chequé, está correcto, también podrías despejar d y sustituir.

Tsssss, deberíamos de tener LATEX en el foro :p
« Última modificación: 9 Abril 2011, 04:06 am por Leo Gutiérrez. » En línea

Código
  1. (( 1 / 0 )) &> /dev/null || {
  2. echo -e "stderrrrrrrrrrrrrrrrrrr";
  3. }
  4.  
http://leonardogtzr.wordpress.com/
leogutierrezramirez@gmail.com
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Ayuda matematica-
« Respuesta #2 en: 10 Abril 2011, 01:07 am »

.
gracias si es:

a = arctan(x/z)

Se me olidaron las identidades trigonometricas xP.

Dulces Lunas!¡.
En línea

The Dark Shadow is my passion.
BlackZeroX
Wiki

Desconectado Desconectado

Mensajes: 3.158


I'Love...!¡.


Ver Perfil WWW
Re: Ayuda matematica-
« Respuesta #3 en: 10 Abril 2011, 01:18 am »

.
Bueno ya esta, con esa pequeña formula (despeje y algunas sentencias ya pude detectar lo deado xP)

Código
  1.  
  2. float clsLine::GetAzimutal(float x, float z)
  3. {
  4.    float dRet = 0.0f;
  5.    if ( z!=0.0f ) {
  6.        dRet        = atan2( x , z );
  7.        if ( x<=0.0f && z<0.0f ) {
  8.            dRet        = dRet+180.0f;
  9.        } else if ( x>0.0f && z<0.0f ) {
  10.            dRet        += 180.0f ;
  11.        } else if ( x<0.0f && z>0.0f ) {
  12.            dRet        += 360.0f ;
  13.        }
  14.    } else {
  15.        if ( x>0.0f ) {
  16.            dRet        = 90.0f;
  17.        } else if ( x<0.0f ) {
  18.            dRet        = 270.0f;
  19.        }
  20.    }
  21.    return dRet;
  22. }
  23.  
  24.  

No lo puse en el subforo de C/C++ por que no era una duda puntal de ello si no de despejes matematicos.

P.D.: Se nesesita LaTeX como Leo G. a mensionado ya.

Temibles Lunas!¡.
« Última modificación: 10 Abril 2011, 01:47 am por BlackZeroX▓▓▒▒░░ » En línea

The Dark Shadow is my passion.
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Paradoja matemática?...
Desafíos - Wargames
flacc 6 6,397 Último mensaje 29 Junio 2010, 23:00 pm
por Novlucker
Necesito ayuda matemática "nivel básico" « 1 2 »
Dudas Generales
anonimo12121 12 10,197 Último mensaje 18 Enero 2011, 20:08 pm
por Garfield07
Me ayudan con una formula Matematica?
Foro Libre
Megan 3 2,271 Último mensaje 9 Enero 2012, 04:26 am
por theluigy13etv
Teoria matematica
Foro Libre
barnix456 4 3,052 Último mensaje 3 Diciembre 2012, 18:52 pm
por barnix456
otro problema de matematica ... ayuda plis xD
Dudas Generales
gabrielprocs 4 2,605 Último mensaje 19 Septiembre 2014, 02:21 am
por simorg
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines