во второй версии я учел недостатки вышеописанного подхода и теперь использую такой вариант получения случайного числа с ограничением:
Код: Выделить всё
int range_rand(int range){
return (rand() * (uint32_t)range)/RAND_MAX;
}вопрос о том, что для получения случайного цвета используется эта самая функция range_rand(0x100), которая определяет условный номер оттенка. и часто бывает так, что она возвращает, например, подряд 1 и 2 или 5 и 7, т.е. достаточно близкие оттенки, глазом воспринимаемые, как одинаковые.
так вот, в чем, собственно, вопрос: как улучшить выбор случайного номера оттенка из диапазона 0...255 так, чтобы не возникало подряд два близких оттенка?
пока применяю вариант проверки: пока получаю номер оттенка, отличающийся от предыдущего меньше, чем на заданную величину, повторяю вызов функции случайного числа. оно вроде работает, но не так, чтобы я был совсем доволен...
что посоветуете?


