Comparing Paint Mixtures

Comparing Paint Mixtures
Loading the math board and drawing, please wait…
2018-06-26 13:26
In collections Mixing Paint Collection
This example demonstrates how to compare two mixtures of paint. Users can choose a color and then select up to 24 cups of that color and up to 24 cups of white paint for each mixture. The example visually shows the process and results of mixing paint. Key math concepts include ratios, mixing, and optimization problems. It uses GeoGebra commands and objects like Sequence, Segment, Conic, Polygon, SelectedIndex, Midpoint, Circle, Point, CircleSector, Element. Suitable for high school students learning about ratios, mixing, and optimization problems.

GeoGebra Commands & Parameters

  1. Sequence(i, i, 0, cupsMax) → mix1cupsColor
  2. Sequence(i, i, 0, cupsMax) → mix1cupsWhite
  3. Segment(Can1PtMaster, Can1PtTopL) → can1segL
  4. Segment(Can1PtBottomR, Can1PtTopR) → can1segR
  5. 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
  6. Polygon(Can1PtMaster + (0, -0.006), Can1PtMaster + (canWidth, -0.006), Can1PtMaster + (canWidth, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.01), Can1PtMaster + (0, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.01)) → can1fillRectColor, a, b, c, g
  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. Conic(Can1PtMaster + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicColor
  9. Conic(Can1PtMaster + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicWhite
  10. Polygon((-10, -2.02734), (99.12, -2.02734), (19.12, 97.97266), (-10, 17.97266)) → BackgroundYellow, l, m, n, p
  11. Polygon(Can1PtMaster + (-0.1, 0.048), Can1PtBottomR + (0.1, 0.048), Can1PtTopR, Can1PtTopL) → can1fillRectYellowBack, h, i, j, k
  12. Conic(Midpoint[Can1PtMaster, Can1PtBottomR] + (0, -0.5), Can1PtBottomR, Midpoint[Can1PtMaster, Can1PtBottomR] + (canWidth / 3, 0.5), Midpoint[Can1PtMaster, Can1PtBottomR] + (((-canWidth)) / 3, 0.5), Can1PtMaster) → can1bottomConic
  13. Polygon(Can1BrushPt_1, Can1BrushPt_2, Can1BrushPt_3, Can1BrushPt_4, Can1BrushPt_5, Can1BrushPt_6, Can1BrushPt) → can1brushColor, a_1, b_1, c_1, d_1, e_1, f_1, g_1
  14. Polygon(Can1BrushPt_1, Can1BrushPt_2, Can1BrushPt_3, Can1BrushPt_4, Can1BrushPt_5, Can1BrushPt_6, Can1BrushPt) → can1brushColorWhite, a_2, b_2, c_2, d_2, e_2, f_2, g_2
  15. 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
  16. 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
  17. 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
  18. 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
  19. Polygon(Mix1visualsMasterPt + (0, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, rectModelVerticalOffset), Mix1visualsMasterPt + (tapeDiagRectModelWidth, rectModelHeight + rectModelVerticalOffset), Mix1visualsMasterPt + (0, rectModelHeight + rectModelVerticalOffset)) → mix1rectAreaOutline, mix1rectAreaOutlineSeg_1, mix1rectAreaOutlineSeg_2, mix1rectAreaOutlineSeg_3, mix1rectAreaOutlineSeg
  20. Polygon(Mix1visualsMasterPt + (0, rectModelVerticalOffset), Mix1visualsMasterPt + ((SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / mix1cupsTotal), rectModelVerticalOffset), Mix1visualsMasterPt + ((SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / mix1cupsTotal), rectModelHeight + rectModelVerticalOffset), Mix1visualsMasterPt + (0, rectModelHeight + rectModelVerticalOffset)) → mix1rectAreaColorPoly, r, s, t, h_1
  21. SelectedIndex(mix1visualType) → mix1visualTypeSelected
  22. Midpoint(Mix1visualsMasterPt, Mix1visualsMasterPt + (tapeDiagRectModelWidth, rectModelHeight + rectModelVerticalOffset)) → Mix1circleModelCenter
  23. Circle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelOutline
  24. Circle(Mix1circleModelCenter, circleModelRadius) → mix1circleModelColorSector
  25. Sequence(Segment[Mix1circleModelCenter, Rotate[Mix1circleModelSectorRefPt, (i * (2 * pi / mix1cupsTotal)), Mix1circleModelCenter]], i, 0, mix1cupsTotal - 1, 1) → mix1circleModelDividers
  26. Conic(Can1PtMaster + (canWidth / 2, (canHeight * mix1cupsTotal / ((2 * cupsMax))) - 0.5), Can1PtMaster + (canWidth - 0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax)))), Can1PtMaster + ((5 / 6 * canWidth), (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (canWidth / 6, (canHeight * mix1cupsTotal / ((2 * cupsMax))) + 0.5), Can1PtMaster + (0.02, (canHeight * mix1cupsTotal / ((2 * cupsMax))))) → can1fillTopConicWhiteOutline
  27. 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
  28. 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
  29. Point(Segment[(-0.86, 5.5), (22.15, 5.5)]) → CenterDividerHandle
  30. Polygon((10.7, -10), (10.7, 10.3), (x(CenterDividerHandle), 10.3), (x(CenterDividerHandle), -10)) → centerDivderYellowShade, centerDivderYellowShadeSegCenter, centerDivderYellowShadeSeg_2, centerDivderYellowShadeSeg_3, centerDivderYellowShadeSeg
  31. Sequence(i, i, 0, cupsMax) → mix2cupsColor
  32. Sequence(i, i, 0, cupsMax) → mix2cupsWhite
  33. Polygon(Can2PtMaster + (0, -0.006), Can2PtMaster + (canWidth, -0.006), Can2PtMaster + (canWidth, (canHeight * mix2cupsTotal / ((2 * cupsMax))) - 0.01), Can2PtMaster + (0, (canHeight * mix2cupsTotal / ((2 * cupsMax))) - 0.01)) → can2fillRectColor, n_1, p_1, q_1, r_1
  34. Polygon(Can2PtMaster + (0, -0.013), Can2PtMaster + (canWidth, -0.013), Can2PtMaster + (canWidth, (canHeight * mix2cupsTotal / ((2 * cupsMax)))), Can2PtMaster + (0, (canHeight * mix2cupsTotal / ((2 * cupsMax))))) → can2fillRectWhite, s_1, t_1, h_2, i_2
  35. Polygon(Can2PtMaster + (-0.1, 0.048), Can2PtBottomR + (0.1, 0.048), Can2PtTopR, Can2PtTopL) → can2fillRectYellowBack, j_2, k_2, can2pttopr, can2pttopl
  36. Segment(Can2PtMaster, Can2PtTopL) → can2SegL
  37. Segment(Can2PtBottomR, Can2PtTopR) → can2segR
  38. Conic(Midpoint[Can2PtMaster, Can2PtBottomR] + (0, -0.5), Can2PtBottomR, Midpoint[Can2PtMaster, Can2PtBottomR] + (canWidth / 3, 0.5), Midpoint[Can2PtMaster, Can2PtBottomR] + (((-canWidth)) / 3, 0.5), Can2PtMaster) → can2bottomConic
  39. Conic(Midpoint[Can2PtMaster, Can2PtBottomR] + (0, -0.45), Can2PtBottomR + (0, 0.1), Midpoint[Can2PtMaster, Can2PtBottomR] + (canWidth / 3, 0.6), Midpoint[Can2PtMaster, Can2PtBottomR] + (((-canWidth)) / 3, 0.6), Can2PtMaster + (0, 0.1)) → can2bottomConicColor
  40. Conic(Midpoint[Can2PtMaster, Can2PtBottomR] + (0, -0.49), Can2PtBottomR + (0, 0.05), Midpoint[Can2PtMaster, Can2PtBottomR] + (canWidth / 3, 0.6), Midpoint[Can2PtMaster, Can2PtBottomR] + (((-canWidth)) / 3, 0.6), Can2PtMaster + (0, 0.05)) → can2bottomConicWhite
  41. Conic(Can2PtMaster + (canWidth / 2, (canHeight * mix2cupsTotal / ((2 * cupsMax))) - 0.5), Can2PtMaster + (canWidth - 0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax)))), Can2PtMaster + ((5 / 6 * canWidth), (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (canWidth / 6, (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax))))) → can2fillTopConicColor
  42. Conic(Can2PtMaster + (canWidth / 2, (canHeight * mix2cupsTotal / ((2 * cupsMax))) - 0.5), Can2PtMaster + (canWidth - 0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax)))), Can2PtMaster + ((5 / 6 * canWidth), (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (canWidth / 6, (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax))))) → can2fillTopConicWhite
  43. Conic(Can2PtMaster + (canWidth / 2, (canHeight * mix2cupsTotal / ((2 * cupsMax))) - 0.5), Can2PtMaster + (canWidth - 0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax)))), Can2PtMaster + ((5 / 6 * canWidth), (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (canWidth / 6, (canHeight * mix2cupsTotal / ((2 * cupsMax))) + 0.5), Can2PtMaster + (0.02, (canHeight * mix2cupsTotal / ((2 * cupsMax))))) → can2fillTopConicWhiteOutline
  44. Conic(Midpoint[Can2PtTopL, Can2PtTopR] + (0, -0.5), Can2PtTopR + (-0.04, 0), Midpoint[Can2PtTopL, Can2PtTopR] + (canWidth / 3, 0.5), Midpoint[Can2PtTopL, Can2PtTopR] + (((-canWidth)) / 3, 0.5), Can2PtTopL + (0.04, 0)) → can2lidConic
  45. Polygon(Can2BrushPt_1, Can2BrushPt_2, Can2BrushPt_3, Can2BrushPt_4, Can2BrushPt_5, Can2BrushPt_6, Can2BrushPt_7, Can2BrushPt) → can2brushColor, a_3, b_3, c_3, d_3, e_3, f_3, g_3, h_3
  46. Polygon(Can2BrushPt_1, Can2BrushPt_2, Can2BrushPt_3, Can2BrushPt_4, Can2BrushPt_5, Can2BrushPt_6, Can2BrushPt_7, Can2BrushPt) → can2brushColorWhite, can2brushpt_1, can2brushpt_2, can2brushpt_3, can2brushpt_4, can2brushpt_5, can2brushpt_6, can2brushpt_7, can2brushpt
  47. SelectedIndex(mix2visualType) → mix2visualTypeSelected
  48. Midpoint(Mix2visualsMasterPt, Mix2visualsMasterPt + (tapeDiagRectModelWidth, rectModelHeight + rectModelVerticalOffset)) → Mix2circleModelCenter
  49. Polygon(Mix2visualsMasterPt + (0, rectModelVerticalOffset), Mix2visualsMasterPt + ((SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / mix2cupsTotal), rectModelVerticalOffset), Mix2visualsMasterPt + ((SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / mix2cupsTotal), rectModelHeight + rectModelVerticalOffset), Mix2visualsMasterPt + (0, rectModelHeight + rectModelVerticalOffset)) → mix2rectAreaColorPoly, m_1, l_2, m_2, n_2
  50. Polygon(Mix2visualsMasterPt + (0, rectModelVerticalOffset), Mix2visualsMasterPt + (tapeDiagRectModelWidth, rectModelVerticalOffset), Mix2visualsMasterPt + (tapeDiagRectModelWidth, rectModelHeight + rectModelVerticalOffset), Mix2visualsMasterPt + (0, rectModelHeight + rectModelVerticalOffset)) → mix2rectAreaOutline, mix2rectAreaOutlineSeg_1, mix2rectAreaOutlineSeg_2, mix2rectAreaOutlineSeg_3, mix2rectAreaOutlineSeg
  51. Sequence(Segment[Mix2visualsMasterPt + (0 + i, tapeDiagramHeight + 0.1), Mix2visualsMasterPt + (0 + i, (2 * tapeDiagramHeight))], i, 0, If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite])], If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix2cupsColor], tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite]]) → mix2tapeDiagramColorDividers
  52. Sequence(Segment[Mix2visualsMasterPt + (0 + i, 0), Mix2visualsMasterPt + (0 + i, tapeDiagramHeight - 0.1)], i, 0, If[SelectedElement[mix2cupsWhite] ≥ SelectedElement[mix2cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix2cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix2cupsColor])], If[SelectedElement[mix2cupsWhite] ≥ SelectedElement[mix2cupsColor], tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix2cupsColor]]) → mix2tapeDiagramWhiteDividers
  53. Sequence(Segment[Mix2circleModelCenter, Rotate[Mix2circleModelSectorRefPt, ((i * 2) * pi / mix2cupsTotal), Mix2circleModelCenter]], i, 0, mix2cupsTotal - 1, 1) → mix2circleModelDividers
  54. Circle(Mix2circleModelCenter, circleModelRadius) → mix2circleModelColorSector
  55. Circle(Mix2circleModelCenter, circleModelRadius) → mix2circleModelOutline
  56. Polygon(Mix2visualsMasterPt + (0, tapeDiagramHeight + 0.1), Mix2visualsMasterPt + (If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite])], tapeDiagramHeight + 0.1), Mix2visualsMasterPt + (If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth, (SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite])], (2 * tapeDiagramHeight)), Mix2visualsMasterPt + (0, (2 * tapeDiagramHeight))) → mix2tapeDiagColorPoly, mix2tapeDiagGreenPolySeg_1, mix2tapeDiagGreenPolySeg_2, mix2tapeDiagGreenPolySeg_3, mix2tapeDiagGreenPolySeg
  57. Polygon(Mix2visualsMasterPt + (0, 0), Mix2visualsMasterPt + (If[SelectedElement[mix2cupsWhite] ≥ SelectedElement[mix2cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix2cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix2cupsColor])], 0), Mix2visualsMasterPt + (If[SelectedElement[mix2cupsWhite] ≥ SelectedElement[mix2cupsColor], tapeDiagRectModelWidth, (SelectedElement[mix2cupsWhite] * tapeDiagRectModelWidth / SelectedElement[mix2cupsColor])], tapeDiagramHeight - 0.1), Mix2visualsMasterPt + (0, tapeDiagramHeight - 0.1)) → mix2tapeDiagWhitePoly, mix2tapeDiagWhitePolySeg_1, mix2tapeDiagWhitePolySeg_2, mix2tapeDiagWhitePolySeg_3, mix2tapeDiagWhitePolySeg
  58. CircleSector(Mix2circleModelCenter, Mix2circleModelSectorRefPt, Rotate[Mix2circleModelSectorRefPt, ((1.9999999 * pi) * SelectedElement[mix2cupsWhite] / mix2cupsTotal), Mix2circleModelCenter]) → mix2circleModelWhiteSector
  59. Segment(CenterDividerHandle + (0, 0.25), (x(CenterDividerHandle), 9.3)) → centerDividerSegmentTop
  60. Segment((10.7, If[x(CenterDividerHandle) ≟ 10.7, y(CenterDividerHandle) + 0.3, -3]), (10.7, 10)) → centerDividerFixedSeg
  61. Segment((10.7, -2.6), (10.7, 10.2)) → centerDividerSeg
  62. Sequence(Segment[Mix1visualsMasterPt + (i, rectModelVerticalOffset), Mix1visualsMasterPt + (i, rectModelHeight + rectModelVerticalOffset)], i, 0, tapeDiagRectModelWidth, tapeDiagRectModelWidth / mix1cupsTotal) → mix1rectAreaDividers
  63. Sequence(Segment[Mix2visualsMasterPt + (i, rectModelVerticalOffset), Mix2visualsMasterPt + (i, rectModelHeight + rectModelVerticalOffset)], i, 0, tapeDiagRectModelWidth, tapeDiagRectModelWidth / mix2cupsTotal) → mix2rectAreaDividers
  64. SelectedIndex(color) → colorSelected
  65. Element({0, 1, 0.6, 1, 0, 0.6}, colorSelected) → red
  66. Element({0.6, 0.2, 0.4, 0.6, 0.6, 0.4}, colorSelected) → green
  67. Element({0, 0.4, 0, 0, 1, 1}, colorSelected) → blue
  68. Sequence(Segment[Mix1visualsMasterPt + (0.05, 0) + (i, rectModelVerticalOffset), Mix1visualsMasterPt + (0.05, 0) + (i, rectModelHeight + rectModelVerticalOffset)], i, tapeDiagRectModelWidth / mix1cupsTotal, tapeDiagRectModelWidth - tapeDiagRectModelWidth / mix1cupsTotal, tapeDiagRectModelWidth / mix1cupsTotal) → mix1rectAreaDividersWhite
  69. Sequence(Segment[Mix1visualsMasterPt + (0.05 + i, tapeDiagramHeight + 0.1), Mix1visualsMasterPt + (0.05 + i, (2 * tapeDiagramHeight))], i, tapeDiagRectModelWidth / If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], SelectedElement[mix1cupsColor], SelectedElement[mix1cupsWhite]], If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth - tapeDiagRectModelWidth / SelectedElement[mix1cupsColor], (SelectedElement[mix1cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite]) - tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite]], If[SelectedElement[mix1cupsColor] ≥ SelectedElement[mix1cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix1cupsColor], tapeDiagRectModelWidth / SelectedElement[mix1cupsWhite]]) → mix1tapeDiagramColorDividersWhite
  70. Segment((x(CenterDividerHandle), 0), CenterDividerHandle + (0, -0.28)) → centerDividerSegmentBottom
  71. Polygon(CupButtonPt, CupButtonPt + (0.2, 0), CupButtonPt + (0.3, 0.4), CupButtonPt + (-0.1, 0.4)) → cupButtonOutline, cupButtonOutlineSeg, cupButtonOutlineSeg_1, cupButtonOutlineSeg_2, cupButtonOutlineSeg_3
  72. Sequence(Segment[Mix2visualsMasterPt + (0.05, 0) + (i, rectModelVerticalOffset), Mix2visualsMasterPt + (0.05, 0) + (i, rectModelHeight + rectModelVerticalOffset)], i, tapeDiagRectModelWidth / mix2cupsTotal, tapeDiagRectModelWidth - tapeDiagRectModelWidth / mix2cupsTotal, tapeDiagRectModelWidth / mix2cupsTotal) → mix2rectAreaDividersWhite
  73. Sequence(Segment[Mix2visualsMasterPt + (0.05 + i, tapeDiagramHeight + 0.1), Mix2visualsMasterPt + (0.05 + i, (2 * tapeDiagramHeight))], i, tapeDiagRectModelWidth / If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], SelectedElement[mix2cupsColor], SelectedElement[mix2cupsWhite]], If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth - tapeDiagRectModelWidth / SelectedElement[mix2cupsColor], (SelectedElement[mix2cupsColor] * tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite]) - tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite]], If[SelectedElement[mix2cupsColor] ≥ SelectedElement[mix2cupsWhite], tapeDiagRectModelWidth / SelectedElement[mix2cupsColor], tapeDiagRectModelWidth / SelectedElement[mix2cupsWhite]]) → mix2tapeDiagramColorDividersWhite
  74. Sequence(Polygon[Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i, i < (2 / 3 * cupsMax), i - cupsMax / 3, i - (2 / 3 * cupsMax)]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.5, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.5, i - (2 / 3 * cupsMax) + 0.5]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.59, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.59, i - (2 / 3 * cupsMax) + 0.59]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2]), Mix1cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i - 0.09, i < (2 / 3 * cupsMax), i - cupsMax / 3 - 0.09, i - (2 / 3 * cupsMax) - 0.09]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2])], i, 0, SelectedElement[mix1cupsColor] - 1, 1) → mix1cupImagesColorFill
  75. Sequence(Polygon[Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i, i < (2 / 3 * cupsMax), i - cupsMax / 3, i - (2 / 3 * cupsMax)]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.5, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.5, i - (2 / 3 * cupsMax) + 0.5]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.59, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.59, i - (2 / 3 * cupsMax) + 0.59]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2]), Mix1cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i - 0.09, i < (2 / 3 * cupsMax), i - cupsMax / 3 - 0.09, i - (2 / 3 * cupsMax) - 0.09]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2])], i, 0, SelectedElement[mix1cupsWhite] - 1, 1) → mix1cupImagesWhiteFill
  76. Sequence(Polygon[Mix2cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i, i < (2 / 3 * cupsMax), i - cupsMax / 3, i - (2 / 3 * cupsMax)]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix2cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.5, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.5, i - (2 / 3 * cupsMax) + 0.5]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix2cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.59, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.59, i - (2 / 3 * cupsMax) + 0.59]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2]), Mix2cupsWhiteImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i - 0.09, i < (2 / 3 * cupsMax), i - cupsMax / 3 - 0.09, i - (2 / 3 * cupsMax) - 0.09]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2])], i, 0, SelectedElement[mix2cupsWhite] - 1, 1) → mix2cupImagesWhiteFill
  77. Sequence(Polygon[Mix2cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i, i < (2 / 3 * cupsMax), i - cupsMax / 3, i - (2 / 3 * cupsMax)]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix2cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.5, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.5, i - (2 / 3 * cupsMax) + 0.5]), If[i < cupsMax / 3, 0, i < (2 / 3 * cupsMax), (-cupImagesHeight) - 0.1, (-2 * cupImagesHeight) - 0.2]), Mix2cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i + 0.59, i < (2 / 3 * cupsMax), i - cupsMax / 3 + 0.59, i - (2 / 3 * cupsMax) + 0.59]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2]), Mix2cupsColorImagesMasterPt + ((cupImagesSpacing * If[i < cupsMax / 3, i - 0.09, i < (2 / 3 * cupsMax), i - cupsMax / 3 - 0.09, i - (2 / 3 * cupsMax) - 0.09]), If[i < cupsMax / 3, cupImagesHeight, i < (2 / 3 * cupsMax), -0.1, (-cupImagesHeight) - 0.2])], i, 0, SelectedElement[mix2cupsColor] - 1, 1) → mix2cupImagesColorFill
  78. CircleSector(Mix1circleModelCenter, Mix1circleModelSectorRefPt, Rotate[Mix1circleModelSectorRefPt, ((2 * pi) * SelectedElement[mix1cupsWhite] / mix1cupsTotal), Mix1circleModelCenter]) → mix1circleModelWhiteSector
  79. Sequence(Segment[Mix1circleModelCenter, Rotate[Mix1circleModelSectorRefPt, ((i * 2) * pi / mix1cupsTotal) + 0.01, Mix1circleModelCenter]], i, 0, mix1cupsTotal - 1, 1) → mix1circleModelDividersWhite
  80. Sequence(Segment[Mix2circleModelCenter, Rotate[Mix2circleModelSectorRefPt, ((i * 2) * pi / mix2cupsTotal) + 0.01, Mix2circleModelCenter]], i, 0, mix2cupsTotal - 1, 1) → mix2circleModelDividersWhite