RGB
От: MaxAK  
Дата: 25.12.03 13:27
Оценка:
Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?
Re: RGB
От: BlackHeretic Израиль  
Дата: 25.12.03 13:43
Оценка:
Здравствуйте, MaxAK, Вы писали:

MAK>Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?


Ты там что, флаг украинских неонацистов рисуешь?

Может так?

BYTE n;
COLORREF color = RGB( (n<128 ? n/2 : 255),
n,
(n<128 ? (n<64 ? n*4 : (128-n)*4) : 0));

Ну или что-то типа того...
ICQ 156156278
Re[2]: RGB
От: MaxAK  
Дата: 25.12.03 13:53
Оценка:
Здравствуйте, BlackHeretic, Вы писали:

BH>Здравствуйте, MaxAK, Вы писали:


MAK>>Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?


BH>Ты там что, флаг украинских неонацистов рисуешь?


BH>Может так?


BH>BYTE n;

BH>COLORREF color = RGB( (n<128 ? n/2 : 255),
BH> n,
BH> (n<128 ? (n<64 ? n*4 : (128-n)*4) : 0));

BH>Ну или что-то типа того...



не получаца так
Re: RGB
От: GarikTot  
Дата: 25.12.03 14:00
Оценка:
Здравствуйте, MaxAK, Вы писали:

MAK>Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?


Вот так
COLORREF c = RGB(0, 0, 0); // черный
for(int i=0; i<256; ++i){
   c = RGB(0, 0, i); // плавный переход к синему
}
//здесь уже синий
for(int i=0; i<256; ++i){
   c = RGB(i, 0, 255); // плавный переход к розовому
}
for(int i=255; i>=0; --i){
   c = RGB(255, 0, i); // плавный переход к красному
}
//здесь уже красный
for(int i=0; i<256; ++i){
   c = RGB(255, i, 0); // плавный переход к желтому
}
//здесь уже желтый

Шаг можно подобрать таким образом, чтобы уложиться в 256 градаций
Re[3]: RGB
От: BlackHeretic Израиль  
Дата: 25.12.03 14:05
Оценка:
Здравствуйте, MaxAK, Вы писали:

MAK>Здравствуйте, BlackHeretic, Вы писали:


BH>>Здравствуйте, MaxAK, Вы писали:


MAK>>>Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?


BH>>Ты там что, флаг украинских неонацистов рисуешь?


BH>>Может так?


BH>>BYTE n;

BH>>COLORREF color = RGB( (n<128 ? n/2 : 255),
BH>> n,
BH>> (n<128 ? (n<64 ? n*4 : (128-n)*4) : 0));

BH>>Ну или что-то типа того...



MAK>не получаца так


Времени проверять почему — нет.
Не парься — ручками сделай массив и получай цвет по индексу.
ICQ 156156278
Re: RGB
От: HeaveN Россия  
Дата: 25.12.03 14:15
Оценка:
Здравствуйте, MaxAK, Вы писали:

MAK>Есть числа (int) от 0 до 255, как мне их преобразовать в RGB чтобы 0 соответствовал черному цвету, а 255 желтому и градации менялись бы : черный-синий-красный-желтый?


Сделайте таблицу:

COLORREF index[256];
int i;

index[0] = RGB (0, 0, 0);

for (i=1;i<86;i++)
{
    index[i] = RGB (0, 0, i*3);
    index[i+85] = RGB (i*3, 0, 256-i*3);
    index[i+170] = RGB (255, i*3, 0);
}
... << RSDN@Home 1.1.2 beta 2 >>
Нет такого закона, что человеку летать нельзя...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.