Ratio Visualization
Loading the math board and drawing, please wait…
This example visually demonstrates the concept of ratios. It involves core mathematical concepts such as ratios, logic, and mathematics. Using GeoGebra commands like Element, If, Point, etc., a clear ratio model can be constructed. Suitable for middle school and above students to learn about ratios and logical reasoning.
GeoGebra Commands & Parameters
Element(KeepIf[round(x) ≟ x, Sequence[sumQuantity12 / Element[Sequence[floor(sqrt(sumQuantity12) - k), k, 0, 5], i], i, 1, 10]], 1) → areaModelColumnsIf(quantity2 ≟ 0, areaModelRows - 1, If[areaModelColumns > quantity1, 0, If[(2 * areaModelColumns) > quantity1, 1, If[(3 * areaModelColumns) > quantity1, 2, If[(4 * areaModelColumns) > quantity1, 3, If[(5 * areaModelColumns) > quantity1, 4, 5]]]]]) → setFullRowsSelectedIndex(visualType) → visualTypeSelectedIf(quantity2 < 100, 100, If[quantity2 < 500, 10, 1]) → roundingFactorDNL2valuesPoint(Segment[(0, 0.85), (NLlength, 0.85)]) → slidePtIf(quantity1 < 100, 100, If[quantity1 < 500, 10, 1]) → roundingFactorDNL1valuesTextfield(q1labelForLengthAlwaysShow) → q1blabelInputTextfield(q2labelForLengthAlwaysShow) → q2blabelInputTextfield(quantity1) → q1avalueInputTextfield(quantity2) → q2avalueInputSegment(slidePt + (0, 1.7), slidePt - (0, 1.75)) → slideSegTextfield(locationXq1) → locationXq1InputTextfield(locationXq2) → locationXq2InputSequence(Text[(p * quantity2), ((length * p) + xOffSet, y(Master) - (1.7 * yOffSet))], p, 2, 4) → hashMarkValuesTextNL2Vector(instructionsArrowsPt, (1.4187, -1)) → instructionsArrow2Vector(instructionsArrowsPt, (0.28383, -1)) → instructionsArrow1Mirror(instructionsArrow1, x = x(instructionsArrowsPt)) → instructionsArrow3Mirror(instructionsArrow2, x = x(instructionsArrowsPt)) → instructionsArrow4Midpoint(Master, Master + (-0.8 + NLlength, 0.9)) → CircleModelCenterIf(quantity1 ≥ quantity2, ceil(quantity1), ceil(quantity2)) → ceilGreaterOfQuantity12Sequence(((length * k), y(Master)), k, 0, 4) → hashMajorNL2Segment(Master + (0, (-NLgap)), Master + (4.3, (-NLgap))) → NL3segmentSegment(Master, Master + (NLlength, 0)) → NL2segmentSequence(((length * k), y(Master) - NLgap), k, 0, 4) → hashMajorNL3Text(0, Master + (-0.035, (-1.7 * yOffSet))) → zeroNL2Text(0, Master + (-0.035, If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + yOffSet])) → zeroNL1Sequence((k, y(Master)), k, 0, NLlength, length / hashMinor) → hashMinorNL2Sequence((k, y(Master) - NLgap), k, 0, NLlength, length / hashMinor) → hashMinorNL3Text(0, Master + (-0.035, (-NLgap) - (1.7 * yOffSet))) → zeroNL3Circle(CircleModelCenter, circleModelRadius) → circleModelOutlineCircle(CircleModelCenter, circleModelRadius) → circleModelWhiteBackgroundCircleSector(CircleModelCenter, CircleModelCenter + (0, circleModelRadius), Rotate[CircleModelCenter + (0, circleModelRadius), ((2 * π) * quantity1 / sumQuantity12), CircleModelCenter]) → circleModelSectorQ1Sequence(Segment[CircleModelCenter, Rotate[CircleModelCenter + (0, circleModelRadius), ((i * 2) * π / sumQuantity12), CircleModelCenter]], i, 0, sumQuantity12 - 1, 1) → circleModelDividersSequence(Text[(p * quantity1), ((length * p) + xOffSet, y(Master) + If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + (1.1 * yOffSet)])], p, 2, 4) → hashMarkValuesTextNL1Sequence(((length * k), y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], 4) → hashMajorNL1Sequence((k, y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], NLlength, length / hashMinor) → hashMinorNL1Segment(Master + (If[visualTypeSelected ≟ 3, -1.2, 0], NLgap), Master + (NLlength, NLgap)) → NL1segmentPolygon(Master + (0, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Outline, tapeDiagram2OutlineSeg_1, tapeDiagram2OutlineSeg_2, tapeDiagram2OutlineSeg_3, tapeDiagram2OutlineSegPolygon(Master + (0, tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Quantity1Poly, g, h, i, jSequence(Segment[Master + (i, tapeDiagram2VerticalOffset), Master + (i, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)], i, 0, tapeDiagramModelsWidth, unit) → tapeDiagram2Quantity1DividersPolygon(Master, Master + ((quantity2 * unit), 0), Master + ((quantity2 * unit), tapeDiagramModelsHeight), Master + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity2Poly, tapeDiagram1Quantity2PolySeg_1, tapeDiagram1Quantity2PolySeg_2, tapeDiagram1Quantity2PolySeg_3, tapeDiagram1Quantity2PolySegPolygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1Poly, tapeDiagram1Quantity1PolySeg, tapeDiagram1Quantity1PolySeg_1, tapeDiagram1Quantity1PolySeg_2, tapeDiagram1Quantity1PolySeg_3Polygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1PolyWhite, v2, k, l, mSequence(Segment[MasterTape2 + (i, 0), MasterTape2 + (i, tapeDiagramModelsHeight)], i, 0, (quantity1 * unit), unit) → tapeDiagram1Quantity1DividersSequence(Segment[Master + (0 + i, 0), Master + (0 + i, tapeDiagramModelsHeight)], i, 0, (quantity2 * unit), unit) → tapeDiagram1Quantity2DividersPolygon(Master, Master + (tapeDiagramModelsWidth, 0), Master + (tapeDiagramModelsWidth, areaModelHeight), Master + (0, areaModelHeight)) → areaModelOutline, areaModelOutlineSeg_1, areaModelOutlineSeg_2, areaModelOutlineSeg_3, areaModelOutlineSegSequence(Segment[Master + (i, 0), Master + (i, areaModelHeight)], i, 0, tapeDiagramModelsWidth, tapeDiagramModelsWidth / areaModelColumns) → areaModelColumnDivSequence(Segment[Master + (0, i), Master + (tapeDiagramModelsWidth, i)], i, 0, areaModelHeight, areaModelHeight / areaModelRows) → areaModelRowDivPolygon(Master, Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), areaModelHeight), Master + (0, areaModelHeight)) → areaModelQ1FullColumns, master, f, n, pPolygon(Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + (((floor(quantity1 / areaModelRows) + 1) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + (((floor(quantity1 / areaModelRows) + 1) * tapeDiagramModelsWidth / areaModelColumns), ((quantity1 - (floor(quantity1 / areaModelRows) * areaModelRows)) * areaModelHeight / areaModelRows)), Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), ((quantity1 - (floor(quantity1 / areaModelRows) * areaModelRows)) * areaModelHeight / areaModelRows))) → areaModelQ1PartialColumn, q, r, s, tSequence(2 + i, i, 0, areaModelRows - 1) → deleteListRowsFlatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows]) → setChangeXFlatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, areaModelRows - 1]) → setChangeYZip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeX), b, ((-setSpacingVert) * setChangeY)) → setModel1OutlinesZip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeX), b, ((-setSpacingVert) * setChangeY)) → setModel1FillWhiteFlatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows - 1]) → setChangeXQ1FullFlatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, setFullRows - 1]) → setChangeYQ1FullZip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeXQ1Full), b, ((-setSpacingVert) * setChangeYQ1Full)) → setModel1Q1FullRowsSequence(Polygon[MSPart + (i, 0), MSPart + (i + setPolyWidth, 0), MSPart + (i + setPolyWidth, setPolyHeight), MSPart + (i, setPolyHeight)], i, 0, (setSpacingHoriz * (quantity1 - (setFullRows * areaModelColumns) - 1)), setSpacingHoriz) → setModel1Q1PartialRowCircle((-0.7058662075654852, 1.0923793127338763), setModel2Radius) → setModel2CircleQ1_2Circle((-0.1321269059167945, 1.281524137453225), setModel2Radius) → setModel2CircleQ1_1Circle((0.0317986088399741, 0.6384317334074399), setModel2Radius) → setModel2CircleQ1_3Circle((0.4542220507131861, 1.098684140224521), setModel2Radius) → setModel2CircleQ1_4Circle((0.9649130774554273, 1.3382675848690295), setModel2Radius) → setModel2CircleQ1_5Circle((0.5866234280167298, 0.47450621865067083), setModel2Radius) → setModel2CircleQ1_6Circle((-0.5230262103367816, 0.5501641485384103), setModel2Radius) → setModel2CircleQ1_7Circle((1.0657903173057461, 0.7393089732577589), setModel2Radius) → setModel2CircleQ1_8Circle((1.5260427241228276, 1.1239034501871006), setModel2Radius) → setModel2CircleQ1_9Circle((0.17680964112480807, 0.12143587917455337), setModel2Radius) → setModel2CircleQ1_{10}Circle((0.8072923901893032, -0.036184808091570236), setModel2Radius) → setModel2CircleQ1_{11}Circle((1.3368978994034795, 0.2412276014968075), setModel2Radius) → setModel2CircleQ1_{12}Circle((1.7845406512392712, 0.5879931134822798), setModel2Radius) → setModel2CircleQ1_{13}Circle((2.1250013357340993, 1.0860744852432314), setModel2Radius) → setModel2CircleQ1_{14}Circle((2.358279952887962, 0.5501641485384104), setModel2Radius) → setModel2CircleQ1_{15}Circle((2.824837187195688, 1.0545503477900064), setModel2Radius) → setModel2CircleQ1_{16}Circle((3.4994537286946987, 1.0608551752806514), setModel2Radius) → setModel2CircleQ1_{17}Circle((2.995067529443102, 0.4682013911600258), setModel2Radius) → setModel2CircleQ1_{18}Circle((2.0241240958837796, 0.045777949286814126), setModel2Radius) → setModel2CircleQ1_{19}Circle((3.562502003601148, 0.4808110461413158), setModel2Radius) → setModel2CircleQ1_{20}Circle((4.003835832062515, 0.13404758486902935), setModel2Radius) → setModel2CircleQ2_1Circle((3.721217904946072, -0.34046068449482747), setModel2Radius) → setModel2CircleQ2_2Circle((4.395834446445083, -0.22697378966321807), setModel2Radius) → setModel2CircleQ2_3Circle((3.3618427379793094, -0.7376648164054594), setModel2Radius) → setModel2CircleQ2_4Circle((4.131031691837994, -0.6998358514615898), setModel2Radius) → setModel2CircleQ2_5Circle((3.26096549812899, -0.006304827490644951), setModel2Radius) → setModel2CircleQ2_6Circle((2.61156826659256, 0.01891448247193486), setModel2Radius) → setModel2CircleQ2_7Circle((4.3895296189544375, 0.554824819176756), setModel2Radius) → setModel2CircleQ2_8Circle((2.8133227462931987, -0.7187503339335245), setModel2Radius) → setModel2CircleQ2_9Circle((2.3152413745322478, -0.46655723430772644), setModel2Radius) → setModel2CircleQ2_{10}Circle((4.269737896632183, 1.1285641208254464), setModel2Radius) → setModel2CircleQ2_{11}Circle((1.5712717306361432, -0.2837172370790227), setModel2Radius) → setModel2CircleQ2_{12}Circle((1.8297696577525862, -0.7439696438961044), setModel2Radius) → setModel2CircleQ2_{13}Circle((1.085800013856482, -0.5043861992515962), setModel2Radius) → setModel2CircleQ2_{14}Circle((0.5688041596235955, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{15}Circle((-0.38952961895443716, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{16}Circle((0.10224692531586876, -0.4287282693638568), setModel2Radius) → setModel2CircleQ2_{17}Circle((-0.42105375640766207, -0.006304827490644885), setModel2Radius) → setModel2CircleQ2_{18}Circle((-0.9758785755844179, -0.7250551614241696), setModel2Radius) → setModel2CircleQ2_{19}Circle((-0.9317447831499027, -0.13870620479418896), setModel2Radius) → setModel2CircleQ2_{20}
AI Drawing Prompt Reference
Draw a ratio visualization model with a ring and two rectangular strips. The ring represents the total quantity, divided into two parts, one for quantity1 and the other for quantity2. Two rectangular strips represent quantity1 and quantity2, each with dividing lines. The quantity1 strip also includes a white background rectangle.
The prompt above was compiled from the original drawing commands and is for reference only.