Diagram Templates for Ratios (White Background)

Diagram Templates for Ratios (White Background)
Loading the math board and drawing, please wait…
2018-02-01 06:16
① This interactive template demonstrates ratio relationships through multiple visual representations, including area models and bar charts. ② Core mathematical concepts include ratios, proportional reasoning, and part-whole relationships, with two quantities (quantity1 and quantity2) and their sum. ③ Construction uses GeoGebra commands such as Element, If, SelectedIndex, Point, Textfield, Segment, Sequence, Vector, Mirror, Midpoint, Text, Circle, CircleSector, Polygon, Flatten, and Zip; objects include input fields for quantities, sliders (slidePt), visual type selector (visualType), and help buttons, allowing dynamic updates. ④ Suitable for middle school mathematics instruction, this template aids in visualizing ratio concepts and supports student exploration of proportional relationships, enhancing mathematical understanding through interactive diagrams.

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. Flatten(Sequence[(k / k * Sequence[i, i, 0, areaModelColumns - 1, 1]), k, 1, areaModelRows - 1]) → setChangeXQ1Full
  56. Flatten(Sequence[(k * Sequence[i / i, i, 1, areaModelColumns, 1]), k, 0, setFullRows - 1]) → setChangeYQ1Full
  57. 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
  58. 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
  59. Circle((-0.7058662075654852, 1.0923793127338763), setModel2Radius) → setModel2CircleQ1_2
  60. Circle((-0.09429794097292479, 1.2626096549812897), setModel2Radius) → setModel2CircleQ1_1
  61. Circle((0.0317986088399741, 0.6384317334074399), setModel2Radius) → setModel2CircleQ1_3
  62. Circle((0.4542220507131861, 1.098684140224521), setModel2Radius) → setModel2CircleQ1_4
  63. Circle((0.9649130774554273, 1.3382675848690295), setModel2Radius) → setModel2CircleQ1_5
  64. Circle((0.5866234280167298, 0.47450621865067083), setModel2Radius) → setModel2CircleQ1_6
  65. Circle((-0.5230262103367816, 0.5501641485384103), setModel2Radius) → setModel2CircleQ1_7
  66. Circle((1.0657903173057461, 0.7393089732577589), setModel2Radius) → setModel2CircleQ1_8
  67. Circle((1.5260427241228276, 1.1239034501871006), setModel2Radius) → setModel2CircleQ1_9
  68. Circle((0.17680964112480807, 0.12143587917455337), setModel2Radius) → setModel2CircleQ1_{10}
  69. Circle((0.8072923901893032, -0.036184808091570236), setModel2Radius) → setModel2CircleQ1_{11}
  70. Circle((1.3368978994034795, 0.2412276014968075), setModel2Radius) → setModel2CircleQ1_{12}
  71. Circle((1.7845406512392712, 0.5879931134822798), setModel2Radius) → setModel2CircleQ1_{13}
  72. Circle((2.1250013357340993, 1.0860744852432314), setModel2Radius) → setModel2CircleQ1_{14}
  73. Circle((2.358279952887962, 0.5501641485384104), setModel2Radius) → setModel2CircleQ1_{15}
  74. Circle((2.824837187195688, 1.0545503477900064), setModel2Radius) → setModel2CircleQ1_{16}
  75. Circle((3.4994537286946987, 1.0608551752806514), setModel2Radius) → setModel2CircleQ1_{17}
  76. Circle((2.9824578744618124, 0.4618965636693809), setModel2Radius) → setModel2CircleQ1_{18}
  77. Circle((2.0241240958837796, 0.045777949286814126), setModel2Radius) → setModel2CircleQ1_{19}
  78. Circle((3.562502003601148, 0.4808110461413158), setModel2Radius) → setModel2CircleQ1_{20}
  79. Circle((4.003835832062515, 0.13404758486902935), setModel2Radius) → setModel2CircleQ2_1
  80. Circle((3.7275227324367166, -0.3656799944574073), setModel2Radius) → setModel2CircleQ2_2
  81. Circle((4.395834446445083, -0.22697378966321807), setModel2Radius) → setModel2CircleQ2_3
  82. Circle((3.3618427379793094, -0.7376648164054594), setModel2Radius) → setModel2CircleQ2_4
  83. Circle((4.131031691837994, -0.6998358514615898), setModel2Radius) → setModel2CircleQ2_5
  84. Circle((3.26096549812899, -0.006304827490644951), setModel2Radius) → setModel2CircleQ2_6
  85. Circle((2.61156826659256, 0.01891448247193486), setModel2Radius) → setModel2CircleQ2_7
  86. Circle((4.3895296189544375, 0.554824819176756), setModel2Radius) → setModel2CircleQ2_8
  87. Circle((2.8133227462931987, -0.7187503339335245), setModel2Radius) → setModel2CircleQ2_9
  88. Circle((2.3152413745322478, -0.46655723430772644), setModel2Radius) → setModel2CircleQ2_{10}
  89. Circle((4.269737896632183, 1.1285641208254464), setModel2Radius) → setModel2CircleQ2_{11}
  90. Circle((1.5712717306361432, -0.2837172370790227), setModel2Radius) → setModel2CircleQ2_{12}
  91. Circle((1.8297696577525862, -0.7439696438961044), setModel2Radius) → setModel2CircleQ2_{13}
  92. Circle((1.085800013856482, -0.5043861992515962), setModel2Radius) → setModel2CircleQ2_{14}
  93. Circle((0.5688041596235955, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{15}
  94. Circle((-0.38952961895443716, -0.7124455064428795), setModel2Radius) → setModel2CircleQ2_{16}
  95. Circle((0.10224692531586876, -0.4287282693638568), setModel2Radius) → setModel2CircleQ2_{17}
  96. Circle((-0.42105375640766207, -0.006304827490644885), setModel2Radius) → setModel2CircleQ2_{18}
  97. Circle((-0.9758785755844179, -0.7250551614241696), setModel2Radius) → setModel2CircleQ2_{19}
  98. Circle((-0.9317447831499027, -0.13870620479418896), setModel2Radius) → setModel2CircleQ2_{20}

AI Drawing Prompt Reference

Create an interactive diagram template for teaching ratios, featuring two quantity input fields and a slider. The graphic includes three main representations: a top bar chart showing the proportional segments of two quantities with tick marks, a middle area model divided into a grid to illustrate part-whole relationships, and a bottom circle model with a sector representing the first quantity's share of the total. All models update dynamically based on the entered quantities, with labels and value annotations. The background is white, and the layout is clean for classroom use.
The prompt above was compiled from the original drawing commands and is for reference only.