a

b

c

a

b

c

复位

旋转

该作品的制作教程：

https://www.toutiao.com/i6783133214744510980/

k = 1 (slider from 0 to 1)
A = (0, 0)
B: (5, 0)
C = Point(Semicircle[A, B])
t1, f, g, h, i, A1, C1 = Polygon(A, C, 4)
t2, j, l, m, n, C2, B1 = Polygon(C, B, 4)
t3, p, q, r, s, E, D = Polygon(B, A, 4)
M = Point(PolyLine[A1, C1, A], k)
M1, M1_1 = Intersect(Line[M, Segment[A, B]], PolyLine[A1, C, A])
N = Point(PolyLine[B1, C, B], k)
N1 = Intersect(Line[N, Segment[A, B]], PolyLine[B1, C2, B])
L = Point(Segment[E, A], k)
L1 = Intersect(Line[L, Segment[A, B]], Segment[B, D])
l1: {t1, t2, t3}
α = 3.141592653589793 rad (slider from 0 to 180°, step 50°)
l1' = Rotate(l1, α, Midpoint[A, B])
A1' = Rotate(A1, α, Midpoint[A, B])
C1' = Rotate(C1, α, Midpoint[A, B])
B1' = Rotate(B1, α, Midpoint[A, B])
C2' = Rotate(C2, α, Midpoint[A, B])
D' = Rotate(D, α, Midpoint[A, B])
E' = Rotate(E, α, Midpoint[A, B])
A' = Rotate(A, α, Midpoint[A, B])
B' = Rotate(B, α, Midpoint[A, B])
C' = Rotate(C, α, Midpoint[A, B])
M' = Rotate(M, α, Midpoint[A, B])
M1' = Rotate(M1, α, Midpoint[A, B])
N' = Rotate(N, α, Midpoint[A, B])
N1' = Rotate(N1, α, Midpoint[A, B])
L' = Rotate(L, α, Midpoint[A, B])
L1' = Rotate(L1, α, Midpoint[A, B])
q1', j_1, k_1, p_1, q_1, r_1 = Polygon(M', C1', A1', C', M1')
q2', t, s_1, t_1, a_1, b_1 = Polygon(N', C', B1', C2', N1')
q3', d, g_1, h_1, i_1 = Polygon(L', A', B', L1')
q2, n_1, c_1, b, c2, n1 = Polygon(N, C, B, C2, N1)
q1, m_1, c1, a, c, m1 = Polygon(M, C1, A, C, M1)
q3, l_1, e, d_1, f_1 = Polygon(L, E, D, L1)
text1 = Text("a^2", Centroid[t1] + (-0.5, 0.5), false, true)
text2 = Text("b^2", Centroid[t2] + (-0.5, 0.5), false, true)
text3 = Text("c^2", Centroid[t3] + (-0.8, 0.9), false, true)
text3' = Text("c^2", Centroid[Polygon[A', B', D', E']] + (-0.8, 0.9), false, true)
text2' = Text("b^2", Centroid[Polygon[C', C', C2', B1']] + (-0.7, 1.7), false, true)
text1' = Text("a^2", Centroid[Polygon[A1', C1', A', C']] + (-0.5, 0.7), false, true)
直角1 = Segment((A + (6 * C)) / 7 + (0.4 * UnitVector[Segment[C, B]]), (A + (6 * C)) / 7)
直角2 = Segment((A + (6 * C)) / 7 + (0.4 * UnitVector[Segment[C, B]]), Intersect[Line[(A + (6 * C)) / 7 + (0.4 * UnitVector[Segment[C, B]]), Segment[A, C]], Segment[B, C]])
直角1' = Rotate(直角1, α, Midpoint[A, B])
直角2' = Rotate(直角2, α, Midpoint[A, B])
o = true