Я пытаюсь найти достойный алгоритм, который позволяет мне найти все квадраты, которые пересекает линия, проходя через сетку. Алгоритм Брезенхема не работает в моем сценарии, потому что конечные точки линии не обязательно должны начинаться или заканчиваться в центре квадрата. Даже если он пройдет через угол, квадрат будет засчитан.
Я попробовал поискать в Google, и я не нашел много результатов.
Красный — это алгоритм Брезенхема, который делает то, что я хочу, но он работает, только если конечные точки линии начинаются в центре квадрата.
Зеленый мой идеальный сценарий.
Почему бы не следовать «числовому» алгоритму?
Просто оцените конечно большое количество точек в линии.
По координатам точки было бы легко определить, на какой квадрат (ы) они попадают.
(Вы должны добавить новый квадрат в свой список, только когда квадрат, в котором находится точка, отличается от последней точки.)
Других решений пока нет …