IPB
ЛогинПароль:

 
 Ответить  Открыть новую тему 
> Палитра из цветов радуги, спектр
сообщение
Сообщение #1


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Я нашёл этот код, но мне нужен перелив цветов от красного до синего (через зелёный, по спектру). А этот делает перелив от синего до красного и снова до синего.
Код
type
rgb = record
 r,
 g,
 b : byte
end;
paltype  = array[0..255] of rgb;

procedure GradientPal (var pal: paltype);
var i: byte;
begin
    For I := 0 To 255 Do
    with pal[i] do
    begin
         r := Round (Abs (127.0 * sin ( I * Pi/256.0)));
         g := Round (Abs (127.0 * sin ( I * Pi/128.0)));
         b := Round (Abs (127.0 * cos ( I * Pi/256.0)))
    end;
end;

Что нужно изменить?


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


такая палитра пойдет?
Код

 for i:=0 to 255 do with pal[i] do begin
   if i>127 then r:=0 else r:=(128-i)*2;
   if i<128 then b:=0 else b:=(i-128)*2;
   if i<128 then g:=255-r else g:=255-b;
 end;

хоть и не совсем по спектру... фиолетового нет, да и зависимость линейная...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


если нужен фиолетовый, тогда на три части подели диапазон, а не на две, как у меня... но тогда к красному все вернется
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


Господа, раз уж речь зашла о спектрах, подскажите, пожалуйста, как вообще получить на экране плавный переход хотя бы от черного к белому, то есть от $000000 до $FFFFFF. Нет, вычислить это я могу. Но когда этими вычисленными по науке цветами рисуешь на canvas'e, получается жуткая зебра. Хорошо, оставим смешение цветов, возьмем от черного к красному, то есть от $000000 до $0000FF. Так опять ведь зебра выходит, если идти через 1. В полной мере ожиданиям соответсвуют только 8 цветов - чистые R,G,B, их смеси и черный цвет. А где мои 16 лет... то есть "16 миллионов цветов"? Как мне их расположить в человеческом порядке?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Цитата(P@sh@)
такая палитра пойдет?
Именно то, что надо!
Спасибо!


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Знаток
****

Группа: Пользователи
Сообщений: 303
Пол: Мужской
Реальное имя: Роман

Репутация: -  2  +


Хотя...
жёлтого тоже хочется.


--------------------
Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской

Репутация: -  2  +


Бродяжник
по 255 градаций каждой компоненты - это и есть 24-битный цвет (256*256*256=16777216)... какие нафиг полосы? ты наверное в 256-цветном режиме смотришь? smile.gif

romtek
открой где-нибудь диалог выбора цвета и возьми оттуда несколько ключевых точек на нужные цвета, а потом проинтерполируй, наверное даже линейной хватит

Сообщение отредактировано: P@sh@ -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Бывалый
***

Группа: Пользователи
Сообщений: 206
Пол: Мужской

Репутация: -  3  +


To P@sh@
Сорри... huh.gif Плохо быть таким бестолковым. Это у меня мозги слегка перекосило. Написал три программы - на Паскале, на Дельфи+GDI, на Дельфи+OpenGL - и всюду сделал одну и ту же ошибку. Вместо "1" написал "i".
На выходных отдохнул, мозги прояснились... <_< В общем, если это полезно, сейчас попробую прикрепить файл с плодами своих изысканий...


Прикрепленные файлы
Прикрепленный файл  Raduga.zip ( 127.7 килобайт ) Кол-во скачиваний: 191
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.10.2020 22:46
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name