Mixing Paint Ratio

Mixing Paint Ratio
Loading the math board and drawing, please wait…
2016-04-10 11:02
Mix cups of colored and white paint and see the ratio represented in tape diagrams or a circle diagram. This example involves the concept of fractions and uses GeoGebra commands such as Segment, Conic, Sequence, etc., for geometric construction. Suitable for high-grade elementary or junior high school students to learn about ratios and fractions.

GeoGebra Commands & Parameters

  1. Segment(Can1PtMaster, Can1PtTopL) → Can1segL
  2. Segment(Can1PtBottomR, Can1PtTopR) → Can1segR
  3. Conic(Midpoint[Can1PtTopL, Can1PtTopR] + (0, -0.5), Can1PtTopR + (-0.04, 0), Midpoint[Can1PtTopL, Can1PtTopR] + (canWidth / 3, 0.5), Midpoint[Can1PtTopL, Can1PtTopR] + (((-canWidth)) / 3, 0.5), Can1PtTopL + (0.04, 0)) → can1lidConic
  4. Sequence(i, i, 0, cupsMax) → mix1cupsWhite
  5. Sequence(i, i, 0, cupsMax) → mix1cupsColor
  6. Polygon(Can1PtMaster + (0, -0.006), Can1PtMaster + (canWidth, -0.006), Can1PtMaster + (canWidth, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.1), Can1PtMaster + (0, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.1)) → can1fillRectColor, g, a, b, c
  7. Polygon(Can1PtMaster + (0, -0.013), Can1PtMaster + (canWidth, -0.013), Can1PtMaster + (canWidth, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + (0, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillRectWhite, d, e, f, q
  8. Polygon((-10, -2.02734), (99.12, -2.02734), (19.12, 97.97266), (-10, 17.97266)) → BackgroundYellow, l, m, n, p
  9. Polygon(Can1PtMaster + (-0.1, 0.048), Can1PtBottomR + (0.1, 0.048), Can1PtTopR, Can1PtTopL) → can1fillRectYellowBack, h, i, j, k
  10. Conic(Midpoint[Can1PtMaster, Can1PtBottomR] + (0, -0.5), Can1PtBottomR, Midpoint[Can1PtMaster, Can1PtBottomR] + (canWidth / 3, 0.5), Midpoint[Can1PtMaster, Can1PtBottomR] + (((-canWidth)) / 3, 0.5), Can1PtMaster) → can1bottomConic
  11. Polygon(A, B, C, D, E, F, G) → can1brushColorColor, a_1, b_1, c_1, d_1, e_1, f_1, g_1
  12. Polygon(A, B, C, D, E, F, G) → can1brushColorWhite, a_2, b_2, c_2, d_2, e_2, f_2, g_2
  13. Conic(Midpoint[Can1PtMaster, Can1PtBottomR] + (0, -0.45), Can1PtBottomR + (0, 0.1), Midpoint[Can1PtMaster, Can1PtBottomR] + (canWidth / 3, 0.6), Midpoint[Can1PtMaster, Can1PtBottomR] + (((-canWidth)) / 3, 0.6), Can1PtMaster + (0, 0.1)) → can1bottomConicColor
  14. Conic(Midpoint[Can1PtMaster, Can1PtBottomR] + (0, -0.49), Can1PtBottomR + (0, 0.05), Midpoint[Can1PtMaster, Can1PtBottomR] + (canWidth / 3, 0.6), Midpoint[Can1PtMaster, Can1PtBottomR] + (((-canWidth)) / 3, 0.6), Can1PtMaster + (0, 0.05)) → can1bottomConicWhite
  15. Polygon(Mix1visualsMasterPt + (0, tapeDiagramHeight + 0.1), Mix1visualsMasterPt + (If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite])], tapeDiagramHeight + 0.1), Mix1visualsMasterPt + (If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite])], (2 * tapeDiagramHeight)), Mix1visualsMasterPt + (0, (2 * tapeDiagramHeight))) → mix1tapeDiagColorPoly, mix1tapeDiagGreenPolySeg_1, mix1tapeDiagGreenPolySeg_2, mix1tapeDiagGreenPolySeg_3, mix1tapeDiagGreenPolySeg
  16. Polygon(Mix1visualsMasterPt + (0, 0), Mix1visualsMasterPt + (If[SelectedElement[mix1cupsWhite] ≥ SelectedElement[mix1cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix1cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix1cupsColor])], 0), Mix1visualsMasterPt + (If[SelectedElement[mix1cupsWhite] ≥ SelectedElement[mix1cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix1cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix1cupsColor])], tapeDiagramHeight - 0.1), Mix1visualsMasterPt + (0, tapeDiagramHeight - 0.1)) → mix1tapeDiagWhitePoly, mix1tapeDiagWhitePolySeg_1, mix1tapeDiagWhitePolySeg_2, mix1tapeDiagWhitePolySeg_3, mix1tapeDiagWhitePolySeg
  17. Polygon(Mix1visualsMasterPt + (0, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, 3 + rectModelVerticalOffset), Mix1visualsMasterPt + (0, 3 + rectModelVerticalOffset)) → mix1rectAreaOutline, mix1rectAreaOutlineSeg_3, mix1rectAreaOutlineSeg, mix1rectAreaOutlineSeg_1, mix1rectAreaOutlineSeg_2
  18. SelectedIndex(mix1visualType) → mix1visualTypeSelected
  19. Polygon(Mix1visualsMasterPt + (0, rectModelVerticalOffset), Mix1visualsMasterPt + ((SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / mix1cupsTotal), rectModelVerticalOffset), Mix1visualsMasterPt + ((SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / mix1cupsTotal), 3 + rectModelVerticalOffset), Mix1visualsMasterPt + (0, 3 + rectModelVerticalOffset)) → mix1rectAreaColorPoly, r, s, t, h_1
  20. Midpoint(Mix1visualsMasterPt, Mix1visualsMasterPt + (tapeDiagRectModelWidth, 3.8)) → Mix1circleModelCenter
  21. Circle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelOutline
  22. Circle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelColorSector
  23. Sequence(Segment[Mix1circleModelCenter, Rotate[Mix1circleModelSectorRefPt, (i * (2 * π / mix1cupsTotal)), Mix1circleModelCenter]], i, 0, mix1cupsTotal - 1, 1) → mix1circleModelDividers
  24. CircleSector(Mix1circleModelCenter, Mix1circleModelSectorRefPt, Rotate[Mix1circleModelSectorRefPt, ((1.99999999999999 * π) * SelectedElement[mix1cupsWhite] / mix1cupsTotal), Mix1circleModelCenter]) → mix1circleModelWhiteSector
  25. Sequence(Segment[Mix1visualsMasterPt + (0 + i, 0), Mix1visualsMasterPt + (0 + i, tapeDiagramHeight - 0.1)], i, 0, If[SelectedElement[mix1cupsWhite] ≥ SelectedElement[mix1cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix1cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix1cupsColor])], If[SelectedElement[mix1cupsWhite] ≥ SelectedElement[mix1cupsColor], tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix1cupsColor]]) → mix1tapeDiagramWhiteDividers
  26. Sequence(Segment[Mix1visualsMasterPt + (0 + i, tapeDiagramHeight + 0.1), Mix1visualsMasterPt + (0 + i, (2 * tapeDiagramHeight))], i, 0, If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite])], If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix1cupsColor], tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite]]) → mix1tapeDiagramColorDividers
  27. Sequence(Polygon[Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i, i - cupsMax / 2]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.5, i - cupsMax / 2 + 0.5]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.59, i - cupsMax / 2 + 0.59]), If[i < cupsMax / 2, cupImagesHeight, -0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i - 0.09, i - cupsMax / 2 - 0.09]), If[i < cupsMax / 2, cupImagesHeight, -0.1])], i, 0, SelectedElement[mix1cupsColor] - 1, 1) → mix1cupImagesColor
  28. Sequence(Polygon[Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i, i - cupsMax / 2]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.5, i - cupsMax / 2 + 0.5]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.59, i - cupsMax / 2 + 0.59]), If[i < cupsMax / 2, cupImagesHeight, -0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i - 0.09, i - cupsMax / 2 - 0.09]), If[i < cupsMax / 2, cupImagesHeight, -0.1])], i, 0, SelectedElement[mix1cupsWhite] - 1, 1) → mix1cupImagesWhiteFill
  29. Sequence(Polygon[Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i, i - cupsMax / 2]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.5, i - cupsMax / 2 + 0.5]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.59, i - cupsMax / 2 + 0.59]), If[i < cupsMax / 2, cupImagesHeight, -0.1]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i - 0.09, i - cupsMax / 2 - 0.09]), If[i < cupsMax / 2, cupImagesHeight, -0.1])], i, 0, SelectedElement[mix1cupsWhite] - 1, 1) → mix1cupImagesWhiteOutline
  30. Sequence(Polygon[Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i, i - cupsMax / 2]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.5, i - cupsMax / 2 + 0.5]), If[i < cupsMax / 2, 0, (-cupImagesHeight) - 0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i + 0.59, i - cupsMax / 2 + 0.59]), If[i < cupsMax / 2, cupImagesHeight, -0.1]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 2, i - 0.09, i - cupsMax / 2 - 0.09]), If[i < cupsMax / 2, cupImagesHeight, -0.1])], i, 0, SelectedElement[mix1cupsColor] - 1, 1) → mix1cupImagesColorOutline
  31. Sequence(Segment[Mix1visualsMasterPt + (i, rectModelVerticalOffset), Mix1visualsMasterPt + (i, 3 + rectModelVerticalOffset)], i, 0, tapeDiagRectModelWidth, tapeDiagRectModelWidth / mix1cupsTotal) → mix1rectAreaDividers
  32. Conic(Can1PtMaster + (0, -0.1) + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (0, -0.1) + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + (0, -0.1) + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicColor
  33. Conic(Can1PtMaster + (0, -0.1) + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (0, -0.1) + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + (0, -0.1) + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicWhite
  34. Conic(Can1PtMaster + (0, -0.1) + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (0, -0.1) + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + (0, -0.1) + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0, -0.1) + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicWhiteOutline
  35. SelectedIndex(color) → colorSelected
  36. Element({0, 1, 0.6, 1, 0, 0.6}, colorSelected) → red
  37. Element({0.6, 0.2, 0.4, 0.6, 0.6, 0.4}, colorSelected) → green
  38. Element({0, 0.4, 0, 0, 1, 1}, colorSelected) → blue
  39. Polygon(CupButtonPt, CupButtonPt + (0.2, 0), CupButtonPt + (0.3, 0.4), CupButtonPt + (-0.1, 0.4)) → cupButtonOutline, cupButtonOutlineSeg, cupButtonOutlineSeg_1, cupButtonOutlineSeg_2, cupButtonOutlineSeg_3

AI Drawing Prompt Reference

Draw a mixing paint ratio diagram with a large cylindrical container containing different colored and white paints. The container has differently colored sectors at the bottom and top representing different paint ratios. There are bar charts on the side showing the number of cups of different colors and white paint. Below the bar charts, there is a pie chart showing the ratio of colors and white paint.
The prompt above was compiled from the original drawing commands and is for reference only.