| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Алгоритмы > Формирование цветового массива |
| Автор: napTu3aH 5.6.2004, 17:05 |
| В формате RGB нужно сформировать цветов эдак 200-500(чем больше тем лучше), которые бы визуально(на глаз) отличались бы друг от друга(пусть не сильно, но отличались). Кто нибудь сталкивался с аналогичной задачей? А то неохота вручную перебирать. |
| Автор: cardinal 5.6.2004, 17:25 |
| Цвета случайные имеются в виду или переливание из одного цвета в другой, потом опять в другой и т.д.? |
| Автор: napTu3aH 5.6.2004, 18:16 |
| Без разницы, лишь бы цвета на глаз отличались. |
| Автор: cardinal 5.6.2004, 18:26 |
| Все должны отличаться или только те которые рядом находятся? |
| Автор: napTu3aH 7.6.2004, 08:33 |
| Все |
| Автор: cardinal 7.6.2004, 13:53 | ||||||
Чем больше цветов, тем меньше они други от друга отличаются. 200 это уже не мало на мой взгляд и поэтому разница между оттенками будет невелика. 1. Объяви структуру PALETTE замером например в 216 (6*6*6), в которой будут сидеть твои цвета 2. Заполни эту структуру (как можешь сам поэкспериментировать Самый просто способ это сделать цикл, который заполняет так i = 0 x[i].rgbBlue = 255; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 205; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 155; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 105; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 55; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 5; x[i].rgbGreen = 255; x[i].rgbRed = 255; i++; x[i].rgbBlue = 255; x[i].rgbGreen = 205; x[i].rgbRed = 255; i++; x[i].rgbBlue = 205; x[i].rgbGreen = 205; x[i].rgbRed = 255; i++; x[i].rgbBlue = 155; x[i].rgbGreen = 205; x[i].rgbRed = 255; и т.д. (до i = 215) Вообщем вычитаешь из каналов цветов 50 (сначала из первого 5 раз, потом уменьшаешь на 50 второй канал и опять первый меняешь и т.д.). Получаешь таким образом 216 оттенков. Как они будут выглядеть не знаю. То есть примерно знаю, что многие на глаз не различить будет, поэтому и сказал, что сам можешь поэкспериментировать с заполнением каналов цветов. test.cpp
test.h
Надеюсь, что смог объяснить то, что пытался объяснить. |
| Автор: LSD 8.6.2004, 18:57 |
| Возьми цветовое пространство HSB раздели его скажем на 50 единиц по Hue и на 2 по Saturation и Brightness, и получишь заданное количество цветов, вопрос лишь в том как должны быть распределнны данные цвета. |