Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Формирование цветового массива, в формате RGB 
:(
    Опции темы
napTu3aH
  Дата 5.6.2004, 17:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.10.2003

Репутация: нет
Всего: 1



В формате RGB нужно сформировать цветов эдак 200-500(чем больше тем лучше), которые бы визуально(на глаз) отличались бы друг от друга(пусть не сильно, но отличались). Кто нибудь сталкивался с аналогичной задачей?
А то неохота вручную перебирать.
PM MAIL WWW   Вверх
cardinal
Дата 5.6.2004, 17:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Цвета случайные имеются в виду или переливание из одного цвета в другой, потом опять в другой и т.д.?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
napTu3aH
Дата 5.6.2004, 18:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.10.2003

Репутация: нет
Всего: 1



Без разницы, лишь бы цвета на глаз отличались.
PM MAIL WWW   Вверх
cardinal
Дата 5.6.2004, 18:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Все должны отличаться или только те которые рядом находятся?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
napTu3aH
Дата 7.6.2004, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 35
Регистрация: 2.10.2003

Репутация: нет
Всего: 1



Все
PM MAIL WWW   Вверх
cardinal
Дата 7.6.2004, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 5
Всего: 99



Цитата
нужно сформировать цветов эдак 200-500(чем больше тем лучше), которые бы визуально(на глаз) отличались бы друг от друга

Чем больше цветов, тем меньше они други от друга отличаются. 200 это уже не мало на мой взгляд и поэтому разница между оттенками будет невелика.

1. Объяви структуру PALETTE замером например в 216 (6*6*6), в которой будут сидеть твои цвета
2. Заполни эту структуру (как можешь сам поэкспериментировать smile.gif)

Самый просто способ это сделать цикл, который заполняет так

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 оттенков. Как они будут выглядеть не знаю. То есть примерно знаю, что многие на глаз не различить будет, поэтому и сказал, что сам можешь поэкспериментировать с заполнением каналов цветов. smile.gif

test.cpp
Код
// test.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "test.h"

int main(int argc, char* argv[])
{
PALETTE x[216];

x[0].rgbBlue = 255;
x[0].rgbGreen = 255;
x[0].rgbRed = 255;

printf("Hello World!\n");
return 0;
}

test.h
Код
#ifndef _PALETTE_
#define _PALETTE_

typedef unsigned char       BYTE;

typedef struct tagPALETTE { // rgbq
   BYTE    rgbBlue;
   BYTE    rgbGreen;
   BYTE    rgbRed;
   BYTE    rgbReserved;
} PALETTE;
 
#endif


Надеюсь, что смог объяснить то, что пытался объяснить. smile.gif


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
LSD
Дата 8.6.2004, 18:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Leprechaun Software Developer
****


Профиль
Группа: Модератор
Сообщений: 15718
Регистрация: 24.3.2004
Где: Dublin

Репутация: нет
Всего: 538



Возьми цветовое пространство HSB раздели его скажем на 50 единиц по Hue и на 2 по Saturation и Brightness, и получишь заданное количество цветов, вопрос лишь в том как должны быть распределнны данные цвета.


--------------------
Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it.
PM MAIL WWW   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Алгоритмы"

maxim1000

Форум "Алгоритмы" предназначен для обсуждения вопросов, связанных только с алгоритмами и структурами данных, без привязки к конкретному языку программирования и/или программному продукту.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, maxim1000.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Алгоритмы | Следующая тема »


 




[ Время генерации скрипта: 0.0513 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.