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

 

 


Tema destacado: Introducción a Git (Primera Parte)


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  Dirección entre dos puntos (Latitud-Longitud)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] 2 Ir Abajo Respuesta Imprimir
Autor Tema: Dirección entre dos puntos (Latitud-Longitud)  (Leído 12,953 veces)
Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Dirección entre dos puntos (Latitud-Longitud)
« en: 27 Junio 2011, 05:36 am »

Es posible saber la dirección de un trayecto si tengo la Lat-Lon inicial y la final...
Por ejemplo si tengo PI=Punto Inicial; PF= Punto Final.

PI ----> PF
ó
PF <---- PI
o Quizás diagonal.


No se donde poner esto, así que lo pongo en programación general.


En línea

Te vendería mi talento por poder dormir tranquilo.
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #1 en: 28 Junio 2011, 17:28 pm »

Sabiendo coordenadas inicial (x1, y1) y la coordenadas finales (x2, y2) podrias calcular el Vector Direccion

dx=x2-x1;
dy=y2 - y1;

teniendo el vector direccion dx:dy (ojo, no son coordenadas, es la direccion)

Puedes calcular el angulo
angle=atan2(dy, dx)

y si lo quieres en radianes
angled= atan2 (y,x) * 180 / PI;


En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #2 en: 28 Junio 2011, 20:52 pm »

Bueno, lo entiendo, aunque lo estaba haciendo alrevez :/, podríamos darme un ejemplo para graficar el angulo?

Supongo que sería algo así,

Código
  1.      |
  2.  180 | 90  
  3. -------------
  4.  270 | 360
  5.      |
« Última modificación: 28 Junio 2011, 21:06 pm por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
_Enko


Desconectado Desconectado

Mensajes: 538



Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #3 en: 28 Junio 2011, 22:33 pm »


No te entiendo.... te refieres como una manecilla de reloj?

x1= 0;
y1 = 0;
angulo = 90
Distancia = 10
anguloRadianes = angulo * Pi / 180;
x2 = sin(anguloRadianes) * Distancia;
y2 = cos(anguloRadianes) * Distancia.
Linea(x1,y1, x2, y2)
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #4 en: 29 Junio 2011, 02:23 am »

A lo que me refiero es que necesito saber si la dirección de las 2 posiciones, es de izq a der, o der a izq, etc... Supongo que el angulo debería ser entre los 360°

Esta dirección es más que todo para poder mostrar una imagen de una fecha, y son 4 posibles imagenes, que son estás...

Código:
1. ---> "Izq-Der"

2. <--- "Der-Izq"

3. -
      -
        -> "Diagonal Izq-Der"

4.         - "Diagonal Der-Izq"
      -
 <-
« Última modificación: 29 Junio 2011, 02:30 am por Shell Root » En línea

Te vendería mi talento por poder dormir tranquilo.
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #5 en: 29 Junio 2011, 03:19 am »

No estoy seguro, pero podrias hacer algo asi.

PI = (xi; yi)
PF = (xf; yf)

PFPI = PF - PI = (xf - xi; yf - xi).

Y a partir de los valores que te de:
Si (xf - xi) es positivo e (yf - xi) es positivo = 1º cuadrante.
Si (xf - xi) es negativo e (yf - xi) es positivo = 2º cuadrante.
Si (xf - xi) es negativo e (yf - xi) es negativo = 3º cuadrante.
Si (xf - xi) es positivo e (yf - xi) es negativo = 4º cuadrante.

Si alguno de los valores da 0, te toca calcular si esta a 0, 90, 180 o 270 grados.

Un saludo :)

En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #6 en: 29 Junio 2011, 09:15 am »

Yo lo tenia así, pero no me funciona en algunos casos... :/
Código
  1. resLat = inicio[0] - fin[0];
  2. resLon = inicio[1] - fin[1];
  3.  
  4. if( (resLat < 0) && ( resLon < 0) ){
  5.   return "--->";
  6. }else if( (resLat > 0) && ( resLon < 0) ){
  7.   return "Diag-->";
  8. }else if( (resLat < 0) && ( resLon > 0) ){
  9.   return "<--Diag";
  10. }else if( (resLat > 0) && ( resLon > 0) ){
  11.   return "<---";
  12. }
En línea

Te vendería mi talento por poder dormir tranquilo.
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #7 en: 29 Junio 2011, 19:52 pm »

Esto...

Código
  1. resLat = inicio[0] - fin[0];
  2. resLon = inicio[1] - fin[1];

No seria asi?

Código
  1. resLat = fin[0] - inicio[0];
  2. resLon = fin[1] - inicio[1];
En línea

Shell Root
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.724


<3


Ver Perfil WWW
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #8 en: 29 Junio 2011, 21:37 pm »

.., aunque lo estaba haciendo alrevez :/,
En línea

Te vendería mi talento por poder dormir tranquilo.
criskapunk

Desconectado Desconectado

Mensajes: 277



Ver Perfil
Re: Dirección entre dos puntos (Latitud-Longitud)
« Respuesta #9 en: 29 Junio 2011, 21:47 pm »

En que casos no te funciona?
En línea

Páginas: [1] 2 Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines