Connecting Perimeters by John Ulbright
Loading the math board and drawing, please wait…
This example demonstrates how to connect perimeters of polygons using GeoGebra, analyzing changes through transformations like dilation and coordinate geometry. Core concepts include perimeter calculation, polynomial functions, and geometric constructions. It utilizes commands such as Sequence, Polygon, Point, OrthogonalLine, Intersect, Perimeter, Segment, and Text. Suitable for high school mathematics education to understand the relationship between geometric transformations and function graphs.
GeoGebra Commands & Parameters
Sequence(Sequence[Point[{i, j}], i, ((-length)) / 2, length / 2, 1], j, ((-width)) / 2, width / 2, 1) → list1Polygon(A, B, C, D) → poly1, a, b, c, dPoint(list1) → EPoint(list1) → FPoint(list1) → GPoint(list1) → HOrthogonalLine(E, d) → eOrthogonalLine(E, a) → fOrthogonalLine(F, a) → gOrthogonalLine(F, b) → hOrthogonalLine(H, c) → iOrthogonalLine(H, d) → jOrthogonalLine(G, c) → kOrthogonalLine(G, b) → lIntersect(c, i) → IIntersect(j, d) → JIntersect(b, l) → KIntersect(g, a) → LIntersect(h, b) → MIntersect(k, c) → NIntersect(f, a) → PIntersect(e, d) → RPolygon(H, I, R, J, N, G, K, M, F, L, P, E) → poly2, h_1, e_1, r, j_1, i_1, n, g_1, k_1, m, f_1, l_1, pPerimeter(poly1) → oPerimeter(poly2) → qSequence(Segment[list1(i, 1), list1(i, length + 1)], i, 1, width + 1) → list2Sequence(Segment[list1(1, i), list1(width + 1, i)], i, 1, length + 1) → list3Segment((D * (1 - vertMove)) + (I * vertMove), (J * (1 - vertMove)) + (H * vertMove)) → topLeftVertSegment((C * (1 - horMove)) + (K * horMove), (N * (1 - horMove)) + (G * horMove)) → topRightHorSegment((C * (1 - vertMove)) + (N * vertMove), (K * (1 - vertMove)) + (G * vertMove)) → topRightVertSegment((B * (1 - vertMove)) + (L * vertMove), (M * (1 - vertMove)) + (F * vertMove)) → bottomRightVertSegment((A * (1 - vertMove)) + (P * vertMove), (R * (1 - vertMove)) + (E * vertMove)) → bottomLeftVertSegment((D * (1 - horMove)) + (J * horMove), (I * (1 - horMove)) + (H * horMove)) → topLeftHorSegment((A * (1 - horMove)) + (R * horMove), (P * (1 - horMove)) + (E * horMove)) → bottomLeftHorSegment((B * (1 - horMove)) + (M * horMove), (L * (1 - horMove)) + (F * horMove)) → bottomRightHorSegment(D, D + (Min[length, perimeterTimer], 0)) → topSegment(C, C - (0, ((perimeterTimer > length) * Min[width, perimeterTimer - length]))) → rightSegment(B, B - (((perimeterTimer > length + width) * Min[length, perimeterTimer - width - length]), 0)) → bottomSegment(A, A + (0, ((perimeterTimer > (2 * length) + width) * Min[width, perimeterTimer - (2 * length) - width]))) → leftText(d, Midpoint[d] + (-1, 0)) → leftWidthTextText(a, Midpoint[a] + (0, -1)) → bottomLengthTextText(Distance[R, L], Midpoint[R, L] - (0, 1)) → text1Text(Distance[P, M], Midpoint[P, M] - (0, 1)) → text2Text(Distance[I, K], Midpoint[I, K] + (0, 0.5)) → text3Text(Distance[J, N], Midpoint[J, N] + (0, 0.5)) → text4Text(topRightHor, Midpoint[topRightHor] + (0, 1 / 2)) → TRHtextText(topLeftHor, Midpoint[topLeftHor] + (0, 1 / 2)) → TLHtextText(bottomLeftHor, Midpoint[bottomLeftHor] + (0, -1)) → BLHtextText(Distance[P, L], Midpoint[P, L] + (0, -1)) → BMHtextText(bottomRightHor, Midpoint[bottomRightHor] + (0, -1)) → BRHtextText(Distance[R, D], Midpoint[R, D] + (-0.8, 0)) → text8Text(Distance[J, P], Midpoint[J, P] + (-0.8, 0)) → text6Text(Distance[J, R], Midpoint[J, R] + (-0.8, 0)) → text9Text(Distance[I, N], Midpoint[I, N] + (0, 1 / 2)) → topTextText(c, Midpoint[c] + (0, 1 / 2)) → topLengthTextText(Distance[K, M], Midpoint[K, M] + (1 / 2, 0)) → text10Text(Distance[K, B], Midpoint[K, B] + (1 / 2, 0)) → text13Text(Distance[M, C], Midpoint[M, C] + (1 / 2, 0)) → text14Text(b, Midpoint[b] + (1 / 2, 0)) → rightWidthTextText(Distance[N, G], Midpoint[topRightVert] + (1 / 2, 0)) → text11Text(Distance[I, H], Midpoint[topLeftVert] + (-0.8, 0)) → text5Text(Distance[F, L], Midpoint[bottomRightVert] + (1 / 2, 0)) → text12Text(Distance[E, P], Midpoint[bottomLeftVert] + (-0.8, 0)) → text7Segment(J, J + (Min[Distance[H, J], perimeterTimer], 0)) → p1Segment(H, H + (0, ((perimeterTimer > Distance[H, J]) * Min[Distance[I, H], perimeterTimer - Distance[H, J]]))) → p2Segment(I, I + (Min[Distance[I, N], perimeterTimer - p1 - p2], 0)) → p3Segment(N, N - (0, Min[Distance[G, N], perimeterTimer - p1 - p2 - p3])) → p4Segment(G, G + (Min[Distance[G, K], perimeterTimer - p1 - p2 - p3 - p4], 0)) → p5Segment(K, K + (0, (-Min[Distance[M, K], perimeterTimer - p1 - p2 - p3 - p4 - p5]))) → p6Segment(M, M + ((-Min[Distance[M, F], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6]), 0)) → p7Segment(F, F + (0, (-Min[Distance[F, L], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6 - p7]))) → p8Segment(L, L + ((-Min[Distance[L, P], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6 - p7 - p8]), 0)) → p9Segment(P, P + (0, Min[Distance[P, E], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6 - p7 - p8 - p9])) → p10Segment(E, E + ((-Min[Distance[E, R], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6 - p7 - p8 - p9 - p10]), 0)) → p11Segment(R, R + (0, Min[Distance[R, J], perimeterTimer - p1 - p2 - p3 - p4 - p5 - p6 - p7 - p8 - p9 - p10 - p11])) → p12Text(length, Midpoint[A, B] + (0, -1)) → bottomTextPolygon(O, Q, S, T) → q1, o_1, q_1, s_1, t_1