Разница между горизонтальной линией и вертикальной линией заключается в том, как мы увеличиваем положение пикселя.
Отметим, что двумерная координата может (и должна) отображаться в одномерной системе по формуле, подобной * 1003. *. (Память - это одномерная система, у нее нет двух измерений, поэтому мы используем этот тип отображения.)
Итак, как вы показали, мы можем нарисовать горизонтальную линию, пройдя каждый пиксель из ( row, 0) to (row, columnSize-1). По приведенной выше формуле сопоставления мы go из
(строка, c) в (строка, c + 1) просто добавляем 1 к адресу пикселей.
To Нарисуйте вертикальную линию, мы хотим изменить положение строки и сохранить фиксированное положение столбца, как в: от (0, столбец) до (rowSize-1, столбец).
В соответствии с отображением от 2d до 1d , это означает, что для перехода от
(r, col) к (r + 1, col) нам нужно увеличивать на columnSize вместо 1.