0 — это зеленый цвет RGB = (0, 255, 0)
20 — это желтый цвет RGB = (255, 255, 0)
40 — это красный цвет RGB = (255, 0, 0)
Отсюда видно, что от 0 до 20 — растет компонента R от 0 до 255 (а G стоит на 255).
И что от 20 до 40 — убывает компонента G от 255 до 0 (а R стоит на 255).
И то, и другое выражается через пропорцию: например, если входное число N <= 20, то R будет равно N*255/20,
А если входное число N>20, то G = (20-(N-20))*255/20
(N-20) отнимает от нашего числа стартовые 20.
а 20-(N-20) инвертирует рост компоненты в убывание, т.к. нам надо чтоб от 20 до 40 — G падало.
а так это та же самая пропорция, что и для R.