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!
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.
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:
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 (http://es.wikipedia.org/wiki/Elipse)
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 (http://es.wikipedia.org/wiki/Elipse)
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!!!
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..
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
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)
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)
bahamut? tu no eres de ogame?