나는 며칠 동안이 문제를 쳐다보고있다. 문제를 시각화하는 데 도움이되도록이 그래픽을 조작했습니다. (그래프에서 선이 [1, 1], [1, 2], [2, 2], [2, 3]과 교차하고 [ 3,3])
선을 따라 각 격자 공간으로 이동하여 격자 공간의 재질이 단단한 지 확인하고 싶습니다. 나는 이미 관련된 수학을 알고 있다고 생각하지만 아직 함께 묶을 수는 없습니다. 경로 찾기 알고리즘을 통해 경로를 찾은 후 이것을 사용하여 가시선을 테스트하고 노드를 제거합니다. 내 에이전트는 솔리드 블록을 통해 볼 수 없으므로 하나를 통과 할 수 없으므로 노드가 경로에서 제거되지 않기 때문에 코너를 탐색하려면 필요합니다.
따라서 교차하는 각 그리드 공간으로 라인을 따라 이동하는 알고리즘이 필요합니다. 어떤 아이디어?
Bresenham과 같은 많은 일반적인 알고리즘과 선을 따라 미리 정의 된 간격으로 단계를 밟는 알고리즘을 살펴 보았습니다 (불행히도이 방법은 타일이 단계 크기보다 작은 웨지와 교차하는 경우 타일을 건너 뜁니다).
현재 화이트 보드에 많은 floor () 및 ceil () 함수를 사용하고 있지만 지나치게 복잡 해져서 속도가 느려질 수 있습니다.