Saltar al contenido

Comprobar si un punto está dentro de una elipse

Esta es el arreglo más exacta que encomtrarás dar, pero primero obsérvala detenidamente y valora si se puede adaptar a tu proyecto.

Solución:

La región (disco) limitada por la elipse está dada por la ecuación: $$ frac(xh)^2r_x^2 + frac(yk)^2r_y^2 leq 1. tag1 $$ Entonces, dado un punto de prueba $(x,y)$, conéctelo en $(1)$. Si se cumple la desigualdad, entonces está dentro de la elipse; de lo contrario, está fuera de la elipse. Además, el punto está en el límite de la región (es decir, en la elipse) si y sólo si la desigualdad se cumple estrictamente (es decir, el lado izquierdo se evalúa como $1$).

Otra forma utiliza la definición de elipse como los puntos cuya suma de distancias a los focos es constante.

Obtenga los focos en $(h+f, k)$ y $(hf, k)$, donde $f = sqrtr_x^2 – r_y^2$.

La suma de las distancias (observando las líneas desde $(h, k+r_y)$ hasta los focos) es $2sqrtf^2 + r_y^2 = 2 r_x $.

Entonces, para cualquier punto $(x, y)$, calcula $sqrt(x-(h+f))^2 + (yk)^2 + sqrt(x-(hf))^2 + (yk)^2 $ y compare esto con $2 r_x$.

Esto requiere más trabajo, pero me gusta usar la definición geométrica.

Además, para ambos métodos, si la velocidad es importante (es decir, está haciendo esto por muchos puntos), puede rechazar inmediatamente cualquier punto $(x, y)$ para el cual $|xh| > r_x$ o $|yk| > r_y$.

1) Considere el punto como un vector

$$ p=beginbmatriz x \ y \ endbmatriz $$

2) Considere el centro de la elipse como

$$ c=beginbmatriz h \ k \ endbmatriz $$

3) Reste el centro de la elipse $$ p_centrado= p – c $$ 4) Cree una matriz de blanqueamiento $$ W = Lambda^-1/2E^T $$ donde $$ Lambda = beginbmatrix r_x & 0 \ 0 & r_y \ endbmatrix $$ y $$ E = beginbmatrix e_mayor & e_menor\ endbmatrix $$ donde $e_major$ y $e_major$ son los vectores unitarios en la dirección de los ejes mayor y menor de la elipse. Dado que su ejemplo es para una matriz no rotada con un eje mayor a lo largo del eje x y un eje menor a lo largo del eje y

$e_mayor=beginbmatrix 1\ 0\ endbmatrix$ y $e_menor=beginbmatrix 0\ 1\ endbmatrix$

5) Blanquear el punto $$ p_blanco = Wp_centrado $$ 6) Verificar si la longitud del vector es menor que 1. Si lo es, entonces el punto está dentro de la elipse.

Nota: esto está inspirado en mi experiencia con matrices de covarianza. Intentaré actualizar esta respuesta con una relación intuitiva entre elipses y matrices de covarianza. Por ahora puedes echar un vistazo en http://www.visiondummy.com/2014/04/draw-error-ellipse-representing-covariance-matrix/

Te mostramos reseñas y valoraciones

Ten en cuenta compartir este tutorial si lograste el éxito.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *