특정 색상으로 표시된 구절이있는지도가 있으며 사람들은이 구석에서만 걸을 수 있으므로 다른 색상은 장애물입니다. 거기에 그런 종류의지도에서 그래프를 만들 수있는 도구/라이브러리/알고리즘이 있습니까?PNG지도에서 그래프 만들기
답변
라이브러리 또는 도구로이를 빌드 할 필요가 없습니다. 현재 진행중인 작업은 새 구현을 정당화 할만큼 충분히 간단하고 독특합니다.
아래에서는이 작업을 수행하기 위해 구축 할 구성 요소, 특히 좁은 책임을 강조합니다.
그래프 [T]는
그래프 노드들의 집합의 노드 쌍 사이의 이진 관계를 나타낸다. T
은 해당 노드와 연관된 페이로드를 나타내며 사용 사례에서는 이미지의 픽셀 좌표입니다. 우리는 그래프가 방향성인지 또는 비순환 적인지 또는 그와 같은 것에 대한 가정을하지 않습니다.
노드 [T]
그래프 단일 노드. 여기에는 유형이 T
인 일반적인 페이로드와 GetNeighboringNodes
이라는 메서드가 있습니다.
PassageGraphBuilder
이 클래스는 Image
밖으로 Graph<PixelCoordinates>
를 만들기위한 책임이 있습니다. Color
이 주어진 Image
내의 한절을 나타내는 구성을 포함하며 방향성 (위/아래/왼쪽/오른쪽 또는 대각선도 가능)으로 연결성을 허용하는 구성이 포함되어 있습니다.
Image
의 각 픽셀에 대해 Node<PixelCoordinates>
을 만들어이 작업을 수행합니다. 그런 다음 Image
에있는 모든 인접 픽셀의 색상을 검사하여 해당 노드 간 관계를 만듭니다.
WorldToGraphMap
이 구성 요소는 픽셀 좌표 간의 매핑 세상의 책임이있다. 이것은 당신의 세계의 규모가 그것을 운전하는 데 사용 된 데이터와 독립적이되도록합니다. 그것은 GetWorldCoordinatesForNodeCenter(Node<PixelCoordinates>)
과 GetNodeForWorldCoordinates(WorldCoordinates)
과 같은 방법을 가지고 있습니다. 입력으로 새로운 원하는 위치를 (세계 좌표에서) 선수에 대한, 아마도 컨트롤러에 의해 구동
- 의견 : 다음
당신이 할 수있는 ... 마지막으로
, 다음을 수행 할 수 있습니다 입력,
- 을 호출하여 그래프에서 새 위치가 일치하는 노드를 확인하십시오.
- 플레이어의 현재 노드를 확인하여 두 노드가 인접 해 있는지 확인하십시오 ors :
- 새 노드가 이전 노드의 이웃 인 경우 이동을 허용하십시오.
- 그렇지 않으면 허용하지 않습니다.
물론 실제 navmesh를 구성하는 데 더 많은 어려움이 있지만,이 사용 사례로 이동해야합니다.
- 1. 그래프 만들기
- 2. 그래프 그래프 트리 그래프 만들기 - 일대일 매핑
- 3. 파이썬에서 미로의 그래프 만들기
- 4. hadoop 실행 그래프 만들기
- 5. JSON 입력에서 그래프 만들기
- 6. 자바에서 그래프 만들기
- 7. 상관 관계 : 그래프 만들기
- 8. VB에서 그래프 만들기
- 9. TTree에서 막대 그래프 만들기
- 10. Windows에서 방정식 그래프 만들기
- 11. JPanel에 막대 그래프 만들기
- 12. 파이썬리스트리스트에서 그래프 만들기
- 13. C++ 가중치 그래프 만들기?
- 14. 결정적 그래프 만들기
- 15. 친구 그래프 만들기
- 16. 특별한 종류의 그래프 만들기
- 17. iPad/iPhone에서 그래프 만들기
- 18. 데이터 세트에서 그래프 만들기
- 19. 시각적 그래프 만들기
- 20. 세이지 그래프 만들기
- 21. CorePlot 그래프 만들기
- 22. 코코아 : 그래프 만들기
- 23. 그래프 만들기 - 어떤 언어?
- 24. 만들기 사용자 정의 그래프
- 25. XYDifference (Renderer) 그래프 아래에 영역 그래프 만들기
- 26. 부스트 그래프 라이브러리를 사용하여 그래프 만들기
- 27. 문자열 그래프 만들기 (Levenshtein Distance)
- 28. Gremlin Server 내에서 그래프 만들기
- 29. Chart.js로 정규 분포 그래프 만들기
- 30. 목록의 사전에서 막대 그래프 만들기
이와 같은 게임을 만들 때는 [모델 /보기/컨트롤러 패턴] (https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller)을 사용해야합니다. . 이 모델에는지도를 만들고 그래프를 만드는 데 필요한 정보가 들어 있습니다. –