Я вже кілька днів дивлюся на цю проблему. Я сфабрикував цю графіку, щоб допомогти мені візуалізувати проблему: (із графіка ми знаємо, що рядок перетинається [1, 1], [1, 2], [2, 2], [2, 3], що закінчується на [ 3,3])
Я хочу крокувати по лінії до кожного простору сітки і перевірити, чи не міцний матеріал простору сітки. Я відчуваю, що я вже знаю, що займається математикою, але я ще не змогла зв'язати її разом. Я використовую це для тестування лінії зору та усунення вузлів після того, як шлях знайдений за допомогою моїх алгоритмів проходження маршруту - мої агенти не можуть бачити суцільний блок, тому вони не можуть переміщатися через один, тому вузол не виключається із шляху, тому що він потрібен для навігації в куті.
Отже, мені потрібен алгоритм, який буде крокувати по лінії до кожного простору сітки, який він перетинає. Будь-які ідеї?
Я переглянув безліч поширених алгоритмів, таких як Брезенхем, і той, який крокує заздалегідь заданими інтервалами по лінії (на жаль, цей метод пропускає плитки, якщо вони перетинаються з меншим клином, ніж розмір кроку).
Зараз я заповнюю свою дошку масою функцій підлоги () та стелі () - але це стає надто складним, і я боюся, що це може спричинити уповільнення.