Re: Генерация моносетки

From
Valentin Davydov ()
To
Dmitriy Shevnin
Date
2002-08-28T20:44:34Z
Area
RU.ALGORITHMS
From: Valentin Davydov <val@sqdp.trc-net.co.jp>

>   From: Dmitriy Shevnin <Dmitriy.Shevnin@p40.f16.n5056.z2.fidonet.org>
>   Date: Mon, 26 Aug 2002 19:26:20 +0400
>
>  Ищется способ сабжа замены оттенков серого: дан монотонный серый
>прямоугольник, его надо представить ввиде чередующихся белых и черных точек,
>чтобы они передавали именно заданную серость.

Это ты про dithering, что ли? Простейший алгоритм, применяемый обычно
в виндах, такой: для каждой точки берёшь сумму её координат. Затем - 
переворачиваешь полученое двоичное число, то есть младший бит делаешь
старшим. Таким образом, из целого двоичного числа у тебя получается 
вещественное, меньшее единицы. Если величина этого числа меньше требуемого
уровня серости, закрашиваешь данную точку белым, если больше - чёрным.

Более сложный алгоритм Флойда-Штейнберга, или "error diffusion", излагать не
буду, ибо всё равно им проще пользоваться в виде таблицы, заданной на 
достаточно широкой сетке.

Вал. Дав.

--- ifmail v.2.15dev5
 * Origin: Demos online service (2:5020/400)