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
La dirección ortogonal (perpendicular) a esa línea será $vec n=
Un posible vector que va de la recta al Punto $P$ es $D = PA =
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:
$$
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:
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.