Saya sudah menatap masalah ini selama beberapa hari sekarang. Saya memasang grafik ini untuk membantu saya memvisualisasikan masalah: (dari grafik, kita tahu bahwa garis berpotongan [1, 1], [1, 2], [2, 2], [2, 3], berakhir dengan [ 3,3])
Saya ingin melangkah sepanjang garis ke setiap ruang kotak dan memeriksa untuk melihat apakah bahan ruang kotak solid. Saya merasa sudah tahu matematika yang terlibat, tetapi saya belum bisa merangkai semuanya. Saya menggunakan ini untuk menguji garis pandang dan menghilangkan node setelah jalan ditemukan melalui algoritma pathfinding saya - agen saya tidak dapat melihat melalui blok padat, oleh karena itu mereka tidak dapat bergerak melalui satu, oleh karena itu simpul tidak dihilangkan dari jalan karena itu diperlukan untuk menavigasi sudut.
Jadi, saya membutuhkan algoritma yang akan melangkah sepanjang garis ke setiap ruang kotak yang bersinggungan. Ada ide?
Saya telah melihat banyak algoritma umum, seperti Bresenham, dan algoritma yang melangkah pada interval yang telah ditentukan sebelumnya (sayangnya, metode ini melewatkan ubin jika mereka berpotongan dengan irisan yang lebih kecil daripada ukuran langkah).
Saya mengisi papan tulis saya sekarang dengan massa fungsi floor () dan ceil () - tapi itu menjadi terlalu rumit dan saya khawatir itu bisa menyebabkan perlambatan.