Area of Parallelograms by Anthony OR 柯志明

Area of Parallelograms by Anthony OR 柯志明
Loading the math board and drawing, please wait…
2018-11-19 23:02
This GeoGebra interactive example dynamically demonstrates the area calculation of parallelograms, visually illustrating the base × height formula through geometric transformation. Core mathematical concepts include parallelogram area, vector translation, and the relationship between base and height. Construction utilizes GeoGebra commands such as If, Point, Intersect, Vector, Translate, Rotate, Midpoint, and tools like Segment, Slope, and Sequence, involving objects such as vertices, vectors, midpoints, and rays. Suitable for middle and high school geometry education, it helps students understand area invariance and transformation effects through dynamic visualization.

GeoGebra Commands & Parameters

  1. If(t ≥ 0 ∧ t ≤ 1, t, 1) → t1
  2. Point(xAxis) → I
  3. Point(Ray[(0, 0), (1, 0)]) → E
  4. Intersect(xAxis, yAxis) → B
  5. Point(Ray[(-1, 0), (-2, 0)]) → C
  6. Vector(B - (0, 1), E - (0, 1)) → w
  7. Point(Ray[(x(I), 0), (x(I), 1)]) → J
  8. Ray((-0.01, y(J)), (-1, y(J))) → k
  9. Point(k) → A
  10. Translate(A, Vector[C]) → D
  11. If(floor(abs(x(D)) / base) ≟ abs(x(D)) / base, false, true) → more
  12. If(more, n + 1, n) → n'
  13. Segment(A, B) → a
  14. Segment(B, C) → b
  15. Segment(C, D) → c
  16. Segment(D, A) → d
  17. Slope(a) → m
  18. Sequence((((i + 1) * x(C)), ((m * x(C)) * i)), i, 0, n) → list1
  19. Segment(E, F) → e
  20. Segment(F, G) → f
  21. Segment(G, H) → g
  22. Segment(H, E) → h
  23. Sequence(((i * x(C)), ((m * x(C)) * i)), i, 1, n) → list2
  24. Segment(J, A) → i
  25. Segment(I, B) → j
  26. Rotate(J, 90°, I) → J'
  27. Vector(I, J) → u
  28. Vector(J, I) → v
  29. Midpoint(I, J) → K
  30. Midpoint(b) → L
  31. Angle(J, I, Translate[I, Vector[If[x(I) > x(C), Vector[C], Vector[(-C)]]]]) → α
  32. Segment(I, J) → r
  33. Sequence(Polygon[Element[list1, i], Element[list2, i], Element[list2, i + 1], Element[list1, i + 1]], i, 1, n - 1) → l_{11}
  34. Vector(C - (0, 1), B - (0, 1)) → s
  35. Sequence(Polygon[D, A, Element[list2, i], Element[list1, i]], i, 1, n) → l1'
  36. If(t < 1, 0, If[t ≥ 1 ∧ t ≤ 2, t - 1, 1]) → t2
  37. If(t < 2, 0, If[t ≥ 2 ∧ t ≤ 3, t - 2, 1]) → t3
  38. If(t < 3, 0, If[t ≥ 3 ∧ t ≤ 4, t - 3, 1]) → t4
  39. If(t < 4, 0, If[t ≥ 4 ∧ t ≤ 5, t - 4, 1]) → t5
  40. Union(l_{11}, l_{12}) → l1
  41. RemoveUndefined(Union[l0, l1]) → listp
  42. Sequence(Translate[Element[listp, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i, t - 1, i - 1] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlistp
  43. Union(list1, {D}) → list1'
  44. Union(Sequence[((i * x(C)), ((m * x(C)) * i)), i, 0, n], {A}) → list2'
  45. Sequence(Segment[Element[list1', i], Element[list1', i + 1]], i, 1, n') → lists1
  46. Sequence(Translate[Element[lists1, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i + 1, t - 1, i] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlists1
  47. Sequence(Segment[Element[list2', i], Element[list2', i + 1]], i, 1, n') → lists2
  48. Sequence(Translate[Element[lists2, i], Vector[(If[t ≥ 0 ∧ t ≤ 1, t, 1] * w) + (If[t ≤ 1, 0, t > 1 ∧ t ≤ i, t - 1, i - 1] * s)]], i, 1, n' + If[¬more, 1, 0]) → movedlists2
  49. Union(Sequence[(x(F), ((m * x(C)) * i)), i, 0, n], {G}) → list3
  50. Sequence(Segment[Element[list3, i], Element[list3, i + 1]], i, 1, n') → lists3
  51. Sequence(Translate[Element[lists3, i], Vector[(If[t ≤ i, 0, If[t ≥ i ∧ t < i + 1, t - i, 1]] * s)]], i, 1, n') → movedlists3
  52. Translate(D, Vector[(If[t < 1, t, 1] * w) + (If[t < 1, 0, t - 1] * s)]) → D'