Saltar al contenido

¿Calcular de qué lado de una línea recta se encuentra un punto dado?

No busques más en otros sitios ya que llegaste al sitio indicado, tenemos la respuesta que quieres hallar sin complicarte.

Solución:

Para determinar de qué lado de la línea $A=(x_1,y_1)$ a $B=(x_2,y_2)$ un punto $P=(x,y)$ cae sobre lo que necesita para calcular el valor: – $$d=(x-x_1)(y_2-y_1)-(y-y_1)(x_2-x_1)$$
Si $d<0$ entonces el punto está a un lado de la línea, y si $d>0$ entonces se encuentra en el otro lado. Si $d=0$ entonces el punto se encuentra exactamente en la línea.

Para ver si los puntos en el lado izquierdo de la línea son aquellos con valores positivos o negativos, calcule el valor de $d$ para un punto que sabes que está a la izquierda de la línea, como $(x_1-1,y_1)$ y luego compare el signo con el punto que le interesa.

Apéndice:

Para completar, una explicación de cómo funciona esto es la siguiente:

La dirección de la línea $AB$ Puede ser definido como PS = PS

La dirección ortogonal (perpendicular) a esa línea será $vec n=PS (volteamos las x y las y y negamos un componente, es decir (y’s, -x’s)). Puede verificar que esto es ortogonal tomando el producto punto con el valor original y verifique que sea 0).

Un posible vector que va de la recta al Punto $P$ es $D = PA = PS

este vector $D$ está hecho de 2 componentes, un componente $D^paralelo$ que es paralela a la recta $AB$ y un componente $D^bot$ que es perpendicular a la recta $AB$. Por definición $D^parallel cdot vec n = 0$. Ya que una dirección paralela a la recta será perpendicular a la normal de esa recta.

Nos interesa saber si el punto está en el lado al que apunta la normal o en el lado opuesto al que apunta la normal. En otras palabras, queremos saber si $D^bot$ está en la misma dirección que $vecn$ O no.

Este es esencialmente el signo del producto escalar de $D$ y $vecn$ ya que $D cdot vec n = (D^bot + D^parallel) cdot vec n = D^bot cdot vec n$

Aritméticamente:
$$ cdot $$$$=(x-x_1)(y_2 – y_1) – (y-y_1)(x_2 – x_1)$$

En resumen, estamos calculando la distancia más corta con signo desde la línea $AB$ al punto $P$ luego evaluando el signo de esa distancia.

Diagrama para mayor claridad:
ingrese la descripción de la imagen aquí

Si el punto está dado por el vector 2D $vecP$ y el punto final de la línea por $vecA$ y $vecB$, entonces calcula el producto vectorial: $$vecAB timesvecAP = x_ABcdot y_AP – x_APcdot y_AB$$ $$x_AB = x_B – x_A, x_AP = x_P – x_A …$$ El signo de arriba determinará en qué lado de la línea está tu píxel.

Una derivación alternativa para la misma fórmula es el producto escalar de $vecAP$ y un vector perpendicular a $vecAB$. Dado $A=(x_1,y_1)$ y $B=(x_2,y_2)$, definir vector $V$ perpendicular a $vecAB$ como $V=[y_2-y_1, x_1-x_2]PS. Entonces $$ V cdotp vecAP = (y_2-y_1)(x-x_1)+(x_1-x_2)(y-y_1)$$ Dado que el producto escalar es negativo si y sólo si el ángulo $alfa$ entre vectores satisface $ frac pi 2 < alpha < frac 3 2 pi$, el signo del producto escalar determina de qué lado $vecAB$$P$ Miente en.

Sección de Reseñas y Valoraciones

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



Utiliza Nuestro Buscador

Deja una respuesta

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