Delphi. Графіка і Ігри. Кольори і Палітра
Як зробити стандартні кольори в Delphi світліше або темніше
У даній статті хотілося б показати принцип отримання зі звичайного кольору темніший чи світліший. А так же розглянемо, як цей принцип реалізований в програмному коді.
Отже, трохи теорії
Кожен з трьох основних кольорів (Червоний, Зелений, Синій) можуть мати значення від 0 до 255, відповідно скомбінувавши їх ми можемо отримати 16,777,216 можливих кольорів. Візуально це можна уявити як три осі куба, в якому напрямку x, y і z відповідають за кольору червоний, зелений і синій. У поєднанні ці напрямки дають точку в кубі, що представляє один колір з 16 мільйонів. Точка куба, в якій значення дорівнює 0 (0,0,0) відповідає чорному кольору, значення (255,255,255) - білого кольору, (255,0,0) - чисто червоному, і т.д.
Якщо візуально провести лінію між будь-яким кольором (r, g, b) і білим кольором (255,255,255), то вийде, що на цій лінії будуть лежати все значення даного кольору (r, g, b). Якщо ми будемо рухатися по лінії в сторону білого кольору, то яскравість буде збільшуватися до тих пір поки не отримаємо чисто білий колір.
Те ж саме можна зробити і для зменшення яскравості кольору. Досить провести лінію з кольору (r, g, b) в чорний (0,0,0). Тобто при русі по лінії до чорного кольору ми будемо зменшувати яскравість до тих пір, поки не отримаємо чорний колір.
Функція "Darker" повертає нове значення кольору, яке буде на скільки-то відсотків темніше. Природно, що при 100% ми отримаємо чорний колір. Функція "Lighter" повертає колір, який світліше на скільки-то відсотків початкового. 100% - білий колір.
Функції Darker і Lighter вимагають 2 параметра і використовуються приблизно так:
Вийде панель кольорів, яка на 20% темніше звичайного синього кольору.
Тепер давайте подивимося, як виглядають всередині наші функції: