powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Программирование [игнор отключен] [закрыт для гостей] / формула цветового градиента(температуры) в RGB
24 сообщений из 24, страница 1 из 1
формула цветового градиента(температуры) в RGB
    #35878372
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Необходимо отобразить цветовой градиент температур(или высоты), т.е
формула ,которая
значению из интервала [min,max] ставит в соответствие 3 цветовые компоненты (RGB),
белый цвет(max)->жёлтый-> рыжий->красный->зелёный-> синий(min)
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35878470
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я использовал другую формулу. От красного до синего. Что-то вроде радуги.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35878606
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ использовал другую формулу. От красного до синего. Что-то вроде радуги.
-Нет , это не подойдёт.
А что за формула?
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35878634
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это даже не формула, а скорее кусочно-линейная функция, которая растягивает цвета радуги по отрезку от 0 до 1 в вещественном представлении.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35878772
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
формула цветового градиента(температуры) в RGB
    #35878876
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-же тебе говорю - кусочно-линейная.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35879249
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
maytonЯ-же тебе говорю - кусочно-линейная.
Вот только не надо умничать, всё я понял :)
как с красного на зелёный организовать будут предложения?
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35879344
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.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35879504
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
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
формула цветового градиента(температуры) в RGB
    #35879581
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
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
формула цветового градиента(температуры) в RGB
    #35879964
Elias33
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот такой код откопал:

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
формула цветового градиента(температуры) в RGB
    #35880069
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что-то такое должно получится.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #35880767
RGB_C
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Да, вы правы.
максимому соответствует красный ,
потом идёт жёлтый -> зелёный -> синий
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
формула цветового градиента(температуры) в RGB
    #37753353
D.Mendzhul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Написал то что вам надо (С#):

Если 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
формула цветового градиента(температуры) в RGB
    #37753883
D.Mendzhul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Прилагаю картинку, как это выглядит.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #37753924
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
D.Mendzhul, неверно. Жёлтый и красный не на своих местах.
...
Рейтинг: 0 / 0
формула цветового градиента(температуры) в RGB
    #37756494
D.Mendzhul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это не радуга, читай первое сообщение:

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

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

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

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

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


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


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