Sine Function via Regular Polygon Construction

Sine Function via Regular Polygon Construction
Loading the math board and drawing, please wait…
2021-01-28 20:30
This example demonstrates how the sine function behavior can be visualized through the geometric construction of regular polygons, highlighting periodic patterns as the phase and/or the number of sides changes. It centers on key concepts from trigonometry and geometry: the relationship between central angles and trigonometric values (sin), parameterization by angle phase, and the use of geometric measures such as lengths or perimeters that correspond to function-related quantities. The construction uses GeoGebra commands including Sequence and If to generate parameter sequences and conditional cases (e.g., phase and sides), Rotate together with Ray/Line/Segment to build polygon edges and rotated configurations, and Polygon with Circle, Intersect, and Point to form the regular polygon and its notable intersection points. Distances and Vectors extract measurable geometric information, while Locus captures how the evolving configuration traces a curve linked to the sine behavior. Mod and transformation commands like Translate (and Mirror where applicable) implement periodicity, alignment, and symmetry. The result is suited for secondary school through early university students, especially for teaching/learning trigonometry through geometry-based visualization and interactive function understanding.

GeoGebra Commands & Parameters

  1. Mod(sides, 4) → aa
  2. Sequence(K + ((R * cos(i + π / 3 + (phase * π / 6))), (R * sin(i + π / 3 + (phase * π / 6)))), i, 0, 6.28319, 2.0944) → liste2
  3. Mod(sides, 2) → nn
  4. If(aa ≟ 1, Rotate[B, π / 5, A], Rotate[B, ((-π)) / 5, A]) → BB
  5. If(aa ≟ 0, BB, F) → FF
  6. Rotate(B, t, A) → B'
  7. Ray(A, B') → k
  8. Segment(B, E) → h
  9. Segment(A, B') → b
  10. Sequence(Rotate[FF, i + (phase * π / 10), A], i, 0, 6.28319, (2 * π / 5)) → liste1
  11. Polygon(liste1) → p
  12. Intersect(k, p) → K_2
  13. Intersect(b, p) → D
  14. Point(p, m) → M_1
  15. Perimeter(p) → per
  16. Line(M_1, xAxis) → a
  17. Intersect(a, yAxis) → C
  18. Circle(A, R) → c
  19. Distance(A, C) → dis
  20. Distance(B, J) → dd
  21. Segment(D, P) → d
  22. Segment(F, G) → g
  23. Vector(G, F) → u
  24. Vector(I, B) → v
  25. Segment(H, A) → i
  26. Segment(D, H) → j
  27. Locus(P, t) → lieu1
  28. Rotate(L, t, K) → L'
  29. Rotate(M, 120°, K) → M'
  30. Rotate(M, 240°, K) → M'_1
  31. Ray(M, M') → a_1
  32. Ray(M, M'_1) → l_1
  33. Polygon(liste2) → poly2
  34. Ray(K, L') → l
  35. Intersect(l, poly2) → N
  36. Segment(K, N) → d_1
  37. Distance(L, JJ) → dt
  38. Segment(N, PT) → n
  39. Locus(PT, t) → lieu2
  40. Sequence(O + ((R * cos(i + π / 4 + (phase * π / 8))), (R * sin(i + π / 4 + (phase * π / 8)))), i, 0, 6.28319, 1.5708) → liste3
  41. Rotate(Q, t, O) → Q'
  42. Ray(O, Q') → r
  43. Polygon(liste3) → poly1
  44. Intersect(r, poly1) → S
  45. Segment(O, S) → e_1
  46. Distance(Q, T) → dc
  47. Locus(PC, t) → lieu3
  48. Segment(S, PC) → f_1
  49. Vector(V, W) → w
  50. Circle(Z, R) → g_1
  51. Rotate(A_1, t, Z) → B_1
  52. Segment(Z, B_1) → h_1
  53. Segment(B_1, D_1) → i_1
  54. Vector(C_1, G_1) → z
  55. Vector(E_1, F_1) → u_1
  56. Vector(O_1, H_1) → v_1
  57. Segment(K_2, A) → j_1
  58. Mirror(Q, O) → Q'_1
  59. Mirror(L, K) → L'_1
  60. Mirror(A_1, Z) → I_1
  61. Vector(L'_1, L) → w_1
  62. Vector(I_1, A_1) → z_1
  63. Vector(Q'_1, Q) → k_1
  64. Mirror(A, M) → A'
  65. Mirror(K_1, O) → L_{1}
  66. Mirror(J_1, Z) → N_{1}
  67. Vector(N_{1}, J_1) → m_1
  68. Vector(L_{1}, K_1) → n_1
  69. Mirror(A, M) → A'_1
  70. Mirror(K, M) → K'
  71. Mirror(M, K) → M'_2
  72. Vector(M'_2, M) → q_1
  73. Segment(Q_1, S) → r_1
  74. Segment(P_1, N) → s_1
  75. Segment(R_1, B_1) → t_1
  76. Sequence(V + (i, 0), i, 0, 14, 1.5708) → liste4
  77. Sequence(O_1 + (i, 0), i, 0, 14, 1.5708) → liste5
  78. Sequence(E_1 + (i, 0), i, 0, 14, 1.5708) → liste6
  79. Sequence(C_1 + (i, 0), i, 0, 14, 1.5708) → liste7
  80. Sequence(Text[i / 2.5 + "π", Element[liste7, i] - (0.51, 0.95)], i, 0, Length[liste5], 5) → liste9
  81. Sequence(Text[i / 2.5 + "π", Element[liste6, i] - (0.51, 0.95)], i, 0, Length[liste5], 5) → liste10
  82. Sequence(Text[i / 2.5 + "π", Element[liste4, i] - (0.51, 0.95)], i, 0, Length[liste5], 5) → liste11
  83. Polygon(V_{1}, Z_{1}, A_2, W_{1}) → q1, f_2, g_2, a_2, h_2
  84. Polygon(W_{1}, B_2, C_2, A_2) → q2, i_2, b_2, c_2, j_2
  85. Polygon(B_2, D_2, E_2, C_2) → q3, k_2, d_2, e_2, l_2
  86. Polygon(D_2, F_2, G_2, E_2) → q4, m_2, n_2, p_2, q_2
  87. Translate(q_1, Vector[K, V]) → u_2
  88. Vector(V - (0, 3.5), V + (0, 3.5)) → v_2
  89. Vector(O_1 - (0, 3.15), O_1 + (0, 3.45)) → w_2
  90. Vector(E_1 - (0, 3.5), E_1 + (0, 3.5)) → r_2
  91. Vector(C_1 - (0, 3.15), C_1 + (0, 3.5)) → s_2
  92. Sequence(Text[i / 2.5 + "π", Element[liste5, i] - (0.51, 0.95)], i, 0, Length[liste5], 5) → liste8
  93. Vector(H_2 - (R, 0), H_2 + (R, 0)) → t_2
  94. Vector(H_2 - (0, R), H_2 + (0, R)) → u_3
  95. Sequence(Rotate[H_2 + (R, 0), i + (phase * π / 12), H_2], i, 0, 6.28319, (2 * π / 6)) → l1
  96. Polygon(l1) → poly3
  97. Vector(I_2 - (0, 3.5), I_2 + (0, 3.5)) → v_3
  98. Vector(I_2, (14, y(H_2))) → w_3
  99. Sequence(I_2 + (i, 0), i, 0, 14, 1.5708) → liste6b
  100. Rotate(H_2 + (R, 0), t, H_2) → J_2
  101. Ray(H_2, J_2) → f_3
  102. Intersect(f_3, poly3) → L_2
  103. Segment(H_2, L_2) → g_3
  104. Locus(M_2, t) → lieu4
  105. Segment(L_2, M_2) → h_3
  106. Vector(L_1 - (0, R), L_1 + (0, R)) → a_3
  107. Vector(N_2 - (0, R), N_2 + (0, R)) → b_3
  108. Vector(O_2 - (0, R), O_2 + (0, R)) → c_3
  109. Vector(L_1 - (R, 0), L_1 + (R, 0)) → d_3
  110. Vector(N_2 - (R, 0), N_2 + (R, 0)) → e_3
  111. Vector(O_2 - (R, 0), O_2 + (R, 0)) → i_3
  112. Vector(P_2 - (0, R), P_2 + (0, R)) → j_3
  113. Vector(Q_2 - (0, R), Q_2 + (0, R)) → k_3
  114. Vector(R_2 - (0, R), R_2 + (0, R)) → l_3
  115. Vector(P_2, (39, y(P_2))) → m_3
  116. Vector(Q_2, (39, y(Q_2))) → n_3
  117. Vector(R_2, (39, y(R_2))) → p_3
  118. Sequence(Rotate[L_1 + (R, 0), i + (phase * π / 14), L_1], i, 0, 6.28319, (2 * π / 7)) → l2
  119. Sequence(Rotate[N_2 + (R, 0), i + (phase * π / 16), N_2], i, 0, 6.28319, (2 * π / 8)) → l3
  120. Sequence(Rotate[O_2 + (R, 0), i + (phase * π / ((2 * sides))), O_2], i, 0, 6.28319, (2 * π / sides)) → l4
  121. Polygon(l2) → poly4
  122. Sequence(P_2 + (i, 0), i, 0, 14, 1.5708) → liste6c
  123. Sequence(Q_2 + (i, 0), i, 0, 14, 1.5708) → liste6d
  124. Sequence(R_2 + (i, 0), i, 0, 14, 1.5708) → liste6e
  125. Polygon(l3) → poly5
  126. Polygon(l4) → poly6
  127. Rotate(L_1 + (R, 0), t, L_1) → S_2
  128. Rotate(N_2 + (R, 0), t, N_2) → T_2
  129. Rotate(O_2 + (R, 0), t, O_2) → U_2
  130. Ray(L_1, S_2) → q_3
  131. Ray(N_2, T_2) → r_3
  132. Ray(O_2, U_2) → s_3
  133. Intersect(q_3, poly4) → V_2
  134. Intersect(r_3, poly5) → W_2
  135. Intersect(s_3, poly6) → Z_2
  136. Segment(L_1, V_2) → t_3
  137. Segment(N_2, W_2) → f_4
  138. Segment(O_2, Z_2) → g_4
  139. Segment(V_2, A_3) → h_4
  140. Segment(W_2, B_3) → i_4
  141. Segment(Z_2, C_3) → j_4
  142. Locus(A_3, t) → lieu5
  143. Locus(B_3, t) → lieu6
  144. Locus(C_3, t) → lieu7
  145. Polygon(liste3) → poly7
  146. Polygon(liste2) → q5
  147. Polygon(liste1) → poly8
  148. Polygon(l1) → poly9
  149. Polygon(l2) → poly10
  150. Polygon(l4) → poly11

AI Drawing Prompt Reference

In the same coordinate plane, construct a regular polygon whose vertices are generated by rotating around a fixed center while a phase parameter changes continuously. Build auxiliary rays/lines from reference points, intersect them with the moving polygon to obtain key intersection points, and measure relevant distances between the center and the intersection locations. For the chosen moving point(s) related to these intersections, trace a locus as the parameter varies to reveal a sine-like periodic curve. Then repeat the construction with a different set of initial angle offsets and step size, producing a second regular polygon with its own intersection point(s) and a second locus, while keeping the center and supporting rays/segments that define the relationships.
The prompt above was compiled from the original drawing commands and is for reference only.