Ratio of Circle Circumference to Diameter
Loading the math board and drawing, please wait…
This example demonstrates the constant ratio of a circle's circumference to its diameter, which is π. Students can visually understand the concept of π by constructing a circle, its diameter, and circumference using GeoGebra commands such as Sequence, Element, Textfield, Segment, Circle, CircleArc, Text, Join, If, etc. Suitable for 7-8th grade students to learn basic properties of circles.
GeoGebra Commands & Parameters
Sequence(Random[1, 10], i, 1, 10) → randomNumbers, {8, 3, 7, 10, 5, 5, 9, 3, 3, 1}Element(randomNumbers, Mod[questionCount, Length[randomNumbers]] + 1) → randomNumberTextfield(input) → inputBoxSegment(StartP1 + (0, radius1), StartP1 + (((2 * pi) * radius1), radius1)) → SegMP1Circle(MP1, radius1) → Circle1CircleArc(MP1, FC1, MP1 + (radius1 * (cos(-90° - (360° * anim1)), sin(-90° - (360° * anim1))))) → Arc1Segment(StartP1, FC1) → seg1Segment(MP1 + ((-radius1), 0), MP1 + (radius1, 0)) → durchmesser1Segment(StartP1, StartP1 + (((2 * radius1) * If[anim1 < 1 / pi, 1, anim1 < 2 / pi, 2, anim1 < 3 / pi, 3, 4]), 0)) → line1Sequence(StartP1 + (((k * 2) * radius1), 0), k, 0, 4) → PointList1Sequence(Segment[StartP1 + (((k * 2) * radius1), (-segLength)), StartP1 + (((k * 2) * radius1), segLength)], k, 0, If[1 / pi > anim1 > 0, 0, 2 / pi > anim1 ≥ 1 / pi, 1, 3 / pi > anim1 ≥ 2 / pi, 2, 1 ≥ anim1 ≥ 3 / pi, 3, -1]) → SegList1Textfield(input031) → InputBox031Segment(MP1 + (radius1 * (cos(-90° - (360° * anim1)), sin(-90° - (360° * anim1)))) + ((-segLength) * UnitVector[Vector[MP1, MP1 + (radius1 * (cos(-90° - (360° * anim1)), sin(-90° - (360° * anim1))))]]), MP1 + (radius1 * (cos(-90° - (360° * anim1)), sin(-90° - (360° * anim1)))) + (segLength * UnitVector[Vector[MP1, MP1 + (radius1 * (cos(-90° - (360° * anim1)), sin(-90° - (360° * anim1))))]])) → segT1Circle(MP2, radius2) → Circle2Circle(MP3, radius3) → Circle3Circle(MP4, radius4) → Circle4Segment(StartP2, MP2 + (0, (-radius2))) → seg2Segment(StartP3, MP3 + (0, (-radius3))) → seg3Segment(StartP4, MP4 + (0, (-radius4))) → seg4Segment(StartP2, StartP2 + (((2 * radius2) * If[anim2 < 1 / pi, 1, anim2 < 2 / pi, 2, anim2 < 3 / pi, 3, 4]), 0)) → line2Sequence(StartP2 + (((k * 2) * radius2), 0), k, 0, 4) → PointList2Sequence(StartP3 + (((k * 2) * radius3), 0), k, 0, 4) → PointList3Sequence(StartP4 + (((k * 2) * radius4), 0), k, 0, 4) → PointList4Circle(MP5, radius5) → Circle5CircleArc(MP5, MP5 - (0, radius5), MP5 + (radius5 * (cos(-90° - (360° * anim5)), sin(-90° - (360° * anim5))))) → Arc5Segment(StartP5, MP5 + (0, (-radius5))) → seg5Segment(MP5 + ((-radius5), 0), MP5 + (radius5, 0)) → segD5Text("\textsf{\bold{\textcolor{#1565C0}{1}}}", MP5, false, true, 0, 1) → CapD5Segment(Origin, Origin + ((8 * radius5) + 0.5, 0)) → line5Sequence(Origin + (((k * 2) * radius5), 0), k, 0, 4) → PointList5Segment(Origin + (((2 * pi) * radius5), (-2 * segLength / ZoomFactor)), Origin + (((2 * pi) * radius5), (2 * segLength / ZoomFactor))) → segT5Sequence(Segment[PointList5(k) + (0, ((-segLength)) / ZoomFactor), PointList5(k) + (0, segLength / ZoomFactor)], k, 1, 5) → SegList5Sequence(Text[(("\textsf{" * k) * "}"), PointList5(k + 1) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 0, 4) → Cap5Sequence(Origin + (((k * 2) * radius5), 0), k, 2.7, 3.6, 0.1) → PointList51Sequence(Origin + (((k * 2) * radius5), 0), k, 3.1, 3.2, 0.01) → PointList52Sequence(Origin + (((k * 2) * radius5), 0), k, 3.135, 3.15, 0.001) → PointList53Sequence(Origin + (((k * 2) * radius5), 0), k, 3.141, 3.142, 0.0001) → PointList54Sequence(Segment[PointList51(k) + (0, ((-segLength51)) / ZoomFactor), PointList51(k) + (0, segLength51 / ZoomFactor)], k, 1, Length[PointList51]) → SegList51Sequence(Segment[PointList52(k) + (0, ((-segLength51)) / ZoomFactor), PointList52(k) + (0, segLength51 / ZoomFactor)], k, 1, Length[PointList52]) → SegList52Sequence(Segment[PointList53(k) + (0, ((-segLength51)) / ZoomFactor), PointList53(k) + (0, segLength51 / ZoomFactor)], k, 1, Length[PointList53]) → SegList53Sequence(Segment[PointList54(k) + (0, ((-segLength51)) / ZoomFactor), PointList54(k) + (0, segLength51 / ZoomFactor)], k, 1, Length[PointList54]) → SegList54Sequence(Origin + (((k * 2) * radius5), 0), k, 3.14155, 3.14165, 0.00001) → PointList55Sequence(Segment[PointList55(k) + (0, ((-segLength51)) / ZoomFactor), PointList55(k) + (0, segLength51 / ZoomFactor)], k, 1, Length[PointList55]) → SegList55Sequence((("\textsf{" * ReplaceAll[Text[k], ".", ","]) * "}"), k, 2.7, 3.6, 0.1) → TxtList51Sequence(Text[TxtList51(k), PointList51(k) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 1, Length[PointList51]) → Cap51Sequence((("\textsf{" * ReplaceAll[Text[k], ".", ","]) * "}"), k, 3.1, 3.2, 0.01) → TxtList52Sequence(Text[TxtList52(k), PointList52(k) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 1, Length[PointList52]) → Cap52Sequence((("\textsf{" * ReplaceAll[Text[k], ".", ","]) * "}"), k, 3.135, 3.15, 0.001) → TxtList53Sequence(Text[TxtList53(k), PointList53(k) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 1, Length[PointList53]) → Cap53Sequence((("\textsf{" * ReplaceAll[Text[k], ".", ","]) * "}"), k, 3.141, 3.142, 0.0001) → TxtList54Sequence(Text[TxtList54(k), PointList54(k) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 1, Length[PointList54]) → Cap54Sequence((("\textsf{" * ReplaceAll[Text[k], ".", ","]) * "}"), k, 3.14155, 3.14165, 0.00001) → TxtList55Sequence(Text[TxtList55(k), PointList55(k) + (0, ((-segLength)) / ZoomFactor), false, true, 0, -1], k, 1, Length[PointList55]) → Cap55Segment(StartP6, StartP6 + (((2 * radius6) * pi), 0)) → seg6Circle(MP6, radius6) → Circle6Join({Sequence[StartP6 + (((k * radius6) * 2), 0), k, 0, 3], {StartP6 + (((2 * radius6) * pi), 0)}}) → PointList6Join({Sequence[(("\textsf{\textcolor{black}{" * k) * "}}"), k, 0, 3], {(("\textsf{\textcolor{#DB6114}{\large{" * pi) * " ≈ 3,14159}}}")}}) → TxtList6Sequence(Segment[PointList6(k) + (0, (-segLength)), PointList6(k) + (0, segLength)], k, 1, 4) → SegList6Segment(PointList6(5) + (0, (-segLength)), PointList6(5) + (0, segLength)) → segT6If(step ≟ 2, anim1 ≟ 1, step ≟ 8, ZoomCounter ≟ 5, true, step ≟ 3, correct031, step ≟ 4, anim2 ≟ 3, step ≟ 6, anim5 ≟ 1, step ≟ 7, false) → clickableBtnNextSequence(Text[TxtList6(k), PointList6(k) + (If[k ≟ 5, -0.3, 0], (-segLength) + If[k ≟ 5, 0.05, 0]), false, true, If[k < 5, 0, 1], -1], k, 1, 5) → Cap6Segment(MP1 + ((-radius1), 0) + (animd * (FC1 - MP1 - ((-radius1), 0))), MP1 + ((-radius1), 0) + (animd * (FC1 - MP1 - ((-radius1), 0))) + ((2 * radius1), 0)) → durchmesser2CircleArc(MP2, MP2 - (0, radius2), MP2 + (radius2 * (cos(-90° - (360° * Min[anim2, 1])), sin(-90° - (360° * Min[anim2, 1]))))) → Arc2CircleArc(MP3, MP3 - (0, radius3), MP3 + (radius3 * (cos(-90° - (360° * Min[Max[anim2 - 1, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 1, 0], 1]))))) → Arc3CircleArc(MP4, MP4 - (0, radius4), MP4 + (radius4 * (cos(-90° - (360° * Min[Max[anim2 - 2, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 2, 0], 1]))))) → Arc4Segment(MP2 + (radius2 * (cos(-90° - (360° * Min[anim2, 1])), sin(-90° - (360° * Min[anim2, 1])))) - (segLength * UnitVector[Vector[MP2, MP2 + (radius2 * (cos(-90° - (360° * Min[anim2, 1])), sin(-90° - (360° * Min[anim2, 1]))))]]), MP2 + (radius2 * (cos(-90° - (360° * Min[anim2, 1])), sin(-90° - (360° * Min[anim2, 1])))) + (segLength * UnitVector[Vector[MP2, MP2 + (radius2 * (cos(-90° - (360° * Min[anim2, 1])), sin(-90° - (360° * Min[anim2, 1]))))]])) → segT2Segment(MP4 + (radius4 * (cos(-90° - (360° * Min[Max[anim2 - 2, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 2, 0], 1])))) - (segLength * UnitVector[Vector[MP4, MP4 + (radius4 * (cos(-90° - (360° * Min[Max[anim2 - 2, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 2, 0], 1]))))]]), MP4 + (radius4 * (cos(-90° - (360° * Min[Max[anim2 - 2, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 2, 0], 1])))) + (segLength * UnitVector[Vector[MP4, MP4 + (radius4 * (cos(-90° - (360° * Min[Max[anim2 - 2, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 2, 0], 1]))))]])) → segT4Segment(MP3 + (radius3 * (cos(-90° - (360° * Min[Max[anim2 - 1, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 1, 0], 1])))) - (segLength * UnitVector[Vector[MP3, MP3 + (radius3 * (cos(-90° - (360° * Min[Max[anim2 - 1, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 1, 0], 1]))))]]), MP3 + (radius3 * (cos(-90° - (360° * Min[Max[anim2 - 1, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 1, 0], 1])))) + (segLength * UnitVector[Vector[MP3, MP3 + (radius3 * (cos(-90° - (360° * Min[Max[anim2 - 1, 0], 1])), sin(-90° - (360° * Min[Max[anim2 - 1, 0], 1]))))]])) → segT3Sequence(Segment[PointList2(k) + (0, (-segLength)), PointList2(k) + (0, segLength)], k, 1, If[1 / pi > anim2 ≥ 0, 1, 2 / pi > anim2 ≥ 1 / pi, 2, 3 / pi > anim2 ≥ 2 / pi, 3, 1 ≥ anim2 ≥ 3 / pi, 4, 4]) → SegList2Sequence(Segment[PointList3(k) + (0, (-segLength)), PointList3(k) + (0, segLength)], k, 1, If[1 + 1 / pi > anim2 ≥ 0, 1, 1 + 2 / pi > anim2 ≥ 1 + 1 / pi, 2, 1 + 3 / pi > anim2 ≥ 1 + 2 / pi, 3, 3 ≥ anim2 ≥ 1 + 3 / pi, 4, 4]) → SegList3Sequence(Segment[PointList4(k) + (0, (-segLength)), PointList4(k) + (0, segLength)], k, 1, If[2 + 1 / pi > anim2 ≥ 0, 1, 2 + 2 / pi > anim2 ≥ 2 + 1 / pi, 2, 2 + 3 / pi > anim2 ≥ 2 + 2 / pi, 3, 3 ≥ anim2 ≥ 2 + 3 / pi, 4, 4]) → SegList4Segment(StartP3, StartP3 + (((2 * radius3) * If[anim2 < 1 + 1 / pi, 1, anim2 < 1 + 2 / pi, 2, anim2 < 1 + 3 / pi, 3, 4]), 0)) → line3Segment(StartP4, StartP4 + (((2 * radius4) * If[anim2 < 2 + 1 / pi, 1, anim2 < 2 + 2 / pi, 2, anim2 < 2 + 3 / pi, 3, 4]), 0)) → line4Text("\textsf{{\bold{d}}}", Midpoint[PointList1(1), PointList1(2)] + (0, (-segLength)), false, true, 0, -1) → Capd2Sequence(Text[(("\textsf{" * k) * "}"), PointList1(k + 1) + (0, (-segLength)), false, true, 0, -1], k, 0, If[anim1 ≟ 0, -1, anim1 < 1 / pi, 0, anim1 < 2 / pi, 1, anim1 < 3 / pi, 2, 3]) → Cap1Sequence(Text[(("\textsf{" * k) * "}"), PointList2(k + 1) + (0, (-segLength)), false, true, 0, -1], k, 0, If[anim2 ≟ 0, -1, anim2 < 1 / pi, 0, anim2 < 2 / pi, 1, anim2 < 3 / pi, 2, 3]) → Cap2Sequence(Text[(("\textsf{" * k) * "}"), PointList3(k + 1) + (0, (-segLength)), false, true, 0, -1], k, 0, If[anim2 ≤ 1, -1, anim2 < 1 + 1 / pi, 0, anim2 < 1 + 2 / pi, 1, anim2 < 1 + 3 / pi, 2, 3]) → Cap3Sequence(Text[(("\textsf{" * k) * "}"), PointList4(k + 1) + (0, (-segLength)), false, true, 0, -1], k, 0, If[anim2 ≤ 2, -1, anim2 < 2 + 1 / pi, 0, anim2 < 2 + 2 / pi, 1, anim2 < 2 + 3 / pi, 2, 3]) → Cap4Segment(StartP1 + (0, -1), StartP1 + ((2 * radius1), -1)) → segD2Segment(StartP2 + (0, 0.5), StartP2 + ((2 * radius2), 0.5)) → segD41Segment(StartP3 + (0, 0.5), StartP3 + ((2 * radius3), 0.5)) → segD42Segment(StartP4 + (0, 0.5), StartP4 + ((2 * radius4), 0.5)) → segD43Text("\textsf{\bold{d_1}}", Midpoint[segD41], false, true, 0, 1) → CapD41Text("\textsf{\bold{d_2}}", Midpoint[segD42], false, true, 0, 1) → CapD42Text("\textsf{\bold{d_3}}", Midpoint[segD43], false, true, 0, 1) → CapD43Text("\textsf{{\bold{d}}}", Midpoint[PointList1(2), PointList1(3)] + (0, (-segLength)), false, true, 0, -1) → Capd22Text("\textsf{{\bold{d}}}", Midpoint[PointList1(3), PointList1(4)] + (0, (-segLength)), false, true, 0, -1) → Capd23Segment(StartP1 + ((2 * radius1), -1), StartP1 + (((2 * 2) * radius1), -1)) → segD22Segment(StartP1 + ((4 * radius1), -1), StartP1 + (((3 * 2) * radius1), -1)) → segD23Segment(StartP2 + ((2 * radius2), 0.5), StartP2 + ((4 * radius2), 0.5)) → segD412Segment(StartP2 + ((4 * radius2), 0.5), StartP2 + ((6 * radius2), 0.5)) → segD413Text("\textsf{\bold{d_1}}", Midpoint[segD412], false, true, 0, 1) → CapD412Text("\textsf{\bold{d_1}}", Midpoint[segD413], false, true, 0, 1) → CapD413Segment(StartP3 + ((2 * radius3), 0.5), StartP3 + ((4 * radius3), 0.5)) → segD422Segment(StartP3 + ((4 * radius3), 0.5), StartP3 + ((6 * radius3), 0.5)) → segD423Segment(StartP4 + ((2 * radius4), 0.5), StartP4 + ((4 * radius4), 0.5)) → segD432Segment(StartP4 + ((4 * radius4), 0.5), StartP4 + ((6 * radius4), 0.5)) → segD433Text("\textsf{\bold{d_2}}", Midpoint[segD422], false, true, 0, 1) → CapD422Text("\textsf{\bold{d_2}}", Midpoint[segD423], false, true, 0, 1) → CapD423Text("\textsf{\bold{d_3}}", Midpoint[segD432], false, true, 0, 1) → CapD432Text("\textsf{\bold{d_3}}", Midpoint[segD433], false, true, 0, 1) → CapD433