Midpoints of a Quadrilateral Form a Parallelogram
Loading the math board and drawing, please wait…
This example dynamically illustrates that the midpoints of any quadrilateral always form a parallelogram. Key concepts include quadrilaterals, parallelograms, midpoints, and vectors. Using GeoGebra commands such as Polygon, Midpoint, and Dilate, this construction provides a visual proof of this geometric property. Suitable for middle school and above students studying geometric transformations and proofs.
GeoGebra Commands & Parameters
Polygon(A, B, C, D) → poly1, a, b, c, dMidpoint(A, B) → EMidpoint(B, C) → FMidpoint(C, D) → GMidpoint(D, A) → HPolygon(E, F, G, H) → poly2, e, f, g, hDilate(A, If[0 < i ≤ 1, 1 - i, 0], E) → A'Dilate(B, If[0 < i ≤ 1, 1 - i, 0], F) → B'Dilate(C, If[0 < i ≤ 1, 1 - i, 0], G) → C'Dilate(D, If[0 < i ≤ 1, 1 - i, 0], H) → D'Segment(A, A') → jSegment(B, B') → kSegment(C, C') → lSegment(D, D') → mDilate(E, If[1 < i ≤ 2, 2 - i, 0], B) → E'Dilate(F, If[1 < i ≤ 2, 2 - i, 0], C) → F'Dilate(G, If[1 < i ≤ 2, 2 - i, 0], D) → G'Dilate(H, If[1 < i ≤ 2, 2 - i, 0], A) → H'Segment(E, E') → nSegment(F, F') → pSegment(G, G') → qSegment(H, H') → rRotate(A, If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], E) → A'_1Rotate(A', If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], E) → A''Segment(A'_1, A'') → j'Rotate(B, If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], F) → B'_1Rotate(B', If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], F) → B''Segment(B'_1, B'') → k'Rotate(C, If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], G) → C'_1Rotate(C', If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], G) → C''Segment(C'_1, C'') → l'Rotate(D, If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], H) → D'_1Rotate(D', If[2 < i ≤ 3, ((-(i - 2)) * π), (-π)], H) → D''Segment(D'_1, D'') → m'Dilate(E, If[3 < i ≤ 4, 4 - i, 0], F) → E'_1Segment(E, E'_1) → sDilate(F, If[4 < i ≤ 5, 5 - i, 0], G) → F'_1Segment(F, F'_1) → tDilate(E, If[5 < i ≤ 6, 6 - i, 0], H) → E'_2Vector(E, E'_2) → uTranslate(E, u) → E'_3Translate(E'_1, u) → ISegment(E'_3, I) → s'Dilate(G, If[6 < i ≤ 7, 7 - i, 0], H) → G'_1Vector(G, G'_1) → vTranslate(F, v) → F'_2Translate(F'_1, v) → JSegment(F'_2, J) → t'Polygon(E, F, G, H) → poly3, e_1, f_1, g_1, h_1