![]() |
![]() ![]() |
![]() |
Romtek |
![]()
Сообщение
#1
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Я нашёл этот код, но мне нужен перелив цветов от красного до синего (через зелёный, по спектру). А этот делает перелив от синего до красного и снова до синего.
Код 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- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
P@sh@ |
![]()
Сообщение
#2
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
такая палитра пойдет?
Код 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; хоть и не совсем по спектру... фиолетового нет, да и зависимость линейная... |
P@sh@ |
![]()
Сообщение
#3
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
если нужен фиолетовый, тогда на три части подели диапазон, а не на две, как у меня... но тогда к красному все вернется
|
Бродяжник |
![]()
Сообщение
#4
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
Господа, раз уж речь зашла о спектрах, подскажите, пожалуйста, как вообще получить на экране плавный переход хотя бы от черного к белому, то есть от $000000 до $FFFFFF. Нет, вычислить это я могу. Но когда этими вычисленными по науке цветами рисуешь на canvas'e, получается жуткая зебра. Хорошо, оставим смешение цветов, возьмем от черного к красному, то есть от $000000 до $0000FF. Так опять ведь зебра выходит, если идти через 1. В полной мере ожиданиям соответсвуют только 8 цветов - чистые R,G,B, их смеси и черный цвет. А где мои 16 лет... то есть "16 миллионов цветов"? Как мне их расположить в человеческом порядке?
|
Romtek |
![]()
Сообщение
#5
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Цитата(P@sh@) такая палитра пойдет? Именно то, что надо!Спасибо! -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
Romtek |
![]()
Сообщение
#6
|
![]() Знаток ![]() ![]() ![]() ![]() Группа: Пользователи Сообщений: 303 Пол: Мужской Реальное имя: Роман Репутация: ![]() ![]() ![]() |
Хотя...
жёлтого тоже хочется. -------------------- Romiras HomeLab- материалы и статьи по разработке ПО, моделирование алгоритмов, обработка и анализ информации, нейронные сети, машинное зрение и прочее.
|
P@sh@ |
![]()
Сообщение
#7
|
![]() Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 180 Пол: Мужской Репутация: ![]() ![]() ![]() |
Бродяжник
по 255 градаций каждой компоненты - это и есть 24-битный цвет (256*256*256=16777216)... какие нафиг полосы? ты наверное в 256-цветном режиме смотришь? ![]() romtek открой где-нибудь диалог выбора цвета и возьми оттуда несколько ключевых точек на нужные цвета, а потом проинтерполируй, наверное даже линейной хватит Сообщение отредактировано: P@sh@ - 23.07.2004 17:52 |
Бродяжник |
![]()
Сообщение
#8
|
Бывалый ![]() ![]() ![]() Группа: Пользователи Сообщений: 206 Пол: Мужской Репутация: ![]() ![]() ![]() |
To P@sh@
Сорри... ![]() На выходных отдохнул, мозги прояснились... <_< В общем, если это полезно, сейчас попробую прикрепить файл с плодами своих изысканий... Прикрепленные файлы ![]() |
![]() ![]() |
![]() |
Текстовая версия | 20.06.2025 9:01 |