Ratio Visualization

Ratio Visualization
Loading the math board and drawing, please wait…
2017-03-13 01:52
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

  1. Element(KeepIf[round(x) ≟ x, Sequence[sumQuantity12 / Element[Sequence[floor(sqrt(sumQuantity12) - k), k, 0, 5], i], i, 1, 10]], 1) → areaModelColumns
  2. If(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]]]]]) → setFullRows
  3. SelectedIndex(visualType) → visualTypeSelected
  4. If(quantity2 < 100, 100, If[quantity2 < 500, 10, 1]) → roundingFactorDNL2values
  5. Point(Segment[(0, 0.85), (NLlength, 0.85)]) → slidePt
  6. If(quantity1 < 100, 100, If[quantity1 < 500, 10, 1]) → roundingFactorDNL1values
  7. Textfield(q1labelForLengthAlwaysShow) → q1blabelInput
  8. Textfield(q2labelForLengthAlwaysShow) → q2blabelInput
  9. Textfield(quantity1) → q1avalueInput
  10. Textfield(quantity2) → q2avalueInput
  11. Segment(slidePt + (0, 1.7), slidePt - (0, 1.75)) → slideSeg
  12. Textfield(locationXq1) → locationXq1Input
  13. Textfield(locationXq2) → locationXq2Input
  14. Sequence(Text[(p * quantity2), ((length * p) + xOffSet, y(Master) - (1.7 * yOffSet))], p, 2, 4) → hashMarkValuesTextNL2
  15. Vector(instructionsArrowsPt, (1.4187, -1)) → instructionsArrow2
  16. Vector(instructionsArrowsPt, (0.28383, -1)) → instructionsArrow1
  17. Mirror(instructionsArrow1, x = x(instructionsArrowsPt)) → instructionsArrow3
  18. Mirror(instructionsArrow2, x = x(instructionsArrowsPt)) → instructionsArrow4
  19. Midpoint(Master, Master + (-0.8 + NLlength, 0.9)) → CircleModelCenter
  20. If(quantity1 ≥ quantity2, ceil(quantity1), ceil(quantity2)) → ceilGreaterOfQuantity12
  21. Sequence(((length * k), y(Master)), k, 0, 4) → hashMajorNL2
  22. Segment(Master + (0, (-NLgap)), Master + (4.3, (-NLgap))) → NL3segment
  23. Segment(Master, Master + (NLlength, 0)) → NL2segment
  24. Sequence(((length * k), y(Master) - NLgap), k, 0, 4) → hashMajorNL3
  25. Text(0, Master + (-0.035, (-1.7 * yOffSet))) → zeroNL2
  26. Text(0, Master + (-0.035, If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + yOffSet])) → zeroNL1
  27. Sequence((k, y(Master)), k, 0, NLlength, length / hashMinor) → hashMinorNL2
  28. Sequence((k, y(Master) - NLgap), k, 0, NLlength, length / hashMinor) → hashMinorNL3
  29. Text(0, Master + (-0.035, (-NLgap) - (1.7 * yOffSet))) → zeroNL3
  30. Circle(CircleModelCenter, circleModelRadius) → circleModelOutline
  31. Circle(CircleModelCenter, circleModelRadius) → circleModelWhiteBackground
  32. CircleSector(CircleModelCenter, CircleModelCenter + (0, circleModelRadius), Rotate[CircleModelCenter + (0, circleModelRadius), ((2 * π) * quantity1 / sumQuantity12), CircleModelCenter]) → circleModelSectorQ1
  33. Sequence(Segment[CircleModelCenter, Rotate[CircleModelCenter + (0, circleModelRadius), ((i * 2) * π / sumQuantity12), CircleModelCenter]], i, 0, sumQuantity12 - 1, 1) → circleModelDividers
  34. Sequence(Text[(p * quantity1), ((length * p) + xOffSet, y(Master) + If[visualTypeSelected ≟ 3, NLgap - (1.7 * yOffSet), NLgap + (1.1 * yOffSet)])], p, 2, 4) → hashMarkValuesTextNL1
  35. Sequence(((length * k), y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], 4) → hashMajorNL1
  36. Sequence((k, y(Master) + NLgap), k, If[visualTypeSelected ≟ 3, -1, 0], NLlength, length / hashMinor) → hashMinorNL1
  37. Segment(Master + (If[visualTypeSelected ≟ 3, -1.2, 0], NLgap), Master + (NLlength, NLgap)) → NL1segment
  38. Polygon(Master + (0, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagram2VerticalOffset), Master + (tapeDiagramModelsWidth, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Outline, tapeDiagram2OutlineSeg_1, tapeDiagram2OutlineSeg_2, tapeDiagram2OutlineSeg_3, tapeDiagram2OutlineSeg
  39. Polygon(Master + (0, tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagram2VerticalOffset), Master + ((quantity1 * unit), tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset), Master + (0, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)) → tapeDiagram2Quantity1Poly, g, h, i, j
  40. Sequence(Segment[Master + (i, tapeDiagram2VerticalOffset), Master + (i, tapeDiagramModelsHeight + tapeDiagram2HeightDiff + tapeDiagram2VerticalOffset)], i, 0, tapeDiagramModelsWidth, unit) → tapeDiagram2Quantity1Dividers
  41. Polygon(Master, Master + ((quantity2 * unit), 0), Master + ((quantity2 * unit), tapeDiagramModelsHeight), Master + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity2Poly, tapeDiagram1Quantity2PolySeg_1, tapeDiagram1Quantity2PolySeg_2, tapeDiagram1Quantity2PolySeg_3, tapeDiagram1Quantity2PolySeg
  42. Polygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1Poly, tapeDiagram1Quantity1PolySeg, tapeDiagram1Quantity1PolySeg_1, tapeDiagram1Quantity1PolySeg_2, tapeDiagram1Quantity1PolySeg_3
  43. Polygon(MasterTape2, MasterTape2 + ((quantity1 * unit), 0), MasterTape2 + ((quantity1 * unit), tapeDiagramModelsHeight), MasterTape2 + (0, tapeDiagramModelsHeight)) → tapeDiagram1Quantity1PolyWhite, v2, k, l, m
  44. Sequence(Segment[MasterTape2 + (i, 0), MasterTape2 + (i, tapeDiagramModelsHeight)], i, 0, (quantity1 * unit), unit) → tapeDiagram1Quantity1Dividers
  45. Sequence(Segment[Master + (0 + i, 0), Master + (0 + i, tapeDiagramModelsHeight)], i, 0, (quantity2 * unit), unit) → tapeDiagram1Quantity2Dividers
  46. Polygon(Master, Master + (tapeDiagramModelsWidth, 0), Master + (tapeDiagramModelsWidth, areaModelHeight), Master + (0, areaModelHeight)) → areaModelOutline, areaModelOutlineSeg_1, areaModelOutlineSeg_2, areaModelOutlineSeg_3, areaModelOutlineSeg
  47. Sequence(Segment[Master + (i, 0), Master + (i, areaModelHeight)], i, 0, tapeDiagramModelsWidth, tapeDiagramModelsWidth / areaModelColumns) → areaModelColumnDiv
  48. Sequence(Segment[Master + (0, i), Master + (tapeDiagramModelsWidth, i)], i, 0, areaModelHeight, areaModelHeight / areaModelRows) → areaModelRowDiv
  49. Polygon(Master, Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), 0), Master + ((floor(quantity1 / areaModelRows) * tapeDiagramModelsWidth / areaModelColumns), areaModelHeight), Master + (0, areaModelHeight)) → areaModelQ1FullColumns, master, f, n, p
  50. Polygon(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, t
  51. Sequence(2 + i, i, 0, areaModelRows - 1) → deleteListRows
  52. Flatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows]) → setChangeX
  53. Flatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, areaModelRows - 1]) → setChangeY
  54. Zip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeX), b, ((-setSpacingVert) * setChangeY)) → setModel1Outlines
  55. Zip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeX), b, ((-setSpacingVert) * setChangeY)) → setModel1FillWhite
  56. Flatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows - 1]) → setChangeXQ1Full
  57. Flatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, setFullRows - 1]) → setChangeYQ1Full
  58. Zip(Polygon[MS + (a, b), MS + (a + setPolyWidth, b), MS + (a + setPolyWidth, b - setPolyHeight), MS + (a, b - setPolyHeight)], a, (setSpacingHoriz * setChangeXQ1Full), b, ((-setSpacingVert) * setChangeYQ1Full)) → setModel1Q1FullRows
  59. Sequence(Polygon[MSPart + (i, 0), MSPart + (i + setPolyWidth, 0), MSPart + (i + setPolyWidth, setPolyHeight), MSPart + (i, setPolyHeight)], i, 0, (setSpacingHoriz * (quantity1 - (setFullRows * areaModelColumns) - 1)), setSpacingHoriz) → setModel1Q1PartialRow
  60. Circle((-0.7058662075654852, 1.0923793127338763), setModel2Radius) → setModel2CircleQ1_2
  61. Circle((-0.1321269059167945, 1.281524137453225), setModel2Radius) → setModel2CircleQ1_1
  62. Circle((0.0317986088399741, 0.6384317334074399), setModel2Radius) → setModel2CircleQ1_3
  63. Circle((0.4542220507131861, 1.098684140224521), setModel2Radius) → setModel2CircleQ1_4
  64. Circle((0.9649130774554273, 1.3382675848690295), setModel2Radius) → setModel2CircleQ1_5
  65. Circle((0.5866234280167298, 0.47450621865067083), setModel2Radius) → setModel2CircleQ1_6
  66. Circle((-0.5230262103367816, 0.5501641485384103), setModel2Radius) → setModel2CircleQ1_7
  67. Circle((1.0657903173057461, 0.7393089732577589), setModel2Radius) → setModel2CircleQ1_8
  68. Circle((1.5260427241228276, 1.1239034501871006), setModel2Radius) → setModel2CircleQ1_9
  69. Circle((0.17680964112480807, 0.12143587917455337), setModel2Radius) → setModel2CircleQ1_{10}
  70. Circle((0.8072923901893032, -0.036184808091570236), setModel2Radius) → setModel2CircleQ1_{11}
  71. Circle((1.3368978994034795, 0.2412276014968075), setModel2Radius) → setModel2CircleQ1_{12}
  72. Circle((1.7845406512392712, 0.5879931134822798), setModel2Radius) → setModel2CircleQ1_{13}
  73. Circle((2.1250013357340993, 1.0860744852432314), setModel2Radius) → setModel2CircleQ1_{14}
  74. Circle((2.358279952887962, 0.5501641485384104), setModel2Radius) → setModel2CircleQ1_{15}
  75. Circle((2.824837187195688, 1.0545503477900064), setModel2Radius) → setModel2CircleQ1_{16}
  76. Circle((3.4994537286946987, 1.0608551752806514), setModel2Radius) → setModel2CircleQ1_{17}
  77. Circle((2.995067529443102, 0.4682013911600258), setModel2Radius) → setModel2CircleQ1_{18}
  78. Circle((2.0241240958837796, 0.045777949286814126), setModel2Radius) → setModel2CircleQ1_{19}
  79. Circle((3.562502003601148, 0.4808110461413158), setModel2Radius) → setModel2CircleQ1_{20}
  80. Circle((4.003835832062515, 0.13404758486902935), setModel2Radius) → setModel2CircleQ2_1
  81. Circle((3.721217904946072, -0.34046068449482747), setModel2Radius) → setModel2CircleQ2_2
  82. Circle((4.395834446445083, -0.22697378966321807), setModel2Radius) → setModel2CircleQ2_3
  83. Circle((3.3618427379793094, -0.7376648164054594), setModel2Radius) → setModel2CircleQ2_4
  84. Circle((4.131031691837994, -0.6998358514615898), setModel2Radius) → setModel2CircleQ2_5
  85. Circle((3.26096549812899, -0.006304827490644951), setModel2Radius) → setModel2CircleQ2_6
  86. Circle((2.61156826659256, 0.01891448247193486), setModel2Radius) → setModel2CircleQ2_7
  87. Circle((4.3895296189544375, 0.554824819176756), setModel2Radius) → setModel2CircleQ2_8
  88. Circle((2.8133227462931987, -0.7187503339335245), setModel2Radius) → setModel2CircleQ2_9
  89. Circle((2.3152413745322478, -0.46655723430772644), setModel2Radius) → setModel2CircleQ2_{10}
  90. Circle((4.269737896632183, 1.1285641208254464), setModel2Radius) → setModel2CircleQ2_{11}
  91. Circle((1.5712717306361432, -0.2837172370790227), setModel2Radius) → setModel2CircleQ2_{12}
  92. Circle((1.8297696577525862, -0.7439696438961044), setModel2Radius) → setModel2CircleQ2_{13}
  93. Circle((1.085800013856482, -0.5043861992515962), setModel2Radius) → setModel2CircleQ2_{14}
  94. Circle((0.5688041596235955, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{15}
  95. Circle((-0.38952961895443716, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{16}
  96. Circle((0.10224692531586876, -0.4287282693638568), setModel2Radius) → setModel2CircleQ2_{17}
  97. Circle((-0.42105375640766207, -0.006304827490644885), setModel2Radius) → setModel2CircleQ2_{18}
  98. Circle((-0.9758785755844179, -0.7250551614241696), setModel2Radius) → setModel2CircleQ2_{19}
  99. 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.