Вверх ↑
Ответов: 3889
Рейтинг: 362
#1: 2012-02-01 10:05:45 ЛС | профиль | цитата
login писал(а):
отрисовываю всё поле, в процессе, прибавляю ко всем координатам всех обьектов смещения(отрицательные и положительные) эти смещения приходят от ползунков, поэтому можно видеть только нужную область, остальное за кадром.

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

Есть ещё вариант работы с выравненными с определённым шагом по обеим осям элементами - теневой буфер (массив) клеточек, которые очищаются и заполняются при отрисовке на реальном экране маркерами, точно указывающими какой именно блок паттерна перекрыл эту клетку. Таким образом нужно просканировать участок массива, попавший в рамку и собрать коллекцию указателей на паттерны ("полоски"), которые в него (участок) попали.
карма: 1

0