2
การค้นหาไทล์ใดที่ถูกตัดกันโดยบรรทัดโดยไม่ต้องวนลูปทั้งหมดหรือข้ามใด ๆ
ฉันกำลังจ้องมองปัญหานี้มาสองสามวันแล้ว ฉันดึงภาพนี้ขึ้นมาเพื่อช่วยให้เห็นภาพของปัญหา: (จากกราฟเรารู้ว่าเส้นตัดกัน [1, 1], [1, 2], [2, 2], [2, 3] ซึ่งลงท้ายด้วย [ 3,3]) ฉันต้องการที่จะก้าวไปตามเส้นสู่พื้นที่กริดแต่ละอันและตรวจสอบเพื่อดูว่าวัสดุของพื้นที่กริดนั้นมั่นคงหรือไม่ ฉันรู้สึกว่าฉันรู้คณิตศาสตร์แล้ว แต่ฉันยังไม่สามารถรวมมันเข้าด้วยกันได้ ฉันใช้สิ่งนี้เพื่อทดสอบสายตาและกำจัดโหนดหลังจากพบเส้นทางผ่านอัลกอริธึมการค้นหาเส้นทางของฉัน - เอเจนต์ของฉันไม่สามารถมองผ่านบล็อกทึบดังนั้นพวกเขาจึงไม่สามารถเคลื่อนที่ผ่านหนึ่งดังนั้นโหนดจึงไม่ถูกกำจัดออกจากเส้นทาง จะต้องนำทางมุม ดังนั้นฉันต้องการอัลกอริทึมที่จะไปตามเส้นตรงไปยังพื้นที่กริดแต่ละอันที่มันตัดกัน ความคิดใด ๆ ฉันได้ดูอัลกอริธึมทั่วไปจำนวนมากเช่นของ Bresenham และขั้นตอนที่กำหนดช่วงเวลาตามเส้นที่กำหนดไว้ล่วงหน้า (น่าเสียดายที่วิธีนี้ข้ามกระเบื้องถ้าพวกเขาตัดกันด้วยลิ่มที่เล็กกว่าขนาดขั้นตอน) ตอนนี้ฉันกำลังเติมไวท์บอร์ดของฉันด้วยพื้น () และฟังก์ชั่น ceil () - แต่มันซับซ้อนเกินไปและฉันกลัวว่ามันอาจทำให้เกิดการชะลอตัว