Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Графика и игры
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 18.07.2008, 11:27
Аватар для Genry
Genry Genry вне форума
Начинающий
 
Регистрация: 14.04.2008
Адрес: с. Россия, г. Курган
Сообщения: 160
Версия Delphi: 7
Репутация: 10
Вопрос Массив цветов по оттенкам

Помогите сделать массивы цветов по оттенкам, например:
Код:
var
  white: array[??????..$FFFFFF] of integer;
Тут я не знаю какой массив цветов для белого цвета. или может так:
Код:
var
  white: array[16777215..255255255] of integer;
Помогите пожалуйста сделать правильно, и для всех цветов... заранее благодарен...
__________________
http://forceway.ru/

Последний раз редактировалось Genry, 18.07.2008 в 11:30.
Ответить с цитированием
  #2  
Старый 18.07.2008, 12:32
AlexSku AlexSku вне форума
Специалист
 
Регистрация: 07.05.2007
Адрес: Москва
Сообщения: 884
Репутация: 21699
По умолчанию

Возможно, лучше перейти от модели RGB к HSB (другие названия HLS, HBS...). Тогда оттенок это угол цветового круга. Остаётся добавить насыщенность и яркость.
Ответить с цитированием
  #3  
Старый 18.07.2008, 13:12
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Не очень понятно, что подразумевается под определением "оттенки цветов".
Оттенки ли это основных цветов (красный, оранжевый, и т.д.).
Оттенки ли это цветов, составляющие разные цвета, например, пурпурный можно считать оттенком красного или наоборот, у красного может быть оранжевая составляющая и т.п.
Оттенки основных цветов - это яркость цвета и не более того.
Оттенки по второму определению - это смешивание различных цветов, каждого со своей яркостью.
Все выше сказанное относится к модели цвета RGB.

Массивы цветов по оттенкам объявить сложно. И если попытаться такое сделать, то придется вручную заполнять каждый элемент массива.
Например, чтобы получить оттенок чистого зеленого цвета ($FF00) в сторону уменьшения яркости надо добавлять равные значения красного и синего:
$01FF01, $02FF02, $03FF03,...
Чтобы увеличить яркость зеленого (тоже изменяем оттенок) надо уменьшать его значение: $FE00, $FD00, $FC00,...

Из показанных примеров видно, что простое объявление массивов "оттенков", если и получится, то с такими трудозатратами, что не захочется связываться.
Мало того, такие массивы будут отъедать не мало памяти.

Цвета вычисляют, а не хранят. Исключения сделаны только для тех цветов, которые предопределил Windows, и значения которых всем хорошо известны.

Так что, если хотите все правильно сделать, то объясните цель таких "массивов" в проекте.

Что касаемо, других моделей, то переход на них связан с бесконечными преобразованиями цвета от RGB к применяемой модели и обратно. Такое может позволить себе разве что Photoshop. Не уверен, что у автора вопроса так далеко идущие планы.
__________________
Не забывайте делать резервные копии

Последний раз редактировалось san-46, 18.07.2008 в 13:14.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:53.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025