Гость
Форумы / Программирование [игнор отключен] [закрыт для гостей] / формула цветового градиента(температуры) в RGB / 24 сообщений из 24, страница 1 из 1
19.03.2009, 10:03
    #35878372
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Необходимо отобразить цветовой градиент температур(или высоты), т.е
формула ,которая
значению из интервала [min,max] ставит в соответствие 3 цветовые компоненты (RGB),
белый цвет(max)->жёлтый-> рыжий->красный->зелёный-> синий(min)
...
Рейтинг: 0 / 0
19.03.2009, 10:35
    #35878470
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Я использовал другую формулу. От красного до синего. Что-то вроде радуги.
...
Рейтинг: 0 / 0
19.03.2009, 11:13
    #35878606
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
maytonЯ использовал другую формулу. От красного до синего. Что-то вроде радуги.
-Нет , это не подойдёт.
А что за формула?
...
Рейтинг: 0 / 0
19.03.2009, 11:22
    #35878634
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Это даже не формула, а скорее кусочно-линейная функция, которая растягивает цвета радуги по отрезку от 0 до 1 в вещественном представлении.
...
Рейтинг: 0 / 0
19.03.2009, 11:58
    #35878772
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
maytonЭто даже не формула, а скорее кусочно-линейная функция, которая растягивает цвета радуги по отрезку от 0 до 1 в вещественном представлении.
ну в принципе, я понял.
например , с зелёного на синий переход будет ч/з cyan : (0,1,0)->(0,1,1)->(0,0,1)
--------------
С белого на жёлтый: (1,1,1) ->(1,1,0)
C жёлтого на красный (1,1,0)->(1,0,0)

С красного на зелёный: линейная интерполяция не канает(получается жёлтый в середине)
...
Рейтинг: 0 / 0
19.03.2009, 12:26
    #35878876
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Я-же тебе говорю - кусочно-линейная.
...
Рейтинг: 0 / 0
19.03.2009, 14:06
    #35879249
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
maytonЯ-же тебе говорю - кусочно-линейная.
Вот только не надо умничать, всё я понял :)
как с красного на зелёный организовать будут предложения?
...
Рейтинг: 0 / 0
19.03.2009, 14:35
    #35879344
Vowk
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Если RGB(x,y,z) воспринимает значения для x, y, z от 0 до 255 (чаще всего), то можно попробовать
x = (t - min)/(max-min)*255 и
y = (max - t)/(max-min)*255.
z можно экспериментально подобрать от 0 до 100.
...
Рейтинг: 0 / 0
19.03.2009, 15:17
    #35879504
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
VowkЕсли RGB(x,y,z) воспринимает значения для x, y, z от 0 до 255 (чаще всего), то можно попробовать
x = (t - min)/(max-min)*255 и
y = (max - t)/(max-min)*255.
z можно экспериментально подобрать от 0 до 100.
Спасибо, попробую

PS:
вношу ясность: под 0 и 1, которых я упомянал в пред. постах имеется ввиду значение цвета
(в OPenGL), равное GDI [0,255]
...
Рейтинг: 0 / 0
19.03.2009, 15:44
    #35879581
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
RGB_Cкак с красного на зелёный организовать будут предложения?
Предложений у меня к тебе никаких. Вроде-бы ты на девушку не похож. Вот тебе принцип. Три графика. Для R,G,B соответственно. Область определения 0..1 (цветовой тон (Hue)). Область значений от 0..1 для каждой компоненты. Нормируешь до 255, если надо.

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
R
__
  \__/

G
  __
_/  \_


B
   __
\_/  

Насчёт фаз я могу ошибатся. Подкорректиуй если что. Но спектр должен начинатся с красного и заканчиватся фиолетовым. Для удобства, область определения можно разбить на 6 отрезков.
...
Рейтинг: 0 / 0
19.03.2009, 17:26
    #35879964
Elias33
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Вот такой код откопал:

if (PointHeight<WaterLevel)and(NeedWater) then begin
HSL.H:=150;
HSL.L:=(240- abs(round(PointHeight-WaterLevel) div 25))+10;
end
else begin
HSL.H:=15;
HSL.L:=240- round(PointHeight) div 25-2;
end;
HSL.S:=240;
if round(PointHeight) div 25>240 then
HSL.L:=0;

Получаем структуру типа HSL, которая затем переводится в RGB. Высота в метрах приходила. Деталей не помню, давно писалось. Выглядело красиво.
...
Рейтинг: 0 / 0
19.03.2009, 17:54
    #35880069
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Что-то такое должно получится.
...
Рейтинг: 0 / 0
20.03.2009, 08:28
    #35880767
RGB_C
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Да, вы правы.
максимому соответствует красный ,
потом идёт жёлтый -> зелёный -> синий
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
13.04.2012, 20:18
    #37753353
D.Mendzhul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Написал то что вам надо (С#):

Если dx пробегает значения dx = 0; dx < 255

red[ix] = Math.Floor(255d * (0.5d * (1d + Math.Abs(dx / 42d - 4d) - Math.Abs(dx / 42d - 3d))))

green[ix] = Math.Floor(255d * (0.5d * (1d + Math.Abs(dx / 84d - 1.5d) - Math.Abs(dx / 84d - 0.5d) + (Math.Abs(1d - Math.Abs(dx / 42d - 4d)) + 1d - Math.Abs(dx / 42d - 4d)))))

blue[ix] = Math.Floor(255d * (0.5d * (1d + Math.Abs(dx / 42d - 1d) - Math.Abs(dx / 42d) + (Math.Abs(1d - Math.Abs(dx / 42d - 5d)) + 1d - Math.Abs(dx / 42d - 5d)))))
...
Рейтинг: 0 / 0
14.04.2012, 13:08
    #37753883
D.Mendzhul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Прилагаю картинку, как это выглядит.
...
Рейтинг: 0 / 0
14.04.2012, 14:34
    #37753924
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
D.Mendzhul, неверно. Жёлтый и красный не на своих местах.
...
Рейтинг: 0 / 0
17.04.2012, 08:37
    #37756494
D.Mendzhul
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Это не радуга, читай первое сообщение:

"белый цвет(max)->жёлтый-> рыжий->красный->зелёный-> синий(min)"
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
10.03.2020, 16:13
    #39936004
VladimirIC
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
D.Mendzhul, спасибо за формулы!
Реализовал по предложенной схеме и именно указанная цветовая схема получилась
(белый цвет(max)->жёлтый-> рыжий->красный->зелёный-> синий(min)).
Буду признателен, если дадите аналогичные формулы для цветовой схемы, как показал в картинке mayton:
красный - желтый - зеленый - синий.
Заранее спасибо.
...
Рейтинг: 0 / 0
10.03.2020, 16:22
    #39936010
Имя пользователя1
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
VladimirIC
Буду признателен, если дадите аналогичные формулы для цветовой схемы, как показал в картинке mayton:
красный - желтый - зеленый - синий.
это HSL в чистом виде
кури матчасть
...
Рейтинг: 0 / 0
10.03.2020, 23:04
    #39936129
Соколинский Борис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
OFF:
Никогда не понимал, почему синий - признак холодного, хотя должно быть наоборот.
От цвета носа при морозе, что ли?
...
Рейтинг: 0 / 0
11.03.2020, 06:23
    #39936157
Dima T
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Соколинский Борис
OFF:
Никогда не понимал, почему синий - признак холодного, хотя должно быть наоборот.
От цвета носа при морозе, что ли?

Ты не учел что мы видим отраженный свет. Синий имеет большую энергию чем другие цвета, т.е. чем больше синего отражает предмет, тем он холоднее.
...
Рейтинг: 0 / 0
11.03.2020, 06:40
    #39936158
Basil A. Sidorov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Это квант "синего цвета" имеет большую энергию, а сколько тех квантов будет в общем потоке - вопрос совершенно отдельный.

P.S.
И, да - в холодное время (не только года, но и суток) "темных" (сине-фиолетовых) цветов - избыток, а "ярких" (жёлто-красных) - недостаток.
...
Рейтинг: 0 / 0
14.04.2020, 10:59
    #39946888
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
Соколинский Борис
OFF:
Никогда не понимал, почему синий - признак холодного, хотя должно быть наоборот.
От цвета носа при морозе, что ли?

Думаю что синий никакого отношения к холоду не имеет. Просто - художественный прием
который используют художники для рисования снега и льда.

А красным цветом светятся предметы которые особо сильно нагреты. Плавящееся железо.
Нагретый ТЭН. Угли костра. Впрочем если вещество сильно долго нагревать (до плазмы хотя-бы)
оно должно светиться в белом спектре (тоесть до синего включительно).
...
Рейтинг: 0 / 0
14.04.2020, 12:45
    #39946934
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
формула цветового градиента(температуры) в RGB
mayton
Впрочем если вещество сильно долго нагревать (до плазмы хотя-бы)
оно должно светиться в белом спектре (тоесть до синего включительно).


Белым будет при температуре около температуры Солнца (максимум в зеленой области), если выше - будет синеть, наверное.
...
Рейтинг: 0 / 0
Форумы / Программирование [игнор отключен] [закрыт для гостей] / формула цветового градиента(температуры) в RGB / 24 сообщений из 24, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]