De term kleurengradiënt wordt gebruikt om een reeks kleuren aan te duiden die afhankelijk zijn van hun positie. Een lineaire kleurengradiënt wordt gekenmerkt door twee punten die elk een verschillende kleur hebben. De tussenliggende punten worden berekend aan de hand van lineaire interpolatie. Hieronder zie je bijvoorbeeld de kleurengradiënt tussen een rood punt aan de linkerkant en een groen punt aan de rechtkant.
R:255 G:0 B:0 |
R:238 G:17 B:0 |
R:221 G:34 B:0 |
R:204 G:51 B:0 |
R:187 G:68 B:0 |
R:170 G:85 B:0 |
R:153 G:102 B:0 |
R:136 G:119 B:0 |
R:119 G:136 B:0 |
R:102 G:153 B:0 |
R:85 G:170 B:0 |
R:68 G:187 B:0 |
R:51 G:204 B:0 |
R:34 G:221 B:0 |
R:17 G:238 B:0 |
R:0 G:255 B:0 |
De RGB-waarde van een kleur bestaat uit drie natuurlijke getallen tussen 0 en 255 (grenzen inbegrepen), die respectievelijk de rood-, groen- en blauwcomponent van de kleur voorstellen. Als de RGB-waarden $$(r_0, g_0, b_0)$$ en $$(r_1, g_1, b_1)$$ van kleuren op twee punten gegeven zijn, dan kunnen $$n$$ kleurovergangen op de volgende manier berekend worden. De $$i$$-de ($$0 \leq i < n$$) kleurcomponent $$c_i$$ wordt gegeven door \[ c_i = c_0 + \frac{i}{n - 1}(c_1 - c_0) \] Dit geldt voor alle kleurcomponenten rood ($$c = r$$), groen ($$c = g$$) en blauw ($$c = b$$). De waarde van elke kleurcomponent wordt telkens afgerond naar het dichtstbijzijnde natuurlijke getal. Bovenstaande illustratie toont bijvoorbeeld 16 kleurovergangen tussen rood $$(255, 0, 0)$$ en groen $$(0, 255, 0)$$. Merk op dat als de drie kleurcomponenten van een RGB-waarde gelijk zijn, de kleur een grijswaarde voorstelt. De 12 kleurovergangen tussen zwart $$(0, 0, 0)$$ en wit $$(255, 255, 255)$$ leveren dan bijvoorbeeld het volgende resultaat op
R:0 G:0 B:0 |
R:23 G:23 B:23 |
R:46 G:46 B:46 |
R:70 G:70 B:70 |
R:93 G:93 B:93 |
R:116 G:116 B:116 |
R:139 G:139 B:139 |
R:162 G:162 B:162 |
R:185 G:185 B:185 |
R:209 G:209 B:209 |
R:232 G:232 B:232 |
R:255 G:255 B:255 |
De eerste regel bevat een getal $$n \in \mathbb{N}_0$$. Daarna volgen zes natuurlijke getallen tussen 0 en 255 (grenzen inbegrepen), die de RGB-waarden van twee punten voorstellen.
Schrijf de $$n$$ kleurovergangen uit van de kleurengradiënt tussen de twee gegeven punten. De RGB-waarde van elke kleurovergang moet op een afzonderlijke regel uitgeschreven worden in het formaat rgb(rood, groen, blauw), waarbij de cursieve fragmenten uiteraard moeten ingevuld worden met de waarden van de kleurcomponenten. De waarde van elke kleurcomponent wordt telkens afgerond naar het dichtstbijzijnde natuurlijke getal.
Invoer:
16
255
0
0
0
255
0
Uitvoer:
rgb(255, 0, 0)
rgb(238, 17, 0)
rgb(221, 34, 0)
rgb(204, 51, 0)
rgb(187, 68, 0)
rgb(170, 85, 0)
rgb(153, 102, 0)
rgb(136, 119, 0)
rgb(119, 136, 0)
rgb(102, 153, 0)
rgb(85, 170, 0)
rgb(68, 187, 0)
rgb(51, 204, 0)
rgb(34, 221, 0)
rgb(17, 238, 0)
rgb(0, 255, 0)