Я пытаюсь выяснить эту странную проблему, с которой столкнулся.
У меня есть многомерный массив, который по сути является двумерной матрицей, состоящей из двоичных значений.1 представляет область, которая заполнена, 0 пуста.Я воспринимаю это как «пиксельную графику», хотя приложение сильно отличается.
Я хочу расширить массив так, чтобы он соответствовал определенному количеству единиц (добавление строк и столбцов, дублирование «пикселей»)вроде как при увеличении изображения.
Вот пример грубого примера того, с чем я работаю:
$shape = array(
array(0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0),
array(0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
array(0, 0, 0, 0, 0, 0, 1, 1, 1, 0, 0, 0, 0, 0, 0),
array(0, 0, 0, 0, 0, 1, 1, 1, 1, 1, 0, 0, 0, 0, 0),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1),
array(0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0),
array(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0),
array(0, 0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0, 0),
array(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0),
array(0, 0, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 0, 0),
array(0, 1, 1, 1, 1, 1, 1, 0, 1, 1, 1, 1, 1, 1, 0),
array(0, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 0),
array(1, 1, 1, 1, 1, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1),
array(1, 1, 1, 1, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1),
);
Внизу фигуры станут сложнее, но я использую это как тестовый образец,однако они всегда будут сплошными и двоичными, как эта звезда.
Прямо сейчас значение заполнения этого массива равно 135 (сколько их существует).Допустим, я хочу изменить значение заливки точно на 309, 2048 или 15. Есть ли удобный способ сделать это в PHP, сохранив форму исходной матрицы?
Чтобы уточнить, я не хочучтобы увеличить матрицу на x столбцов и строк, я хочу указать, сколько именно я хочу в итоговой матрице, если соответствие не 100%, я в порядке с этим, пока у меня осталосьименно то количество, которое я указал.
Я дурачусь с алгоритмами масштабирования в пиксельной графике, но не могу понять, как справиться с этой проблемой.