Как я могу создать несколько оттенков из данного базового цвета? - PullRequest
13 голосов
/ 07 сентября 2010

Я бы хотел разработать график и установить цвета из одного экземпляра. Так же, как в Excel:

alt text

Есть ли какая-то формула или алгоритм для генерировать следующий оттенок цвета из данного оттенок или цвет?

Ответы [ 3 ]

14 голосов
/ 07 сентября 2010

Мне кажется, что они просто взяли один и тот же оттенок (основной цвет) и увеличили яркость вверх и вниз. Это можно сделать достаточно легко с помощью преобразований HSL или HSV. Проверьте Википедию на наличие цветовых пространств HSL и HSV, чтобы получить некоторое представление о теории.

Основная идея: компьютеры представляют цвет со смесью интенсивности красного, зеленого и синего, называемой RGB, потому что именно так на экране отображается цвет. HSL (Hue, Saturation, Lightness) и HSV (Hue, Saturation, Value) - это две альтернативные модели для представления цвета, которые являются более интуитивными и ближе к тому, как люди склонны думать о том, как цвета выглядят.

Оттенок - это основной цвет, представленный (более или менее) в виде угла на цветовом круге. Насыщенность - это линейное значение от 0 (серый) до 255 (яркий, яркий цвет). И Lightness / Value представляют яркость, от 0 (черный) до 100 (белый).

Алгоритмы преобразования из RGB -> HSL и HSL -> RGB (или HSV вместо HSL) довольно просты. Попробуйте преобразовать свой цвет в HS *, отрегулировать яркость и вернуться обратно. Взяв несколько различных значений яркости от низкого до высокого и расположив их в виде клиньев на круговой диаграмме, вы можете довольно легко дублировать это изображение.

8 голосов
/ 07 сентября 2010

Изучите цветовое пространство HSV . Используя его, вы можете создавать различные оттенки или оттенки, начиная с данного цвета. Существует страница с кодом Pascal / Delphi для преобразования между RGB и HSV в efg's Computer Lab .

3 голосов
/ 07 сентября 2010

Родерик, ссылки @mghie отлично подходят для начала, дополнительно попробуйте Delphi Library Colorlib , которая позволяет вам конвертировать между цветовыми моделями, а также утилитами преобразования цветов HTML.очень полный, полный исходный код включен и бесплатен;).

проверьте демонстрационное приложение , на этом изображении вы можете увидеть синий поддон, сгенерированный с использованием этой библиотеки.

alt text

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...