Supongamos que tenemos tres puntos: $p = (x_p,y_p)$, $q = (x_q,y_q)$ y $a = (x_a,y_a)$. ¿Cómo puedo encontrar el punto de $b$, lo que es reflejo de $a$ a través de una línea trazada a través de $p$$q$? Sé que es simple de calcular, cuando tenemos $p$, $q$ etc. Pero yo quiero hacer esto en mi programa, y no estoy seguro de que, cómo calcular esto.
OK, he encontrado la solución por mí mismo (de respuestas, pero en este tema realmente me ayudó).
Supongamos que tenemos una línea de $Ax+By+C=0$, y $A^2+B^2 \not= 0$. $M (a,b)$ la reflexión a través de la línea es el punto: $M' (\frac{aB^2-aA^2-2bAB-2AC}{A^2+B^2}, \frac{bA^2-bB^2-2aAB-2BC}{A^2+B^2})$
En mi caso, no tenemos la línea, pero sólo 2 puntos. Cómo podemos encontrar la $A,B,C$? Es muy sencillo:
Digamos, que $p=(p_x,p_y)$$q = (q_x,q_y)$. La línea de la ecuación es: $(y-p_y)(q_x-p_x) - (q_y-p_y)(x-p_x) = 0$
Después de algunos cálculos tenemos: $y(q_x-p_x) - x(q_y-p_y) - (p_y(q_x-p_x)+p_x(p_y-q_y)) = 0$
Así: $A = p_y-q_y$, $B = q_x-p_x$ y $C = -p_y(q_x-p_x)-p_x(p_y-q_y)$.
Eso es todo.