Алгоритм преобразования 1-D-градиента в специальную форму 2-D-градиентаPython

Программы на Python
Anonymous
Алгоритм преобразования 1-D-градиента в специальную форму 2-D-градиента

Сообщение Anonymous »

Предполагая, что существует одномерный массив/список, определяющий цветовой градиент, я хотел бы использовать его для создания двухмерного цветового градиента следующим образом:
Давайте простота: замените информацию о цвете одним числовым значением для примера одномерного массива/списка:

Код: Выделить всё

[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ]
Чтобы градиент продвигался по диагонали с продвижением наибольшего следующего значения по диагонали по всему массиву, я хотел бы преобразовать 1D-последовательность в 2D-массив с намеренно выбранной формой (т.е. ширина/высота, т. е. количество строк x количество столбцов, где строка * столбцы == длина массива одномерных градиентов) следующим образом:

Код: Выделить всё

[[  1  2  4 ]
[  3  6  7 ]
[  5  9 10 ]
[  8 12 13 ]
[ 11 14 15 ]]
или

Код: Выделить всё

[[  1  2  4  7 10 ]
[  3  6  9 12 13 ]
[  5  8 11 14 15 ]]
или начиная с последовательности:

Код: Выделить всё

[ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16]
для

Код: Выделить всё

[[  1  2  4  7 ]
[  3  6  9 11 ]
[  5 10 13 14 ]
[  8 12 15 16 ]]
Существует ли готовый к использованию готовый модуль Python или C-библиотека, способная выполнить такое изменение формы массива, или этот особый случай необходимо запрограммировать вручную? И если необходимо кодирование циклов вручную, какой способ сделать это будет наиболее эффективным, поскольку последовательность, которую я хотел бы преобразовать, имеет размер 256³? Может быть, я уже нашел готовый к использованию код для такого изменения/преобразования в глубоком пространстве Интернета, который мне не удалось найти, спрашивая ни поисковые системы, ни LLM?


Подробнее здесь: https://stackoverflow.com/questions/785 ... -a-2-d-gra

Вернуться в «Python»