Greek-Style Angle Salad: Using Tangent and Mean-Based Significance Checks

Greek-Style Angle Salad: Using Tangent and Mean-Based Significance Checks
Loading the math board and drawing, please wait…
2023-12-20 17:28
This example demonstrates a visual workflow that combines polygon-based angle geometry with the tangent (tan) relationship and a mean-based statistical evaluation of randomly generated samples. The main mathematical ideas are angle modeling (Angle), the tangent function as a quantitative link between geometry and slope/ratio (Trigonometry, Tangens), and basic statistics such as the arithmetic mean (Arithmetisches Mittel) together with hypothesis/significance testing (Hypothesentest oder Signifikanztest). Construction highlights: it uses Polygon to build the plane geometric layout; Max and If to enforce conditional parameter logic; Textfield to provide interactive inputs; Shuffle, Sequence, and Element to randomize and iterate through sample elements; Append, Remove, and Length to manage the sample set size; CountIf to count how many samples satisfy a criterion; Text and SpeechBubbleRight to annotate results; and PointIn together with allowedRect* regions to test whether points land inside target areas, forming the basis for the statistical counts. Suitable for high-school level learners studying trigonometry and introductory statistics, or for interdisciplinary classroom activities focused on connecting geometric intuition with quantitative testing.

GeoGebra Commands & Parameters

  1. Polygon(allowedRect4, allowedRect3, allowedRect2, allowedRect1) → allowedRect, a_1, b, c, d
  2. Max(widthsOptionsR) → widthR
  3. Max(heightsOptionsR) → heightR
  4. Max(heightR, Max[heightsOptionsL]) → heightL
  5. Max(widthsOptionsL) → widthL
  6. If(isShuffleOptionsLechts, Shuffle[1…numOptionsR], 1…numOptionsR) → indizesOptionsRechts
  7. If(isShuffleOptionsLinks, Shuffle[1…numOptionsL], 1…numOptionsL) → indizesOptionsLinks
  8. Textfield(input1) → InputBox1
  9. Textfield(input2) → InputBox2
  10. Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1
  11. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForX, {9, 8, 8, 5, 3, 6, 5, 7, 6, 8, 4, 2, 4, 1, 9, 2, 5, 6, 9, 8, 1, 9, 0, 5, 5, 1, 9, 4, 4, 4, 10, 3, 3, 3, 1, 3, 7, 9, 7, 9, 6, 10, 10, 2, 9, 6, 5, 0, 9, 7, 9, 10, 7, 6, 7, 8, 6, 3, 8, 10, 0, 7, 6, 4, 2, 6, 1, 3, 2, 6, 0, 3, 7, 7, 7, 2, 2, 1, 6, 10, 0, 3, 8, 2, 6, 2, 2, 4, 2, 7, 3, 10, 4, 7, 6, 1, 8, 8, 3, 2}
  12. Element(randomNosForX, Mod[questionCount, 100] + 1) → numX
  13. Shuffle(Sequence[Random[0, 10], i, 1, 100]) → randomNosForY, {6, 3, 10, 2, 2, 9, 2, 3, 9, 3, 10, 3, 0, 5, 8, 2, 8, 8, 4, 7, 1, 2, 6, 0, 8, 9, 0, 6, 0, 5, 5, 8, 10, 7, 3, 9, 2, 7, 2, 8, 3, 8, 1, 4, 5, 8, 7, 8, 9, 8, 5, 4, 5, 2, 8, 5, 6, 2, 3, 8, 8, 9, 9, 7, 2, 9, 0, 8, 5, 3, 1, 10, 5, 4, 6, 4, 4, 2, 5, 10, 5, 2, 4, 6, 8, 2, 6, 4, 7, 4, 2, 4, 2, 7, 4, 7, 8, 4, 8, 9}
  14. Element(randomNosForY, Mod[questionCount, 100] + 1) → numY
  15. Append(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayX
  16. Append(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayY
  17. Remove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeat
  18. Remove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeat
  19. Element(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeat
  20. Element(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeat
  21. Sequence(1) → positionsOptionsRechts
  22. Sequence(Element[optionsRAll, indizesOptionsRechts(i)], i, 1, numOptionsR) → optionsRActual
  23. Length(optionsRActual) → a
  24. Sequence(Element[optionsLAll, indizesOptionsLinks(i)], i, 1, numOptionsL) → optionsLActual
  25. Sequence(allOptionsL(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsL
  26. Sequence(allOptionsR(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsR
  27. Polygon((-10, -2), (10, -2), (10, 10), (-10, 10)) → q1, q_1, r_1, s_1, t_1
  28. Polygon(E, F, G, H) → q2, e_1, f_2, g_2, h_2
  29. Polygon(I, J, K, L) → q3, i_2, j_2, k_1, l_1
  30. SpeechBubbleRight(O, 5, 2) → poly1
  31. Text(optionsLActual(1), CenterOptionL1, true, true, 0, 0) → opL1
  32. Text(optionsLActual(2), CenterOptionL2, true, true, 0, 0) → opL2
  33. Text(optionsLActual(3), CenterOptionL3, true, true, 0, 0) → opL3
  34. Text(optionsLActual(4), CenterOptionL4, true, true, 0, 0) → opL4
  35. Text(optionsLActual(5), CenterOptionL5, true, true, 0, 0) → opL5
  36. PointIn(allowedRect) → CenterOptionR1
  37. Text(optionsRActual(1), CenterOptionR1, true, true, 0, 0) → opR1
  38. Polygon(CenterOptionR1, CenterOptionR1 - (widthR / 2, heightR / 2), CenterOptionR1 + (widthR / 2, ((-heightR)) / 2), CenterOptionR1 + (widthR / 2, heightR / 2), CenterOptionR1 - (widthR / 2, ((-heightR)) / 2), CenterOptionR1 - (widthR / 2, heightR / 2)) → rectRMove1, centeroptionr1, f, g, h, i, j
  39. PointIn(allowedRect) → CenterOptionR2
  40. Text(optionsRActual(2), CenterOptionR2, true, true, 0, 0) → opR2
  41. Polygon(CenterOptionR2, CenterOptionR2 - (widthR / 2, heightR / 2), CenterOptionR2 + (widthR / 2, ((-heightR)) / 2), CenterOptionR2 + (widthR / 2, heightR / 2), CenterOptionR2 - (widthR / 2, ((-heightR)) / 2), CenterOptionR2 - (widthR / 2, heightR / 2)) → rectRMove2, centeroptionr2, k, l, m, n, p
  42. PointIn(allowedRect) → CenterOptionR3
  43. Text(optionsRActual(3), CenterOptionR3, true, true, 0, 0) → opR3
  44. Polygon(CenterOptionR3, CenterOptionR3 - (widthR / 2, heightR / 2), CenterOptionR3 + (widthR / 2, ((-heightR)) / 2), CenterOptionR3 + (widthR / 2, heightR / 2), CenterOptionR3 - (widthR / 2, ((-heightR)) / 2), CenterOptionR3 - (widthR / 2, heightR / 2)) → rectRMove3, centeroptionr3, q, r, s, t, e
  45. PointIn(allowedRect) → CenterOptionR4
  46. Text(optionsRActual(4), CenterOptionR4, true, true, 0, 0) → opR4
  47. Polygon(CenterOptionR4, CenterOptionR4 - (widthR / 2, heightR / 2), CenterOptionR4 + (widthR / 2, ((-heightR)) / 2), CenterOptionR4 + (widthR / 2, heightR / 2), CenterOptionR4 - (widthR / 2, ((-heightR)) / 2), CenterOptionR4 - (widthR / 2, heightR / 2)) → rectRMove4, centeroptionr4, f_1, g_1, h_1, i_1, j_1
  48. PointIn(allowedRect) → CenterOptionR5
  49. Text(optionsRActual(5), CenterOptionR5, true, true, 0, 0) → opR5
  50. Polygon(CenterOptionR5, CenterOptionR5 - (widthR / 2, heightR / 2), CenterOptionR5 + (widthR / 2, ((-heightR)) / 2), CenterOptionR5 + (widthR / 2, heightR / 2), CenterOptionR5 - (widthR / 2, ((-heightR)) / 2), CenterOptionR5 - (widthR / 2, heightR / 2)) → rectRMove5, centeroptionr5, m_1, n_1, b_1, c_1, d_1
  51. If(CountIf[P ∈ answerRectLarger1(1), P, verticesR1] ≟ 4, 1, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR1] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR1] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR1] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR1] ≟ 4, 5) → indexAnswerR1
  52. If(CountIf[P ∈ answerRectLarger1(1), P, verticesR2] ≟ 4, 1, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR2] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR2] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR2] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR2] ≟ 4, 5) → indexAnswerR2
  53. If(CountIf[P ∈ answerRectLarger1(1), P, verticesR3] ≟ 4, 1, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR3] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR3] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR3] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR3] ≟ 4, 5) → indexAnswerR3
  54. If(CountIf[P ∈ answerRectLarger1(1), P, verticesR4] ≟ 4, 1, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR4] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR4] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR4] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR4] ≟ 4, 5) → indexAnswerR4
  55. If(CountIf[P ∈ answerRectLarger1(1), P, verticesR5] ≟ 4, 1, -1, CountIf[P ∈ answerRectLarger2(1), P, verticesR5] ≟ 4, 2, CountIf[P ∈ answerRectLarger3(1), P, verticesR5] ≟ 4, 3, CountIf[P ∈ answerRectLarger4(1), P, verticesR5] ≟ 4, 4, CountIf[P ∈ answerRectLarger5(1), P, verticesR5] ≟ 4, 5) → indexAnswerR5
  56. CountIf(ind ≠ -1, ind, indizesAnswerR) → numAnswersDraggedToLeft
  57. If(correct, "\vphantom{✘}✓ Richtig", If[correctpartially, "\vphantom{✓}✘ Teilweise richtig", "\vphantom{✓}✘ Falsch"]) → correctTextTemp
  58. Text((("\Large\textsf{" * correctTextTemp) * "}"), PStartCorrectText, true, true, 1, 0) → correctText

AI Drawing Prompt Reference

Draw a Greek-style angle salad chart with multiple rectangular and circular options representing different angle possibilities. The chart includes two circular input fields where users can input numbers representing angle sizes. The chart also includes multiple rectangular regions representing different angle possibilities, which users can select by clicking on them. The chart also includes circular options representing different angle possibilities, which users can select by clicking on them. The chart also includes lines and points representing angle relationships.
The prompt above was compiled from the original drawing commands and is for reference only.