Classifying Quadrilaterals by Four Sides

Classifying Quadrilaterals by Four Sides
Loading the math board and drawing, please wait…
2012-11-02 13:13
① This example demonstrates how to classify quadrilaterals into squares, rectangles, rhombuses, parallelograms, trapezoids, kites, etc., based on side lengths, presence of right angles, and parallel sides. ② Core mathematical concepts include quadrilateral definitions and properties, criteria for parallelism and perpendicularity, symmetry, and logical classification reasoning. ③ Construction highlights: Points and Segments define vertices and edges; Polygon builds the shapes; Circle, Semicircle, and Intersect create auxiliary circles and intersection points; Sequence and List generate multiple quadrilateral instances; Midpoint, Angle, Rotate, Vector, and If implement dynamic detection and labeling. ④ Suitable for middle‑school geometry classification lessons, high‑school review, and as a GeoGebra dynamic demonstration resource.

GeoGebra Commands & Parameters

  1. Point(Segment[(1, 2), (10, 2)]) → B
  2. Segment((0, 2), (round(10 * x(B)) / 10, 2)) → b
  3. Point(Segment[(1, 1), (10, 1)]) → A
  4. Segment((0, 1), (round(10 * x(A)) / 10, 1)) → a
  5. Semicircle((x(Q) - b, y(Q)), (x(Q) + b, y(Q))) → c_q
  6. Point(c_q) → R1
  7. Point(Segment[(1, 3), (10, 3)]) → C
  8. Segment((0, 3), (round(10 * x(C)) / 10, 3)) → c
  9. Circle(R, c) → c_r
  10. Point(Segment[(1, 4), (10, 4)]) → D
  11. Segment((0, 4), (round(10 * x(D)) / 10, 4)) → d
  12. Circle(P, d) → c_p
  13. Intersect(c_r, c_p, 2) → S1
  14. Sequence(Segment[(k, 0), (k, -1 * 0.5)], k, 0, 10) → list1
  15. Polygon((-0.3, 0.02662), (-0.3, -1.27338), (10.3, -1.27338), (10.3, 0.02662)) → poly1, poly1_1, poly1_2, poly1_3, poly1_4
  16. Sequence(Segment[(k + 0.5, 0), (k + 0.5, -1 * 0.375)], k, 0, 9) → list2
  17. Sequence(Sequence[Segment[(0.5 * (i - 1) + j / 10, 0), (0.5 * (i - 1) + j / 10, -1 * 0.25)], j, 1, 4], i, 1, 20) → list3
  18. Midpoint((0, 1), A) → A'
  19. Midpoint((0, 2), B) → B'
  20. Midpoint((0, 3), C) → C'
  21. Midpoint((0, 4), D) → D'
  22. Segment((0, 4), (0, 0)) → i
  23. Segment(P, Q) → j
  24. Segment(P, R) → k
  25. Intersect(c_p, k, 1) → E
  26. Intersect(c_r, k, 1) → F
  27. Segment((round(10 * x(C)) / 10, 3), (round(10 * x(C)) / 10, 0)) → g
  28. Segment((round(10 * x(B)) / 10, 2), (round(10 * x(B)) / 10, 0)) → f
  29. Segment((round(10 * x(A)) / 10, 1), (round(10 * x(A)) / 10, 0)) → e
  30. Segment((round(10 * x(D)) / 10, 4), (round(10 * x(D)) / 10, 0)) → h
  31. Angle(Rotate[P, (-β1)°, Q], Q, P) → β
  32. Angle(Rotate[Q, (-γ1)°, R], R, Q) → γ
  33. Angle(Q, P, Rotate[Q, α1°, P]) → α
  34. Polygon(P, Q, R1, S1) → poly2, t, a_1, b_1, c_1
  35. Angle(Q, P, Rotate[Q, 90*°, P]) → α_0
  36. Angle(R, Q, Rotate[R, 90*°, Q]) → β_0
  37. Angle(S, R, Rotate[S, 90*°, R]) → γ_0
  38. Angle(P, S, Rotate[P, 90*°, S]) → δ_0
  39. Segment(Midpoint[P, Q], Rotate[Intersect[Circle[Midpoint[P, Q], 0.2], Ray[Midpoint[P, Q], P]], 30*°, Midpoint[P, Q]]) → u_2
  40. Segment(Midpoint[P, Q], Rotate[Intersect[Circle[Midpoint[P, Q], 0.2], Ray[Midpoint[P, Q], P]], 330*°, Midpoint[P, Q]]) → u_1
  41. Segment(Midpoint[S, R], Rotate[Intersect[Circle[Midpoint[S, R], 0.2], Ray[Midpoint[S, R], S]], 330*°, Midpoint[S, R]]) → v_1
  42. Segment(Midpoint[S, R], Rotate[Intersect[Circle[Midpoint[S, R], 0.2], Ray[Midpoint[S, R], S]], 30*°, Midpoint[S, R]]) → v_2
  43. Segment(Midpoint[Q, R], Rotate[Intersect[Circle[Midpoint[Q, R], 0.2], Ray[Midpoint[Q, R], Q]], 330*°, Midpoint[Q, R]]) → w_1
  44. Segment(Midpoint[Q, R], Rotate[Intersect[Circle[Midpoint[Q, R], 0.2], Ray[Midpoint[Q, R], Q]], 30*°, Midpoint[Q, R]]) → w_2
  45. Segment(Translate[Midpoint[Q, R], Vector[Q, R] / b * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[Q, R], 0.2], Ray[Midpoint[Q, R], Q]], 330*°, Midpoint[Q, R]], Vector[Q, R] / b * 0.2]) → w_3
  46. Segment(Translate[Midpoint[Q, R], Vector[Q, R] / b * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[Q, R], 0.2], Ray[Midpoint[Q, R], Q]], 30*°, Midpoint[Q, R]], Vector[Q, R] / b * 0.2]) → w_4
  47. Segment(Midpoint[P, S], Rotate[Intersect[Circle[Midpoint[P, S], 0.2], Ray[Midpoint[P, S], P]], 330*°, Midpoint[P, S]]) → z_1
  48. Segment(Midpoint[P, S], Rotate[Intersect[Circle[Midpoint[P, S], 0.2], Ray[Midpoint[P, S], P]], 30*°, Midpoint[P, S]]) → z_2
  49. Angle(P, S, Rotate[P, δ1°, S]) → δ
  50. Midpoint(Midpoint[P, R], Midpoint[Q, S]) → G
  51. Circle(H, 1) → r
  52. Point(r) → I
  53. Rotate(P, ε1°, G) → P'
  54. Rotate(Q, ε1°, G) → Q'
  55. Rotate(R, ε1°, G) → R'
  56. Rotate(S, ε1°, G) → S'
  57. Polygon(P', Q', R', S') → poly2', p', q', r'_1, s'_1
  58. Angle(Q', P', Rotate[Q', α1°, P']) → α'
  59. Angle(Rotate[P', (-β1)°, Q'], Q', P') → β'
  60. Rotate(S_0, ε1°, G) → S'_1
  61. Angle(Rotate[Q', (-γ1)°, R'], R', Q') → γ'
  62. Angle(P', S', Rotate[P', δ1°, S']) → δ'
  63. Angle(Q', P', Rotate[Q', 90*°, P']) → α'_0
  64. Angle(R', Q', Rotate[R', 90*°, Q']) → β'_0
  65. Angle(S', R', Rotate[S', 90*°, R']) → γ'_0
  66. Angle(P', S', Rotate[P', 90*°, S']) → δ'_0
  67. Segment(Midpoint[P', Q'], Rotate[Intersect[Circle[Midpoint[P', Q'], 0.2], Ray[Midpoint[P', Q'], P']], 330*°, Midpoint[P', Q']]) → u'_1
  68. Segment(Midpoint[P', Q'], Rotate[Intersect[Circle[Midpoint[P', Q'], 0.2], Ray[Midpoint[P', Q'], P']], 30*°, Midpoint[P', Q']]) → u'_2
  69. Segment(Midpoint[S', R'], Rotate[Intersect[Circle[Midpoint[S', R'], 0.2], Ray[Midpoint[S', R'], S']], 330*°, Midpoint[S', R']]) → v'_1
  70. Segment(Midpoint[S', R'], Rotate[Intersect[Circle[Midpoint[S', R'], 0.2], Ray[Midpoint[S', R'], S']], 30*°, Midpoint[S', R']]) → v'_2
  71. Segment(Midpoint[Q', R'], Rotate[Intersect[Circle[Midpoint[Q', R'], 0.2], Ray[Midpoint[Q', R'], Q']], 330*°, Midpoint[Q', R']]) → w'_1
  72. Segment(Midpoint[Q', R'], Rotate[Intersect[Circle[Midpoint[Q', R'], 0.2], Ray[Midpoint[Q', R'], Q']], 30*°, Midpoint[Q', R']]) → w'_2
  73. Segment(Translate[Midpoint[Q', R'], Vector[Q', R'] / b * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[Q', R'], 0.2], Ray[Midpoint[Q', R'], Q']], 330*°, Midpoint[Q', R']], Vector[Q', R'] / b * 0.2]) → w'_3
  74. Segment(Translate[Midpoint[Q', R'], Vector[Q', R'] / b * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[Q', R'], 0.2], Ray[Midpoint[Q', R'], Q']], 30*°, Midpoint[Q', R']], Vector[Q', R'] / b * 0.2]) → w'_4
  75. Segment(Midpoint[P', S'], Rotate[Intersect[Circle[Midpoint[P', S'], 0.2], Ray[Midpoint[P', S'], P']], 330*°, Midpoint[P', S']]) → z'_1
  76. Segment(Midpoint[P', S'], Rotate[Intersect[Circle[Midpoint[P', S'], 0.2], Ray[Midpoint[P', S'], P']], 30*°, Midpoint[P', S']]) → z'_2
  77. Vector(H, I) → u
  78. Angle((x(H) + 1, y(H)), H, I) → ε
  79. Segment((x(H) + 1, y(H)), H) → s
  80. Midpoint(P, Q) → J
  81. Midpoint(Q, R) → K
  82. Midpoint(R, S) → L
  83. Midpoint(S, P) → M
  84. Rotate(J, ε1°, G) → J'
  85. Rotate(K, ε1°, G) → K'
  86. Rotate(L, ε1°, G) → L'
  87. Rotate(M, ε1°, G) → M'
  88. Segment(Translate[Midpoint[P, S], Vector[P, S] / d * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[P, S], 0.2], Ray[Midpoint[P, S], P]], 330*°, Midpoint[P, S]], Vector[P, S] / d * 0.2]) → z_3
  89. Segment(Translate[Midpoint[P, S], Vector[P, S] / d * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[P, S], 0.2], Ray[Midpoint[P, S], P]], 30*°, Midpoint[P, S]], Vector[P, S] / d * 0.2]) → z_4
  90. Segment(Translate[Midpoint[P', S'], Vector[P', S'] / d * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[P', S'], 0.2], Ray[Midpoint[P', S'], P']], 330*°, Midpoint[P', S']], Vector[P', S'] / d * 0.2]) → z'_3
  91. Segment(Translate[Midpoint[P', S'], Vector[P', S'] / d * 0.2], Translate[Rotate[Intersect[Circle[Midpoint[P', S'], 0.2], Ray[Midpoint[P', S'], P']], 30*°, Midpoint[P', S']], Vector[P', S'] / d * 0.2]) → z'_4
  92. Midpoint(P, E) → N
  93. Midpoint(F, R) → O
  94. If(d ≟ c ∧ (c ≠ b) ∧ (c ≠ a), 1, If[d ≟ b ∧ (b ≠ a), 0, If[d ≟ a, 1, 0]]) → d1
  95. If(d ≟ c ∧ (c ≠ b) ∧ (c ≠ a), 0, If[d ≟ b ∧ (b ≠ a), 0, If[d ≟ a, 0, 0.8]]) → d2
  96. If(d ≟ c ∧ (c ≠ b) ∧ (c ≠ a), 1, If[d ≟ b ∧ (b ≠ a), 1, If[d ≟ a, 0, 0.8]]) → d3
  97. Segment(R1, S1) → n
  98. Segment(P, S1) → m
  99. Segment(Q, R1) → l
  100. Point(c_r) → T
  101. Point(c_p) → U
  102. Segment(R, T) → d_1
  103. Segment(P, U) → e_1
  104. Midpoint(R, T) → V
  105. Midpoint(P, U) → W
  106. Segment(F, R) → q
  107. Segment(P, E) → p

AI Drawing Prompt Reference

Draw a teaching diagram for classifying quadrilaterals. At the bottom, a horizontal ruler with tick marks is shown. Above it, four parallel horizontal segments of adjustable lengths represent the four sides. Using auxiliary circles and intersection points, construct a dynamic quadrilateral whose vertices slide along these horizontal lines. Inside the quadrilateral, display side lengths, angle measures, and right-angle or parallel markers. Add small tick marks on the bottom ruler for measuring and comparing side lengths. The overall figure emphasizes distinguishing squares, rectangles, rhombuses, parallelograms, trapezoids, and kites based on side lengths, angles, and parallelism.
The prompt above was compiled from the original drawing commands and is for reference only.