Mixing Paint Ratio
Loading the math board and drawing, please wait…
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
Segment(Can1PtMaster, Can1PtTopL) → Can1segLSegment(Can1PtBottomR, Can1PtTopR) → Can1segRConic(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)) → can1lidConicSequence(i, i, 0, cupsMax) → mix1cupsWhiteSequence(i, i, 0, cupsMax) → mix1cupsColorPolygon(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, cPolygon(Can1PtMaster + (0, -0.013), Can1PtMaster + (canWidth, -0.013), Can1PtMaster + (canWidth, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + (0, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillRectWhite, d, e, f, qPolygon((-10, -2.02734), (99.12, -2.02734), (19.12, 97.97266), (-10, 17.97266)) → BackgroundYellow, l, m, n, pPolygon(Can1PtMaster + (-0.1, 0.048), Can1PtBottomR + (0.1, 0.048), Can1PtTopR, Can1PtTopL) → can1fillRectYellowBack, h, i, j, kConic(Midpoint[Can1PtMaster, Can1PtBottomR] + (0, -0.5), Can1PtBottomR, Midpoint[Can1PtMaster, Can1PtBottomR] + (canWidth / 3, 0.5), Midpoint[Can1PtMaster, Can1PtBottomR] + (((-canWidth)) / 3, 0.5), Can1PtMaster) → can1bottomConicPolygon(A, B, C, D, E, F, G) → can1brushColorColor, a_1, b_1, c_1, d_1, e_1, f_1, g_1Polygon(A, B, C, D, E, F, G) → can1brushColorWhite, a_2, b_2, c_2, d_2, e_2, f_2, g_2Conic(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)) → can1bottomConicColorConic(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)) → can1bottomConicWhitePolygon(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, mix1tapeDiagGreenPolySegPolygon(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, mix1tapeDiagWhitePolySegPolygon(Mix1visualsMasterPt + (0, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, 3 + rectModelVerticalOffset), Mix1visualsMasterPt + (0, 3 + rectModelVerticalOffset)) → mix1rectAreaOutline, mix1rectAreaOutlineSeg_3, mix1rectAreaOutlineSeg, mix1rectAreaOutlineSeg_1, mix1rectAreaOutlineSeg_2SelectedIndex(mix1visualType) → mix1visualTypeSelectedPolygon(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_1Midpoint(Mix1visualsMasterPt, Mix1visualsMasterPt + (tapeDiagRectModelWidth, 3.8)) → Mix1circleModelCenterCircle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelOutlineCircle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelColorSectorSequence(Segment[Mix1circleModelCenter, Rotate[Mix1circleModelSectorRefPt, (i * (2 * π / mix1cupsTotal)), Mix1circleModelCenter]], i, 0, mix1cupsTotal - 1, 1) → mix1circleModelDividersCircleSector(Mix1circleModelCenter, Mix1circleModelSectorRefPt, Rotate[Mix1circleModelSectorRefPt, ((1.99999999999999 * π) * SelectedElement[mix1cupsWhite] / mix1cupsTotal), Mix1circleModelCenter]) → mix1circleModelWhiteSectorSequence(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]]) → mix1tapeDiagramWhiteDividersSequence(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]]) → mix1tapeDiagramColorDividersSequence(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) → mix1cupImagesColorSequence(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) → mix1cupImagesWhiteFillSequence(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) → mix1cupImagesWhiteOutlineSequence(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) → mix1cupImagesColorOutlineSequence(Segment[Mix1visualsMasterPt + (i, rectModelVerticalOffset), Mix1visualsMasterPt + (i, 3 + rectModelVerticalOffset)], i, 0, tapeDiagRectModelWidth, tapeDiagRectModelWidth / mix1cupsTotal) → mix1rectAreaDividersConic(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))))) → can1fillTopConicColorConic(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))))) → can1fillTopConicWhiteConic(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))))) → can1fillTopConicWhiteOutlineSelectedIndex(color) → colorSelectedElement({0, 1, 0.6, 1, 0, 0.6}, colorSelected) → redElement({0.6, 0.2, 0.4, 0.6, 0.6, 0.4}, colorSelected) → greenElement({0, 0.4, 0, 0, 1, 1}, colorSelected) → bluePolygon(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.