Greek-Style Angle Salad: Using Tangent and Mean-Based Significance Checks
Loading the math board and drawing, please wait…
In collections
Wiederholung Winkel: Bezeichnung, Arten, Messen & Zeichnen
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
Polygon(allowedRect4, allowedRect3, allowedRect2, allowedRect1) → allowedRect, a_1, b, c, dMax(widthsOptionsR) → widthRMax(heightsOptionsR) → heightRMax(heightR, Max[heightsOptionsL]) → heightLMax(widthsOptionsL) → widthLIf(isShuffleOptionsLechts, Shuffle[1…numOptionsR], 1…numOptionsR) → indizesOptionsRechtsIf(isShuffleOptionsLinks, Shuffle[1…numOptionsL], 1…numOptionsL) → indizesOptionsLinksTextfield(input1) → InputBox1Textfield(input2) → InputBox2Polygon(PtopLeftCornerFeedback, PtopRightCornerFeedback, PbottomRightCornerFeedback, PbottomLeftCornerFeedback) → rectangleCorrect, rectangleCorrectS3, rectangleCorrectS4, rectangleCorrectS2, rectangleCorrectS1Shuffle(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}Element(randomNosForX, Mod[questionCount, 100] + 1) → numXShuffle(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}Element(randomNosForY, Mod[questionCount, 100] + 1) → numYAppend(true, Sequence[If[randomNosForX(i) ≟ randomNosForX(i - 1), false, true], i, 2, 100]) → stayXAppend(true, Sequence[If[randomNosForY(i) ≟ randomNosForY(i - 1), false, true], i, 2, 100]) → stayYRemove(Sequence[If[stayX(i), randomNosForX(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForXwithoutRepeatRemove(Sequence[If[stayY(i), randomNosForY(i), 0], i, 1, 100], Sequence[0, i, 1, 100]) → randomNosForYwithoutRepeatElement(randomNosForXwithoutRepeat, Mod[questionCount, Length[randomNosForXwithoutRepeat]] + 1) → numXwithoutRepeatElement(randomNosForYwithoutRepeat, Mod[questionCount, Length[randomNosForYwithoutRepeat]] + 1) → numYwithoutRepeatSequence(1) → positionsOptionsRechtsSequence(Element[optionsRAll, indizesOptionsRechts(i)], i, 1, numOptionsR) → optionsRActualLength(optionsRActual) → aSequence(Element[optionsLAll, indizesOptionsLinks(i)], i, 1, numOptionsL) → optionsLActualSequence(allOptionsL(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsLSequence(allOptionsR(indizesOptionsLinks(i)), i, 1, numOptionsL) → optionsRPolygon((-10, -2), (10, -2), (10, 10), (-10, 10)) → q1, q_1, r_1, s_1, t_1Polygon(E, F, G, H) → q2, e_1, f_2, g_2, h_2Polygon(I, J, K, L) → q3, i_2, j_2, k_1, l_1SpeechBubbleRight(O, 5, 2) → poly1Text(optionsLActual(1), CenterOptionL1, true, true, 0, 0) → opL1Text(optionsLActual(2), CenterOptionL2, true, true, 0, 0) → opL2Text(optionsLActual(3), CenterOptionL3, true, true, 0, 0) → opL3Text(optionsLActual(4), CenterOptionL4, true, true, 0, 0) → opL4Text(optionsLActual(5), CenterOptionL5, true, true, 0, 0) → opL5PointIn(allowedRect) → CenterOptionR1Text(optionsRActual(1), CenterOptionR1, true, true, 0, 0) → opR1Polygon(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, jPointIn(allowedRect) → CenterOptionR2Text(optionsRActual(2), CenterOptionR2, true, true, 0, 0) → opR2Polygon(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, pPointIn(allowedRect) → CenterOptionR3Text(optionsRActual(3), CenterOptionR3, true, true, 0, 0) → opR3Polygon(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, ePointIn(allowedRect) → CenterOptionR4Text(optionsRActual(4), CenterOptionR4, true, true, 0, 0) → opR4Polygon(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_1PointIn(allowedRect) → CenterOptionR5Text(optionsRActual(5), CenterOptionR5, true, true, 0, 0) → opR5Polygon(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_1If(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) → indexAnswerR1If(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) → indexAnswerR2If(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) → indexAnswerR3If(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) → indexAnswerR4If(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) → indexAnswerR5CountIf(ind ≠ -1, ind, indizesAnswerR) → numAnswersDraggedToLeftIf(correct, "\vphantom{✘}✓ Richtig", If[correctpartially, "\vphantom{✓}✘ Teilweise richtig", "\vphantom{✓}✘ Falsch"]) → correctTextTempText((("\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.