Алгоритм для случайной генерации эстетически приятной [закрытой] цветовой палитры

Это не то, что подробно описано, но довольно упрощено.

int *arrayPointer = new int[4][5][6]; // ** LEGAL**
int *arrayPointer = new int[m][5][6]; // ** LEGAL** m will be calculated at run time
int *arrayPointer = new int[3][5][]; // ** ILLEGAL **, No index can be empty 
int *arrayPointer = new int[][5][6]; // ** ILLEGAL **, No index can be empty

Помните:

1. ТОЛЬКО ПЕРВЫЙ ИНДЕКС МОЖЕТ БЫТЬ ПЕРЕМЕН. ДРУГИЕ ИНДЕКСЫ НЕОБХОДИМОСТЬ ПОСТОЯННОГО

2. НЕТ ИНДЕКСА МОЖЕТ БЫТЬ ВЕРОЯТНО.

Как уже упоминалось в других ответах, вызовите

delete arrayPointer;

, чтобы освободить память, связанную с массивом, когда вы закончите с массивом.

296
задан Alex L 10 February 2013 в 16:27
поделиться

4 ответа

Вы могли насчитать значения RGB произвольных цветов с теми из постоянного цвета:

(пример в Java)

public Color generateRandomColor(Color mix) {
    Random random = new Random();
    int red = random.nextInt(256);
    int green = random.nextInt(256);
    int blue = random.nextInt(256);

    // mix the color
    if (mix != null) {
        red = (red + mix.getRed()) / 2;
        green = (green + mix.getGreen()) / 2;
        blue = (blue + mix.getBlue()) / 2;
    }

    Color color = new Color(red, green, blue);
    return color;
}


Смешивание произвольных цветов с белым (255, 255, 255) создает нейтральные пастели путем увеличения легкости при хранении оттенка исходного цвета. Эти случайным образом сгенерированные пастели обычно подходят вместе, особенно в больших количествах.

Вот сгенерированное использование некоторых пастельных цветов вышеупомянутого метода:

First


Вы могли также смешать произвольный цвет с постоянной пастелью, которая приводит к крашеному набору нейтральных цветов. Например, использование голубого создает цвета как они:

Second


Движение далее, Вы могли добавить эвристику к своему генератору, которая принимает во внимание дополнительные цвета или уровни штриховки, но все это зависит от впечатления, которого Вы хотите достигнуть со своими произвольными цветами.

Некоторые дополнительные ресурсы:

419
ответ дан Neysor 23 November 2019 в 01:32
поделиться

Будет трудным получить то, что Вы хотите алгоритмически - люди изучали цветную теорию в течение долгого времени, и они даже не знают всех правил.

Однако существуют [приблизительно 110] правила, которые можно использовать для отбора плохих цветовых комбинаций (т.е., существуют правила для сталкивающихся цветов, и выбирающий дополнительные цвета).

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

-Adam

0
ответ дан Adam Davis 23 November 2019 в 01:32
поделиться

Вы могли сделать, чтобы они были в определенной яркости. это управляло бы количеством "неоновых" цветов немного. например, если бы "яркость"

brightness = sqrt(R^2+G^2+B^2)

была в определенной верхней границе, она имела бы размытый, светлый цвет к нему. С другой стороны, если бы это было в определенной нижней границе, это было бы более темным. Это устранило бы любого сумасшедшего, выдающиеся цвета и если бы Вы выбрали связанное действительно высокое или действительно низкое, они все были бы справедливо или близко к белому или близко к черному.

0
ответ дан helloandre 23 November 2019 в 01:32
поделиться

Преобразование в другую палитру - намного лучший способ сделать это. Для этого есть причина: другие палитры являются «перцептивными», то есть они помещают похожие кажущиеся цвета близко друг к другу, а регулировка одной переменной изменяет цвет предсказуемым образом. Все это неверно для RGB, где нет очевидной взаимосвязи между цветами, которые «хорошо сочетаются друг с другом».

11
ответ дан 23 November 2019 в 01:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: