Compose two  reflections
Author: Laurel Langford

The original flag is B (green), which is reflected over e to get B' (gray), which is in turn reflected over f to get B'' (red).

Some questions to explore:
1. Does the composition give the same result as reflecting across the lines in the opposite order?
2. Is the composition the same as the result y of a single translation?
3. Is the composition the same as  the result y of a  single rotation?
4. Is the composition the same as  the result y of a  single reflection?
5. Is the composition the same as  the result y of a  single glide reflection?
If any of 2-5 seem to be correct, the next questions are: is this always true, and if not, under what circumstances is this true?
Additionally, in any of the cases 2-5, can you relate the single transformation (2-5) to the mirror lines in any specific way?  Can you, for instance, describe the length or direction of a translation vector, or the point or angle for a rotation in terms of the original reflection lines?

Compose two reflections

B'

B''

Show reflection in line f then e (blue)

y

Show reflection in line h (purple)

y

Show rotation through angle α,

around point P (purple)

y

Show translation by vector u (purple)

y

Show glide reflection by vector v (purple)

A = (-2.7, 1.1)
B = (-2.94, 3.68)
a = Segment(A, B)
C = (-1.86, 3.7600000000000002)
b = Segment(B, C)
D = (-1.78, 2.82)
c = Segment(C, D)
E = Point(a)
d = Segment(D, E)
F = (-1.06, 3.14)
G = (-1.4, 1.22)
e = Line(F, G)
H = (1.26, 3.38)
I = (2.24, 0.9400000000000001)
f = Line(H, I)
A'_1 = Mirror(A, e)
B'_1 = Mirror(B, e)
a'_1 = Segment(A'_1, B'_1)
B'_2 = Mirror(B, e)
C'_1 = Mirror(C, e)
b'_1 = Segment(B'_2, C'_1)
C'_2 = Mirror(C, e)
D'_1 = Mirror(D, e)
c'_1 = Segment(C'_2, D'_1)
D'_2 = Mirror(D, e)
E'_1 = Mirror(E, e)
d'_1 = Segment(D'_2, E'_1)
A''_1 = Mirror(A'_1, f)
J = Mirror(B'_1, f)
a''_1 = Segment(A''_1, J)
B''_1 = Mirror(B'_2, f)
K = Mirror(C'_1, f)
b''_1 = Segment(B''_1, K)
C''_1 = Mirror(C'_2, f)
L = Mirror(D'_1, f)
c''_1 = Segment(C''_1, L)
D''_1 = Mirror(D'_2, f)
E''_1 = Mirror(E'_1, f)
d''_1 = Segment(D''_1, E''_1)
A'_2 = Mirror(A, f)
B'_3 = Mirror(B, f)
a'_2 = Segment(A'_2, B'_3)
B'_4 = Mirror(B, f)
C'_3 = Mirror(C, f)
b'_2 = Segment(B'_4, C'_3)
C'_4 = Mirror(C, f)
D'_3 = Mirror(D, f)
c'_2 = Segment(C'_4, D'_3)
D'_4 = Mirror(D, f)
E'_2 = Mirror(E, f)
d'_2 = Segment(D'_4, E'_2)
A''_2 = Mirror(A'_2, e)
M = Mirror(B'_3, e)
a''_2 = Segment(A''_2, M)
B''_2 = Mirror(B'_4, e)
N = Mirror(C'_3, e)
b''_2 = Segment(B''_2, N)
C''_2 = Mirror(C'_4, e)
O = Mirror(D'_3, e)
c''_2 = Segment(C''_2, O)
D''_2 = Mirror(D'_4, e)
E''_2 = Mirror(E'_2, e)
d''_2 = Segment(D''_2, E''_2)
g = false
P = (0.8, 0.3)
Q = (-2.82, -0.24)
h = Line(P, Q)
A'_3 = Mirror(A, h)
B'_5 = Mirror(B, h)
a'_3 = Segment(A'_3, B'_5)
B'_6 = Mirror(B, h)
C'_5 = Mirror(C, h)
b'_3 = Segment(B'_6, C'_5)
C'_6 = Mirror(C, h)
D'_5 = Mirror(D, h)
c'_3 = Segment(C'_6, D'_5)
D'_6 = Mirror(D, h)
E'_3 = Mirror(E, h)
d'_3 = Segment(D'_6, E'_3)
i = false
R = (-1.36, -0.28)
V = (5.92, 0.66)
W = (6.8, 0.66)
p = Circle(V, W)
l = Segment(W, V)
Z = Point(p)
m = Segment(V, Z)
α = Angle(W, V, Z)
A'_4 = Rotate(A, α, R)
B'_7 = Rotate(B, α, R)
a'_4 = Segment(A'_4, B'_7)
B'_8 = Rotate(B, α, R)
C'_7 = Rotate(C, α, R)
b'_4 = Segment(B'_8, C'_7)
C'_8 = Rotate(C, α, R)
D'_7 = Rotate(D, α, R)
c'_4 = Segment(C'_8, D'_7)
D'_8 = Rotate(D, α, R)
E'_4 = Rotate(E, α, R)
d'_4 = Segment(D'_8, E'_4)
j = false
S = (2.7800000000000002, -0.34)
T = (2.58, -3.46)
u = Vector(S, T)
A'_5 = Translate(A, u)
B'_9 = Translate(B, u)
a'_5 = Segment(A'_5, B'_9)
B'_{10} = Translate(B, u)
C'_9 = Translate(C, u)
b'_5 = Segment(B'_{10}, C'_9)
C'_{10} = Translate(C, u)
D'_9 = Translate(D, u)
c'_5 = Segment(C'_{10}, D'_9)
D'_{10} = Translate(D, u)
E'_5 = Translate(E, u)
d'_5 = Segment(D'_{10}, E'_5)
k = false
U = (2.74, 0.98)
A_1 = (2.88, -1.94)
v = Vector(U, A_1)
A' = Translate(A, v)
B'_{11} = Translate(B, v)
a' = Segment(A', B'_{11})
B' = Translate(B, v)
C'_{11} = Translate(C, v)
b' = Segment(B', C'_{11})
C' = Translate(C, v)
D'_{11} = Translate(D, v)
c' = Segment(C', D'_{11})
D' = Translate(D, v)
E' = Translate(E, v)
d' = Segment(D', E')
n = Line(U, A_1)
A'' = Mirror(A', n)
B_1 = Mirror(B'_{11}, n)
a'' = Segment(A'', B_1)
B'' = Mirror(B', n)
C_1 = Mirror(C'_{11}, n)
b'' = Segment(B'', C_1)
C'' = Mirror(C', n)
D_1 = Mirror(D'_{11}, n)
c'' = Segment(C'', D_1)
D'' = Mirror(D', n)
E'' = Mirror(E', n)
d'' = Segment(D'', E'')
o = false