Как генерировать случайные темные цвета в C #? - PullRequest
8 голосов
/ 18 июня 2011

Я генерирую случайный цвет следующим образом:

 var random = new Random();
 var color = String.Format("#{0:X6}", random.Next(0x1000000)); 

Как я могу исключить цвета, ярче определенного значения?

Ответы [ 2 ]

10 голосов
/ 18 июня 2011

Довольно простой способ избавиться от "верхней половины" ярких цветов - это замаскировать результат с помощью

random.Next(0x1000000) & 0x7F7F7F
7 голосов
/ 18 июня 2011

Один из способов сделать это - создать цвета в цветовом пространстве HSV / HSL , а затем преобразовать их в RGB (статья в Википедии рассказывает, как это сделать).

Преимущество HSV состоит в том, что один из компонентов (V) соответствует «яркости». Поэтому, если вы генерируете H, S и V независимо и случайным образом, но ограничиваете V низкими значениями, вы получите темные цвета.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...