Riflessione rispetto a una retta

La riflessione rispetto alla retta r di equazioni parametriche P(t) = P[0]+t*v (con v unitario: v[1]^2+v[2]^2 = 1 ) viene ricondotta alla riflessione rispetto all'asse x componendo la traslazione T(-x[0],-y[0]) , che porta P[0] nell'origine, con la rotazione attorno all'origine dell'angolo -theta , dove theta è l'angolo che la retta forma con l'asse positivo delle x . Dopo aver eseguito la riflessione R[x] , è sufficiente comporre con le trasformazioni inverse della rotazione e della traslazione per ottenere la riflessione rispetto a r .

Dunque R = T[[-x[0], -y[0]]]*Rot[0,0](-theta)*S(1,-1)*Rot[...

L'angolo theta è caratterizzato dalle condizioni cos(theta) = v[1] , sin(theta) = v[2] . Quindi la matrice Rot[0,0](-theta) della rotazione è

matrix([[v[1], -v[2], 0], [v[2], v[1], 0], [0, 0, 1...

e quindi la matrice associata alla riflessione è il prodotto

matrix([[1, 0, 0], [0, 1, 0], [-x[0], -y[0], 1]])*m...

cioè la matrice

matrix([[v[1]^2-v[2]^2, 2*v[1]*v[2], 0], [2*v[1]*v[...

.

Per ottenere la matrice della riflessione a partire dai coefficienti a, b, c di un'equazione cartesiana a*x+b*y+c = 0 di r , basta fare le sostituzioni

v[1] = -b/sqrt(a^2+b^2), v[2] = a/sqrt(a^2+b^2), -v...

e ottenere la matrice

R[a,b,c] = 1/(a^2+b^2) matrix([[b^2-a^2, -2*a*b, 0], [-2*a*b, a^2-b^2, 0],...

.

Esempio