В настоящее время я создаю базовые методы для выбора областей из массива индексов 1D-сетки.
До сих пор я мог обрабатывать линейные выборки с заданным направлением и лимитом, что прекрасно работает.с шагом по координатам, X целевой индекс:
O O O O O O O O O O
O O O O 1 O O O O O
O O O O 1 O O O O O
O O O O 1 O O O O O
O O O O * 1 1 O O O
O O O 1 O O O O O O
O O 1 O O O O O O O
O 1 O O O O O O O O
Дело в том, что, когда я пытаюсь создать более сложные фигуры, я сталкиваюсь со стеной и не знаю ни одного алгоритма, который мог бы сделать это проще.Я попытался выбрать с помощью треугольника или ромба, подобного этому, не в состоянии правильно закрыть его (получая каждый X), не выполняя грязную работу циклов и условий повсюду:
O O O O O O O O O O O O O O O O O O O O
O 1 X X 1 X X 1 O O O O O O 1 O O O O O
O O 1 X 1 X 1 O O O O O O X 1 X O O O O
O O O 1 1 1 O O O O O O X 1 1 1 X O O O
O O O O * O O O O O O 1 1 1 * 1 1 1 O O
O O O O O O O O O O O O X 1 1 1 X O O O
O O O O O O O O O O O O O X 1 X O O O O
O O O O O O O O O O O O O O 1 O O O O O
Есть ли математическоеспособ, который может спасти меня от создания новой функции для каждого размера каждой фигуры (как сделал)?