Ik ben bezig met het genereren van een schaduw in PHP, en daarvoor maak ik gebruik van alpha-kanalen. De bedoeling is dan, dat als ik twee lagen half over elkaar heen teken, de delen die over elkaar heen liggen zwart zijn, en de delen die niet over elkaar heen liggen 50% zwart. Dit gaat echter niet op, omdat als ik twee lagen van 50% zwartheid over elkaar heen teken, ik 75% zwart krijg. Immers: 50% van 50% is 25%, en dat plus de eerste 50% is 75%.

De vraag is nu: Kan ik dit eenvoudig zo oplossen dat 50% + 50% = 100%.
Ik zou natuurlijk voor elke pixel kunnen berekenen hoeveel kanalen er over elkaar heen moeten, en daarna de zwartheid berekenen, maar dat lijkt mij relatief CPU-intensief. Als er dus iemand een beter / ander idee heeft hoor ik dit graag!

Alvast bedankt
Lasse
Geen flauw id wat je allemaal schrijft, maar is het niet zo dat als 50%+50%=75% (effectief 25%) dat 50%+100%=100% (effectief 50%)?
Dat klopt wel, maar het probleem is dan dat het altijd zwart is. In dit geval komt dat goed uit, maar stel ik teken 3 lagen van 33.333% dekking half over elkaar.

De buitenste delen hebben dan dus 33.33333% dekking. De delen daar binnen zouden 33.33% + 33.33% = 66.66% moeten zijn, maar in werkelijkheid zijn ze 33.33% + 11.11% = 44.44%.

Volgens jouw oplossing zou dat zo op te lossen zijn:
33.33% + 100% van 33.33% = 66.66%. Dit gaat echter niet op, omdat je dan een laag van 100% dekking over de 33.33% dekking heen moet tekenen, en dat resulteert in 100% dekking.

Reageren