ВходНаше всё Теги codebook 无线电组件 Поиск Опросы Закон Воскресенье
7 июля
190629 Топик полностью
FDA (19.04.2010 13:09, просмотров: 51) ответил koyodza на часто удобнее (выгоднее по ресурсам) не закрашивать уже нарисованные контуры фигуры, а сразу эту фигуру рисовать закрашенной. Чтение из экранной области обычно довольно ресурсоёмко само по себе
Я обычно делаю "теневое" ОЗУ и все операции провожу с ним, а с ЖКИ работаю только в режиме записи. Есть отличные алгоритм закраски произвольной области, но он рекурсивный. Впрочем, его несложно и переделать:  int FillArea (int x, int y, char dir, int prevXL, int prevXR, char col) { int xl, xr; xl = xr = x; while ((getpixel(--xl,y) == col) && (xl >= 51)); while ((getpixel(++xr,y) == col) && (xr <= 51 + WW)); line(++xl,y,--xr,y); if ((y + dir >= 26) && (y + dir <= 26 + HW)) { for (x = xl; x <= xr; x++) if (getpixel(x,y + dir) == col) x = FillArea(x,y + dir,dir,xl,xr,col); for (x = xl; x < prevXL; x++) if (getpixel(x,y - dir) == col) x = FillArea(x,y - dir,-dir,xl,xr,col); for (x = prevXR; x < xr; x++) if (getpixel(x,y - dir) == col) x = FillArea(x,y - dir,-dir,xl,xr,col); } return xr; } Этот алгоритм взять из книги "Шикин Е. В. , Боресков А. В. Компьютерная Графика Полигональные Модели" Там же и его описание. Книга есть в формате DJVU, если надо могу куда-нибудь выложить.