Parallelogram in a Coordinate System: Vector-Based Construction

Parallelogram in a Coordinate System: Vector-Based Construction
Loading the math board and drawing, please wait…
2023-12-06 20:42
This GeoGebra example demonstrates how to construct a parallelogram inside a coordinate system using vector relationships and basic coordinate geometry. Students can observe the defining properties—opposite sides being parallel and equal—through an interactive, construction-style setup. Key concepts include the definition of a parallelogram, representing edges with vectors, coordinate geometry with points and lines, and generating the final shape via a polygon from constructed components. Construction highlights from the command/object list: Sequence, Shuffle, and Join are used to create and randomize candidate parameters; Vector, Line, and Point build the geometric framework; Intersect and Polygon assemble the parallelogram; IsInRegion and RemoveUndefined help ensure validity under region/constraint checks; If supports conditional construction logic; Angle and Textfield/Text/Append provide angle measurement and parameter labeling. The objects include an origin (Ursprung), vector directions (ux, uy), coordinate lists (e.g., AXList, AYList, etc.), and the resulting parallelogram element (Polygon such as A). Suitable for grades 5–6 and as a classroom activity to strengthen geometry construction skills with compass/ruler/DGS-style thinking.

GeoGebra Commands & Parameters

  1. Sequence(Sequence[(i, k), k, 0, 8], i, 0, 8) → PunkteFeld
  2. Shuffle(Sequence[1, 7]) → HelperX, {2, 3, 5, 1, 4, 6, 7}
  3. Join({{0}, HelperX}) → UrsprungXListe
  4. Shuffle(Sequence[1, 7]) → HelperY, {5, 2, 4, 1, 7, 3, 6}
  5. Join({{0}, HelperY}) → UrsprungYListe
  6. Shuffle(Sequence[1, 7]) → AYList, {5, 2, 6, 1, 4, 7, 3}
  7. Shuffle(Sequence[1, 7]) → AXList, {3, 5, 7, 2, 6, 4, 1}
  8. Vector(Ursprung, A) → aCoords
  9. Line(A, A + (-1, 0)) → i
  10. Line(A, A + (0, 1)) → h
  11. Max({distanceAnegX, distanceAposX, distanceAnegY, distanceAposY}) → maxf
  12. Shuffle(Sequence[3, maxf - 1, 1]) → fList, {3, 4}
  13. Random(1, fwert - 1) → erando
  14. Circle(A, fwert) → c
  15. Intersect(c, h) → CSucheNegY, CSuchePosY
  16. Intersect(c, i) → CSuchePosX, CSucheNegX
  17. Polygon(QE1, QE2, QE3, QE4) → coordsystem, qe1, qe2, qe3, qe4
  18. RemoveUndefined({If[IsInRegion[CSuchePosY, coordsystem], y(CSuchePosY)], If[IsInRegion[CSuchePosX, coordsystem], y(CSuchePosX)], If[IsInRegion[CSucheNegX, coordsystem], y(CSucheNegX)], If[IsInRegion[CSucheNegY, coordsystem], y(CSucheNegY)]}) → CyOptionen
  19. RemoveUndefined({If[IsInRegion[CSuchePosY, coordsystem], x(CSuchePosY)], If[IsInRegion[CSuchePosX, coordsystem], x(CSuchePosX)], If[IsInRegion[CSucheNegX, coordsystem], x(CSucheNegX)], If[IsInRegion[CSucheNegY, coordsystem], x(CSucheNegY)]}) → CxOptionen
  20. Random(1, Length[CxOptionen]) → Crando
  21. Vector(Ursprung, C) → cCoords
  22. Segment(A, C) → j
  23. OrthogonalLine(MittelpunktDeltoid, j) → k
  24. Point(PunkteFeld) → InputPunkt
  25. Min(AbstaendeMittelpunkt) → maxe
  26. Shuffle(Sequence[1, maxe]) → eList, {1}
  27. Circle(MittelpunktDeltoid, ewert) → d
  28. Intersect(d, k) → D, B
  29. Vector(Ursprung, DNew) → dCoords
  30. Vector(Ursprung, B) → bCoords
  31. Shuffle({2, 4}) → gesuchtList, {2, 4}
  32. If(gesucht ≟ 1, x(aCoords), gesucht ≟ 2, x(bCoords), gesucht ≟ 3, x(cCoords), gesucht ≟ 4, x(dCoords)) → solx
  33. If(gesucht ≟ 1, y(aCoords), gesucht ≟ 2, y(bCoords), gesucht ≟ 3, y(cCoords), gesucht ≟ 4, y(dCoords)) → soly
  34. Circle(SolPunkt, 0.35) → ValidateCircle
  35. IsInRegion(InputPunkt, ValidateCircle) → correctInputPunkt
  36. Textfield(input1) → InputBox1
  37. Textfield(input2) → InputBox2
  38. Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1
  39. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {4, 5, 6, 3, 5, 8, 4, 9, 3, 10, 1, 0, 10, 10, 1, 6, 8, 2, 9, 2, 1, 5, 10, 8, 9, 4, 7, 6, 10, 2, 5, 7, 10, 5, 10, 6, 3, 10, 6, 4, 10, 8, 2, 0, 3, 3, 6, 6, 1, 10, 5, 10, 8, 1, 8, 0, 1, 9, 8, 10, 0, 7, 9, 8, 5, 7, 2, 8, 0, 4, 3, 0, 7, 6, 9, 3, 10, 7, 1, 3, 0, 9, 4, 8, 4, 4, 10, 8, 5, 8, 2, 7, 1, 5, 8, 10, 9, 3, 8, 6}
  40. Element(randomNosForX, Mod[questionCount, 100] + 1) → numX
  41. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {0, 5, 4, 7, 2, 2, 9, 3, 8, 9, 8, 9, 2, 2, 4, 7, 3, 10, 6, 10, 10, 10, 5, 5, 4, 10, 4, 0, 2, 1, 8, 7, 3, 7, 8, 7, 10, 7, 0, 6, 5, 0, 10, 7, 7, 5, 0, 10, 8, 0, 5, 1, 3, 1, 9, 4, 3, 9, 5, 0, 0, 6, 0, 2, 8, 4, 5, 8, 6, 6, 8, 2, 5, 8, 2, 5, 1, 4, 2, 7, 2, 0, 8, 10, 5, 10, 10, 10, 4, 1, 1, 6, 1, 8, 2, 1, 2, 7, 5, 5}
  42. Element(randomNosForY, Mod[questionCount, 100] + 1) → numY
  43. Append(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayX
  44. Append(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayY
  45. Remove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeat
  46. Remove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeat
  47. Element(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeat
  48. Element(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeat
  49. Sequence(QE4 + (Vector[QE4, QE3] / 8 * i), i, 1, 7) → GrenzPunkteOben
  50. Sequence(QE1 + (Vector[QE1, QE2] / 8 * i), i, 1, 7) → GrenzPunkteUnten
  51. Sequence(QE1 + (Vector[QE1, QE4] / 8 * i), i, 1, 7) → GrenzPunkteLinks
  52. Sequence(QE2 + (Vector[QE1, QE4] / 8 * i), i, 1, 7) → GrenzPunkteRechts
  53. Sequence(Segment[GrenzPunkteOben(i), GrenzPunkteUnten(i)], i, 1, 9) → GitterVertikal
  54. Sequence(Segment[GrenzPunkteRechts(i), GrenzPunkteLinks(i)], i, 1, 9) → GitterHorizontal
  55. Line(Ursprung, HelpP1) → f
  56. Line(Ursprung, HelpP2) → g
  57. Intersect(g, QuadratKanten(2)) → EndXPos
  58. Intersect(g, QuadratKanten(4)) → EndXNeg
  59. Intersect(f, QuadratKanten(1)) → EndYNeg
  60. Intersect(f, QuadratKanten(3)) → EndYPos
  61. Segment(EndYPos, EndYNeg) → yAchsel
  62. Segment(EndXPos, EndXNeg) → xAchsel
  63. Polygon(C, B, A, DNew) → v1, l, m, n, p
  64. Segment(C, B) → solb
  65. Segment(B, A) → sola
  66. Sequence(EndXNeg + (Vector[EndXNeg, EndXPos] * i / 8), i, 0, 8) → AchsenpunkteX
  67. Sequence(EndYNeg + (Vector[EndYNeg, EndYPos] * i / 8), i, 0, 8) → AchsenpunkteY
  68. Sequence(Distance[AchsenpunkteX(i), Ursprung], i, 1, 9) → BeschriftungXAchse
  69. Sequence(Distance[AchsenpunkteY(i), Ursprung], i, 1, 9) → BeschriftungYAchse
  70. Vector(Ursprung, InputPunkt) → OrangeCoords
  71. Segment(A, DNew) → sold
  72. Segment(DNew, C) → solc
  73. Intersect(Line[A, C], Line[DNew, B]) → Center
  74. Text(BeschA, E, false, true, 0, 0) → Text4
  75. Angle(DNew, A, B) → α
  76. Text(BeschB, F, false, true, 0, 0) → Text5
  77. Text(BeschC, G, false, true, 0, 0) → Text6
  78. Text(BeschD, H, false, true, 0, 0) → Text7
  79. Circle(InputPunkt, 0.3) → e
  80. Text(correctText, I, false, true, 0, 0) → Text13

AI Drawing Prompt Reference

Construct a parallelogram in a coordinate system. Start at the origin, define two vectors for the sides, draw two perpendicular lines and a circle, find the intersection points of the circle with these lines, and connect these points to the origin to form the parallelogram. The construction order: first establish the origin, define vectors, draw perpendicular lines and a circle, compute intersections, then connect vertices.
The prompt above was compiled from the original drawing commands and is for reference only.