Используя Подрывную деятельность
Подрывная деятельность не распределяется, так, чтобы заставил меня думать, что мне нужна ссылка Википедии в случае, если люди не уверены, о чем я говорю:)
Вместо этого используйте HSL: исправьте яркость и насыщенность и измените оттенок от 0 до 360, а затем конвертируйте в RGB.
HSL описывает цвета так, как они воспринимаются людьми. RGB описывает их, как они используются машинами. Таким образом, вы не можете сделать ничего визуально приятного напрямую с помощью RGB.
Самый простой подход - выполнить линейную интерполяцию (в RGB) между каждой последовательной парой в этой последовательности:
# ff0000
red # ffff00
yellow # 00ff00
зеленый # 00ffff
голубой # 0000ff
синий # ff00ff
пурпурный # ff0000
обратно к красному Это должен дать вам почти тот же результат, что и перебор значений оттенка в HSV или HSL, но позволяет работать непосредственно в RGB. Обратите внимание, что при каждой интерполяции изменяется только один компонент, что упрощает работу. Вот реализация Python:
def rainbow():
r, g, b = 255, 0, 0
for g in range(256):
yield r, g, b
for r in range(255, -1, -1):
yield r, g, b
for b in range(256):
yield r, g, b
for g in range(255, -1, -1):
yield r, g, b
for r in range(256):
yield r, g, b
for b in range(255, -1, -1):
yield r, g, b
Между каждым цветом сделайте линейную интерполяцию.
Вы можете использовать цветовое пространство HSV и пройти через измерение оттенка.