完全平方差
\cr(a-b)²=a²-2ab+b²

$a$

$b$

$a-b$

$a-b$

$a$

$a$

$b$

$b$

$d=%v$

$a$

$a$

$a$

$b$

$a$

$b$

$b$

$b$

$b$

n = 0 (slider from 0 to 16, step 1)
text1: "" + (LaTeX[If[n ≥ 1, "∵(a+b)²=a²+2ab+b²"]]) + "
\cr" + (LaTeX[If[n ≥ 2, "∴(a-b)²=[a+(-b)]²"]]) + "
\cr" + (LaTeX[If[n ≥ 3, "\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=a²+2a(-b)+b²"]]) + "
\cr" + (LaTeX[If[n ≥ 4, "\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=a²-2ab+b²"]]) + ""
O = (8, -5.26)
ray = Vector(O, (x(Corner[2]), y(O)))
A = Point(ray)
a_1 = Segment(O, A)
P = Point(a_1)
a_0 = Segment(O, P)
a_2 = Segment(A, P)
a_3 = Segment(O, P)
d0 = Distance(O, P)
d1 = Distance(A, P)
Q: O + (0, d0)
a_4 = Segment(O, Q)
poly_{11}, o, p, a, q = Polygon(O, P, P + Q - O, Q)
a_5 = Segment(A, A + (0, d0 + d1))
a_6 = Segment(O + (0, d0 + d1), A + (0, d0 + d1))
a_7 = Segment(O + (0, d0 + d1), Q)
poly_{12}, o_1, a_8, b, c = Polygon(O, A, A + (0, d0 + d1), O + (0, d0 + d1))
poly_{13}, q_1, d_1, e, f = Polygon(Q, Q + (d0 + d1, 0), Q + (d0 + d1, d1), Q + (0, d1))
poly_{14}, g, h, i, j = Polygon(P, P + (0, d0 + d1), P + (d1, d0 + d1), P + (d1, 0))
d = 0 (slider from 0 to 1.4, step 0.001)
R: O + (d0, d0)
S: O + (d0 + d1, d0 + d1)
T: O + (0, d0 + d1)
U: O + (d0 + d1, d0)
V: O + (d0, d0 + d1)
poly_{16a}, k, l, m, r = Polygon(Translate[O, Vector[((0.85 * d) * Vector[O, O + ((-(d1 + d0)), 0)])]], Translate[A, Vector[((0.85 * d) * Vector[O, O + ((-(d1 + d0)), 0)])]], Translate[S, Vector[((0.85 * d) * Vector[O, O + ((-(d1 + d0)), 0)])]], Translate[T, Vector[((0.85 * d) * Vector[O, O + ((-(d1 + d0)), 0)])]])
Q' = Translate(Q, Vector[(d * Vector[Q, T])])
U' = Translate(U, Vector[(d * Vector[Q, T])])
S' = Translate(S, Vector[(d * Vector[Q, T])])
T' = Translate(T, Vector[(d * Vector[Q, T])])
poly_{16b}, f_1, g_1, h_1, i_1 = Polygon(Translate[Q, Vector[(d * Vector[Q, Q + (0, 1.5)])]], Translate[U, Vector[(d * Vector[Q, Q + (0, 1.5)])]], Translate[S, Vector[(d * Vector[Q, Q + (0, 1.5)])]], Translate[T, Vector[(d * Vector[Q, Q + (0, 1.5)])]])
R' = Translate(R, Vector[(d * Vector[R, U])])
U'_1 = Translate(U, Vector[(d * Vector[R, U])])
A' = Translate(A, Vector[(d * Vector[R, U])])
P' = Translate(P, Vector[(d * Vector[R, U])])
poly_{16c}, s, t, b_1, c_1 = Polygon(Translate[V, Vector[(d * Vector[R, R + (1.5, 0)])]], Translate[S, Vector[(d * Vector[R, R + (1.5, 0)])]], Translate[A, Vector[(d * Vector[R, R + (1.5, 0)])]], Translate[P, Vector[(d * Vector[R, R + (1.5, 0)])]])
V' = Translate(V, Vector[(d * Vector[R, S])])
S'_1 = Translate(S, Vector[(d * Vector[R, S])])
U'_2 = Translate(U, Vector[(d * Vector[R, S])])
R'_1 = Translate(R, Vector[(d * Vector[R, S])])
poly_{16d}, j_1, k_1, l_1, m_1 = Polygon(Translate[V, Vector[(d * Vector[R, R + (1.5, 1.5)])]], Translate[S, Vector[(d * Vector[R, R + (1.5, 1.5)])]], Translate[U, Vector[(d * Vector[R, R + (1.5, 1.5)])]], Translate[R, Vector[(d * Vector[R, R + (1.5, 1.5)])]])
e_1 = Segment(P, A)
J = (-3.48, 0.88)
Rec9, n_1, p_1, r_1, s_1 = Polygon(J + (6.2, 0), J + (8.7, 0), J + (8.7, -1), J + (6.2, -1))
text2: "(a-b)²=" + (LaTeX[If[n ≥ 9, "(a-b)(a-b)"]]) + "
\cr" + (LaTeX[If[n ≥ 11, "\;\;\;\;\;\;\;\;\;\;\;\;\;\;\;=a^2-ab-ba+b^2"]]) + "
\cr" + (LaTeX[If[n ≟ 16, "\;\;\;\;\;\;\;\;\;\;\;\;\;=a²-2ab+b²"]]) + ""
Rec11, t_1, b_2, c_2, d_2 = Polygon(J + (3.7, (-1.1)), J + (9.7, (-1.1)), J + (9.7, (-2.1)), J + (3.7, (-2.1)))
Rec12, e_2, f_2, g_2, h_2 = Polygon(J + (4.7, (-1.1)), J + (9.7, (-1.1)), J + (9.7, (-2.1)), J + (4.7, (-2.1)))
Rec13, i_2, j_2, k_2, l_2 = Polygon(J + (6.5, (-1.1)), J + (9.7, (-1.1)), J + (9.7, (-2.1)), J + (6.5, (-2.1)))
Rec14, m_2, n_2, p_2, q_2 = Polygon(J + (8.2, (-1.1)), J + (9.7, (-1.1)), J + (9.7, (-2.1)), J + (8.2, (-2.1)))