Een van de meest interessante manieren om rond te spelen met kleuren is adhv. glas. De kleuren zijn dan natuurlijk ook doorzichtig. In code kunnen we hier rekening mee houden door een 4e variabele aan de tuple toe te voegen. Dit noemen we ook wel de alpha variabele. Met een waarde van 0 is deze 100% doorzichtbaar (en dus niet waarneembaar), met een waarde van 255 is deze volledig ondoorzichtig.

De leukste effecten kunnen we krijgen als we verschillende glazen over mekaar plaatsen. We kunnen ook berekenen hoe dit eruit zal zien aan de hand van volgende formules:
\[A_{nieuw} = A_{top} + A_{bottom} \cdot (1 - A_{top})\]en
\[RGB_{nieuw} = \dfrac{RGB_{top} \cdot A_{top} + RGB_{bottom} \cdot A_{bottom} \cdot (1 - A_{top})}{A_{nieuw}}\]Deze 2e formule moet individueel berekend worden voor de R, G en B component. \(top\) is telkens het bovenste glas en \(bottom\) is telkens het onderste glas.
Schrijf een functie glasCombineren(bovenste, onderste) die gegeven 2 glas-kleuren (met componenten r, g, b en a) berekent wat het resulterende kleur is als je ze boven mekaar legt. Rond alle waarden af naar een geheel getal.
>>> glasCombineren((255, 0, 0, 100), (0, 255, 0, 100))
(159, 96, 0, 161)
>>> glasCombineren((255, 64, 64, 183), (64, 128, 255, 41))
(244, 68, 75, 195)