Constructing Quadrilaterals with One Side Fixed (P4) Using Vectors & Trig

Constructing Quadrilaterals with One Side Fixed (P4) Using Vectors & Trig
Loading the math board and drawing, please wait…
2020-09-14 14:37
This example demonstrates how to generate a family of quadrilaterals in the plane while keeping one side fixed, using parameter-driven and possibly randomized constructions. It connects key ideas such as vector-based geometric construction, segment placement, and trigonometric relationships (e.g., cosine) that link angle/direction choices to geometric measurements; it also supports exploration of calculus-related behavior when interpreting how quantities change as parameters vary. Construction workflow in GeoGebra: Vector and Segment build candidate vertex positions and connecting edges; CountIf and IndexOf manage sets by counting and locating indices; Sequence structures the parameter or point-generation order; and RandomElement selects elements for new configurations. A trigger like buttonNewQ starts a new construction, while objects such as the many vector instances (Vec21, Vec18, Vec06, Vec05, etc.) and answer/visual elements (ShowAns, styled blue/red objects like Blue1/Blue2/Blue3 and Red) display intermediate and final results. Suitable for high-school advanced geometry, dynamic geometry learning, and classroom demos on parametric shape variation under constraints.

GeoGebra Commands & Parameters

  1. Vector((2, 3)) → Vec21
  2. Vector((-1, 2)) → Vec18
  3. Vector((-1, -1)) → Vec06
  4. Vector((2, 1)) → Vec05
  5. Vector((1, 1)) → Vec04
  6. Vector((1, -1)) → Vec10
  7. Vector((-1, 1)) → Vec11
  8. Vector((2, -1)) → Vec12
  9. Vector((1, 2)) → Vec16
  10. Vector((1, -2)) → Vec17
  11. Vector((3, -2)) → Vec15
  12. Vector((4, -1)) → Vec14
  13. Vector((3, -1)) → Vec13
  14. Vector((4, 1)) → Vec09
  15. Vector((3, 2)) → Vec08
  16. Vector((3, 1)) → Vec07
  17. Vector((1, 3)) → Vec19
  18. Vector((-1, 3)) → Vec20
  19. Vector((1, 0)) → Vec01
  20. Vector((2, 0)) → Vec02
  21. Vector((0, 1)) → Vec03
  22. Segment(Blue1a, Blue1b) → Blue1
  23. Segment(Blue2a, Blue2b) → Blue2
  24. Segment(Blue3a, Blue3b) → Blue3
  25. Segment(Reda, Redb) → Red
  26. CountIf(A ≟ Blue1a, A, ListPoints) → NumBlue1a
  27. CountIf(A ≟ Blue1b, A, ListPoints) → NumBlue1b
  28. CountIf(A ≟ Blue2a, A, ListPoints) → NumBlue2a
  29. CountIf(A ≟ Blue2b, A, ListPoints) → NumBlue2b
  30. CountIf(A ≟ Blue3a, A, ListPoints) → NumBlue3a
  31. CountIf(A ≟ Blue3b, A, ListPoints) → NumBlue3b
  32. CountIf(A ≟ Reda, A, ListPoints) → NumReda
  33. CountIf(A ≟ Redb, A, ListPoints) → NumRedb
  34. IndexOf(SelectedElement[ListQuadType], ListQuadType) → QuadType
  35. Sequence(Sequence[(s, t), s, 0, 23], t, -3, 15) → ListDots, {{(0, -3), (1, -3), (2, -3), (3, -3), (4, -3), (5, -3), (6, -3), (7, -3), (8, -3), (9, -3), (10, -3), (11, -3), (12, -3), (13, -3), (14, -3), (15, -3), (16, -3), (17, -3), (18, -3), (19, -3), (20, -3), (21, -3), (22, -3), (23, -3)}, {(0, -2), (1, -2), (2, -2), (3, -2), (4, -2), (5, -2), (6, -2), (7, -2), (8, -2), (9, -2), (10, -2), (11, -2), (12, -2), (13, -2), (14, -2), (15, -2), (16, -2), (17, -2), (18, -2), (19, -2), (20, -2), (21, -2), (22, -2), (23, -2)}, {(0, -1), (1, -1), (2, -1), (3, -1), (4, -1), (5, -1), (6, -1), (7, -1), (8, -1), (9, -1), (10, -1), (11, -1), (12, -1), (13, -1), (14, -1), (15, -1), (16, -1), (17, -1), (18, -1), (19, -1), (20, -1), (21, -1), (22, -1), (23, -1)}, {(0, 0), (1, 0), (2, 0), (3, 0), (4, 0), (5, 0), (6, 0), (7, 0), (8, 0), (9, 0), (10, 0), (11, 0), (12, 0), (13, 0), (14, 0), (15, 0), (16, 0), (17, 0), (18, 0), (19, 0), (20, 0), (21, 0), (22, 0), (23, 0)}, {(0, 1), (1, 1), (2, 1), (3, 1), (4, 1), (5, 1), (6, 1), (7, 1), (8, 1), (9, 1), (10, 1), (11, 1), (12, 1), (13, 1), (14, 1), (15, 1), (16, 1), (17, 1), (18, 1), (19, 1), (20, 1), (21, 1), (22, 1), (23, 1)}, {(0, 2), (1, 2), (2, 2), (3, 2), (4, 2), (5, 2), (6, 2), (7, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (16, 2), (17, 2), (18, 2), (19, 2), (20, 2), (21, 2), (22, 2), (23, 2)}, {(0, 3), (1, 3), (2, 3), (3, 3), (4, 3), (5, 3), (6, 3), (7, 3), (8, 3), (9, 3), (10, 3), (11, 3), (12, 3), (13, 3), (14, 3), (15, 3), (16, 3), (17, 3), (18, 3), (19, 3), (20, 3), (21, 3), (22, 3), (23, 3)}, {(0, 4), (1, 4), (2, 4), (3, 4), (4, 4), (5, 4), (6, 4), (7, 4), (8, 4), (9, 4), (10, 4), (11, 4), (12, 4), (13, 4), (14, 4), (15, 4), (16, 4), (17, 4), (18, 4), (19, 4), (20, 4), (21, 4), (22, 4), (23, 4)}, {(0, 5), (1, 5), (2, 5), (3, 5), (4, 5), (5, 5), (6, 5), (7, 5), (8, 5), (9, 5), (10, 5), (11, 5), (12, 5), (13, 5), (14, 5), (15, 5), (16, 5), (17, 5), (18, 5), (19, 5), (20, 5), (21, 5), (22, 5), (23, 5)}, {(0, 6), (1, 6), (2, 6), (3, 6), (4, 6), (5, 6), (6, 6), (7, 6), (8, 6), (9, 6), (10, 6), (11, 6), (12, 6), (13, 6), (14, 6), (15, 6), (16, 6), (17, 6), (18, 6), (19, 6), (20, 6), (21, 6), (22, 6), (23, 6)}, {(0, 7), (1, 7), (2, 7), (3, 7), (4, 7), (5, 7), (6, 7), (7, 7), (8, 7), (9, 7), (10, 7), (11, 7), (12, 7), (13, 7), (14, 7), (15, 7), (16, 7), (17, 7), (18, 7), (19, 7), (20, 7), (21, 7), (22, 7), (23, 7)}, {(0, 8), (1, 8), (2, 8), (3, 8), (4, 8), (5, 8), (6, 8), (7, 8), (8, 8), (9, 8), (10, 8), (11, 8), (12, 8), (13, 8), (14, 8), (15, 8), (16, 8), (17, 8), (18, 8), (19, 8), (20, 8), (21, 8), (22, 8), (23, 8)}, {(0, 9), (1, 9), (2, 9), (3, 9), (4, 9), (5, 9), (6, 9), (7, 9), (8, 9), (9, 9), (10, 9), (11, 9), (12, 9), (13, 9), (14, 9), (15, 9), (16, 9), (17, 9), (18, 9), (19, 9), (20, 9), (21, 9), (22, 9), (23, 9)}, {(0, 10), (1, 10), (2, 10), (3, 10), (4, 10), (5, 10), (6, 10), (7, 10), (8, 10), (9, 10), (10, 10), (11, 10), (12, 10), (13, 10), (14, 10), (15, 10), (16, 10), (17, 10), (18, 10), (19, 10), (20, 10), (21, 10), (22, 10), (23, 10)}, {(0, 11), (1, 11), (2, 11), (3, 11), (4, 11), (5, 11), (6, 11), (7, 11), (8, 11), (9, 11), (10, 11), (11, 11), (12, 11), (13, 11), (14, 11), (15, 11), (16, 11), (17, 11), (18, 11), (19, 11), (20, 11), (21, 11), (22, 11), (23, 11)}, {(0, 12), (1, 12), (2, 12), (3, 12), (4, 12), (5, 12), (6, 12), (7, 12), (8, 12), (9, 12), (10, 12), (11, 12), (12, 12), (13, 12), (14, 12), (15, 12), (16, 12), (17, 12), (18, 12), (19, 12), (20, 12), (21, 12), (22, 12), (23, 12)}, {(0, 13), (1, 13), (2, 13), (3, 13), (4, 13), (5, 13), (6, 13), (7, 13), (8, 13), (9, 13), (10, 13), (11, 13), (12, 13), (13, 13), (14, 13), (15, 13), (16, 13), (17, 13), (18, 13), (19, 13), (20, 13), (21, 13), (22, 13), (23, 13)}, {(0, 14), (1, 14), (2, 14), (3, 14), (4, 14), (5, 14), (6, 14), (7, 14), (8, 14), (9, 14), (10, 14), (11, 14), (12, 14), (13, 14), (14, 14), (15, 14), (16, 14), (17, 14), (18, 14), (19, 14), (20, 14), (21, 14), (22, 14), (23, 14)}, {(0, 15), (1, 15), (2, 15), (3, 15), (4, 15), (5, 15), (6, 15), (7, 15), (8, 15), (9, 15), (10, 15), (11, 15), (12, 15), (13, 15), (14, 15), (15, 15), (16, 15), (17, 15), (18, 15), (19, 15), (20, 15), (21, 15), (22, 15), (23, 15)}}
  36. RandomElement(ListVec01) → RanVecRectOrSq
  37. RandomElement(ListVec02) → RanVecRhom

AI Drawing Prompt Reference

Create a family of quadrilaterals in the plane while keeping one side fixed. Use several candidate displacement vectors to determine where the other vertices should be placed relative to the fixed side, translating by the chosen vector directions and magnitudes. Prepare multiple alternative side-segment candidates in different colors (three blue segment pairs for comparison and one red segment pair), then select one configuration to define the vertex positions. For each selection, generate the four vertices in order and connect them to form a quadrilateral. Display many result points across a parameter row so the quadrilateral shapes vary accordingly.
The prompt above was compiled from the original drawing commands and is for reference only.