Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





Una duda sobre colisiones

Iniciado por bahamut222, 19 de Febrero de 2008, 11:33:13 AM

« anterior - próximo »

bahamut222

Buenas! es mi primer post en esta comunidad ^^

Bueno, al grano... resulta que necesito saber cuando un punto(x,y) entra dentro del área de una elipse. Con el rectángulo y el circulo no he tenido problemas, pero no logro saber cuando el punto entra en contacto con la elipse.

Gracias!

Tei

Primer acercamiento:

Colisión de P con una elipse de centro C:

Buscaría el corte de la linea definida por P y C  contra la elipse en el punto Q.  Si la distancia  QC es mayor que PC, entonces el punto P esta dentro (colisiona) con la elipse.

Con 2 casos especiales: Q y P son iguales => colisión,  Q y C son iguales => colisión.

bahamut222

Cita de: "Tei"Primer acercamiento:

Colisión de P con una elipse de centro C:

Buscaría el corte de la linea definida por P y C  contra la elipse en el punto Q.  Si la distancia  QC es mayor que PC, entonces el punto P esta dentro (colisiona) con la elipse.

Con 2 casos especiales: Q y P son iguales => colisión,  Q y C son iguales => colisión.

Muchas gracias! pero lo que pasa es que no se hallar Q  :oops:

tamat

Tei serviría para trabajar en una consultora.

Bahamut, qué parametros usas para definir la elipse? Si usas dos puntos (que creo que es lo habitual) y un valor que define la suma de la distancia a los dos puntos, entonces basta con que calcules la distancia de tu punto a los dos focos de la elipse y mires si la suma es mayor que ese valor.

Echale una ojeada a la elipse en wikipedia
Por un stratos menos tenso

bahamut222

Cita de: "tamat"Tei serviría para trabajar en una consultora.

Bahamut, qué parametros usas para definir la elipse? Si usas dos puntos (que creo que es lo habitual) y un valor que define la suma de la distancia a los dos puntos, entonces basta con que calcules la distancia de tu punto a los dos focos de la elipse y mires si la suma es mayor que ese valor.

Echale una ojeada a la elipse en wikipedia

Es que tengo el centro, el radio menor y la distorsión (Radio x/ Radio Y) VB 6.0

A partir del centro (y el radio mayor y menor), de donde obtengo los 2 focos? gracias!!!

Tei

No me habia mirado la wikipedia ni me acordaba de esa propiedad tan especial de las elipses. Se puede hacer una solucion muy elegante con solo conocer esos C1, C2.
Ains..

bahamut222

Cita de: "Tei"No me habia mirado la wikipedia ni me acordaba de esa propiedad tan especial de las elipses. Se puede hacer una solucion muy elegante con solo conocer esos C1, C2.
Ains..

Si, miraré a ver si consigo saber los 2 focos... si a alguien se le ocurre algo que me lo diga, que yo en mates no soy un lumbreras xDD

bahamut222

Cita de: "Tei"No me habia mirado la wikipedia ni me acordaba de esa propiedad tan especial de las elipses. Se puede hacer una solucion muy elegante con solo conocer esos C1, C2.
Ains..

Perdon por los duplicados, el foro no anda muy bien jeje

Ya lo tengo clarisimo!! muchas gracias por contestar!

http://www.educarex.es/recursos/cnice/descartes/Esp/Bach_CNST_2/Lugares_geometricos_conicas/elipse.htm

La formula de a^2 = b^2 + c^2 es lo que necesitaba, despejo c y se queda

c = sqrt(a^2 - b^2)

Con esto saco donde van situados los focos de la elipse, a partir de ahí es medir la suma de las 2 rectas que van desde mu punto a colisionar con los 2 focos y ver si es mayor o menor al radio mayor :D o sea (a)

tamat

Asumo entonces que tu elipse solo puede estar achatada por los ejes X o Y (es decir, nunca está inclinada), entonces basta con que si la elipse está achatada en el eje Y (más ancha que alta) cogas el punto y achates su componente Y y luego hagas la comparación como si fuera una esfera.

La idea es que asumas que la elipse es una esfera achatada, con lo que si tu punto (se achata) tambien pues funcionará, quizá tengas que tratar el punto en coordenadas locales de la esfera para que funcione.

Resuminedo:

Testear sobre la esfera el Punto P1 que sale de  (P - CentroEsfera)*(Aspectx,Aspecty)
Por un stratos menos tenso

SPARTANVS







Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.