Адресация растра. Формула вычисления адреса пиксела.


Будем считать, что пиксел в растре или буфере кадра имеет координаты (x, y). Но цифровая память организована в виде линейного списка адресатов. Отсюда следует, что необходимо преобразовать координатные представления в линейные. Исходя из предположения, что начальный адрес в памяти ? 0, получаем:
(1) Адрес = (xmax — xmin)?(y — ymin) + (x — xmin) + базовый адрес. Это справедливо и в случае, когда ось oY направлена вниз, а пикселы адресуются относительно левого верхнего угла. Адрес будем записывать в виде: (2) Адрес = k1 + k2?y + x. Тогда из (1) получаем: (3) k1 = базовый адрес — k2?ymin — xmin; k2 = xmax — xmin.
Таким образом вычисление адреса пиксела требуют не более 2 сложений и одного умножения. Решение можно упростить, если выполнить последовательную адресацию пикселов для дальнейшего уменьшения работы, т.е. использовать пошаговые вычисления. Тогда:
Адрес (x ? 1, y) = k1 + k2?y + (x ? 1) = Адрес (x, y) ? 1;
Адрес (x, y ? 1) = Адрес (x, y) ? k2;
Адрес (x ? 1, y ? 1) = Адрес (x, y) ? 1.