Не забувайте, що навіть якщо ви працюєте зі значеннями кольорів LAB, для відображення їх на екрані потрібно виводити значення RGB. У якийсь момент він повинен сказати червоним, зеленим та синім пікселям екрана, що робити.
Подивіться на це з точки зору RGB, і причина угруповань насправді досить проста.
Візьміть підбірник кольору і подивіться на градієнти, і ви помітите, що смуги знаходяться навколо точок, де змінюється характер градієнта:
- У червоному кольорі - це те, де перетворюється від плавного збільшення R в RGB до додавання G до жовтого - навколо # FF0000 до # FF2500
- У синьому кольорі - це те, де перетворюється від плавного збільшення B в RGB до додавання G, щоб стати блакитним - навколо # 0000FF до # 0025FF
Так само і з нижніми ділянками, додаючи жовтий до білого: вони, по суті, три градієнти, з'єднані разом. Використовуючи червоний градієнт як приклад:
- це від 000000 до # FF0000 (збільшення яскравості в термінах HSB, збільшення червоного каналу в RGB)
- потім від # FF0000 до # FFFF00 (зміна відтінку в умовах HSB, збільшення зеленого каналу в RGB)
- потім від # FFFF00 до #FFFFFF (зміна насичення в термінах HSB, збільшення синього каналу в RGB)
Тож завжди буде видиме з'єднання, якщо так налаштовано. Як правило, там, де точність та лінійність є основною метою, найкраще зберігати градієнт просто, змінюючи одну особливість постійно (якщо ви не хочете обв'язувати, наприклад, при деяких видах сканування мозку).
Це означає, що якщо ви вирішили пропустити ширший спектр (це виглядає добре), я б задумався або почати додавати другий канал до того, як перший завершиться, утворюючи перемикаючий ділянку між градієнтами, або маючи невелика зворотна крива S форми до швидкості, з якою додається другий канал (ймовірно, обидва).
Тож замість:
000000 до # FF0000, від 100% до чорного до 100% червоного
FF0000 до # FFFF00, від 100% червоного до 100% жовтого
FFFF00 до #FFFFFF, від 100% жовтого до 100% білого
... це може бути (просто здогадуючись, я потребую коригування):
000000 до # E90000, 100% від чорного до яскраво-червоного
E90000 до # FF2500, (КОРОТКИЙ МОСТ) яскраво-червоний (темний) до яскраво-червоний (злегка помаранчевий)
FF2500 до # FFE900, яскраво-червоний (злегка помаранчевий) до яскраво-жовтий (злегка помаранчевий)
FFE900 до # FFFF25, (КОРОТКИЙ МОСТ) яскраво-жовтий (злегка помаранчевий) до яскраво-жовтий (світлий)
FFFF25 до #FFFFFF, яскраво-жовтий (світлий) до 100% білий
... потім відрегулюйте криві кожного розділу за смаком :-)
Редагувати: Ось демонстрація пропозиції "вирізати кути". Це не ідеально - це досить нерафіновано, просто щось, що я зібрав за око за кілька хвилин, використовуючи інструмент суміші Illustrator (необмежені об'єкти внизу, щоб показати кольорові точки). Кожен сегмент градієнта між кожною точкою кольорів на 100% лінійний, тоді як ви, мабуть, хочете щось більш округлене - і як результат, якщо уважно подивитися, ви можете помітити смуги.
Результати, природно, різняться між моніторами: на моєму «хорошому» моніторі воно гладко; на 'поганому' моніторі, який я використовую для перевірки стійкості веб-зображень (де оригінальні смуги показуються не дуже чітко), апельсини завжди виглядають приглушеними, завдяки чому червоні та жовті поля здаються яскравішими, ніж приєднання помаранчевого, надмірно підкреслюючи червоне і жовті ділянки - але ви все ще можете побачити, що "край" оригінальних груп значною мірою пішов.
Так чи інакше, порівняно з початковими градієнтами ви чітко бачите різницю. (що стосується математики, що стоїть за цим - поняття не маю, я не математик, але, сподіваюся, це допомагає визначити проблему та рішення)
Інша перевага полягає в тому, що ви можете використовувати чіткіший чорний> на один канал перехід більше.
Або та сама ідея на кольоровому кубі RGB (пробачте про грубість, він повинен бути демонстративно не точним ...):
Це, мабуть, більш чітко показує, що я мав на увазі, коли я сказав, що приклад градієнта можна вдосконалити, зробивши переходи від основних сегментів до відрізних кутових сегментів гладкими, а не кутовими.