quadtree 세분화에서 인접 셀을 찾을 방법이 있습니까? 어느 레벨에서나 선택한 셀에 인접한 모든 셀을 의미합니까?QuadTree의 인접 셀
1
A
답변
2
공간 채우기 곡선은 공간 completley를 채우고 2 차원을 1 차원으로 줄입니다. 필자는 phpclasses.org (hilbert 커브)에서 무료 PHP 클래스를 작성했습니다. 그것은 z 곡선, 4 힐버트 곡선과 무어 곡선과 쿼드 키 기능을 포함합니다. 다음은 충돌 감지 및 쿼드 트리에 대한 블로그입니다 : lab.polygonal.de/?p=202?
모튼 일명 Z-곡선 구성하는 것이 용이하다. x와 y 값을 2 진수로 변환하고 값을 연결하십시오. 여기에서 코드를 찾을 수 있습니다 : http://msdn.microsoft.com/en-us/library/bb259689.aspx. 최상위 비트를 사용하여 상위 경계를 확인할 수 있습니다.
0
노드가 어떤 자식인지 추적해야합니다. 인접 노드가 동일한 상위 노드에 있으면 그냥 반환하십시오. 그렇지 않다면, 당신은 공통 조상을 찾을 수있을 때까지 나무 위로 걸어 가야합니다. 그런 다음 올바른 레벨로 되돌아 올 때까지 (또는 아래쪽에 도달 할 때까지) 비슷한 경로를 따르십시오.
Node WalkLeft(Node node)
{
if (node == null) return null;
Node leftParent;
switch (node.ChildDirection)
{
case ChildDirection.Root:
return null;
case ChildDirection.TopRight:
return node.Parent.TopLeft;
case ChildDirection.BottomRight:
return node.Parent.BottomLeft;
case ChildDirection.TopLeft:
leftParent = WalkLeft(node.Parent);
return leftParent.TopRight ?? leftParent;
case ChildDirection.BottomLeft:
leftParent = WalkLeft(node.Parent);
return leftParent.BottomLeft ?? leftParent;
}
}
다른 방향으로도 마찬가지입니다.
x ?? y
은 첫 번째 Null이 아닌 값을 선택합니다.
관련 문제
- 1. wx.Grid에서 인접 셀 병합
- 2. 그룹 인접 셀, MATLAB
- 3. haskell에서 인접 셀 찾기
- 4. OpenOffice.org BASIC의 인접 셀 참조하기
- 5. 안드로이드에서 인접 셀 가져 오기 null null
- 6. 인접 셀의 조건에서 셀 잠금 해제
- 7. 배열로 저장된 정사각형의 유효 인접 셀 결정
- 8. jquery에서 테이블의 대각선 및 수직 인접 셀 가져 오기
- 9. 인접 행
- 10. Excel : 인접한 셀
- 11. openpyxl을 사용하여 인접 셀로 이동
- 12. 안드로이드 이웃 셀 정보
- 13. octree 데이터 구조를 사용하여 인접/인접 큐브를 찾는 방법은 무엇입니까?
- 14. 인접 모델 MySQL 구문
- 15. 인접 항목에서 날짜 삽입
- 16. 프롤로그의 인접 매트릭스
- 17. 인접 주 웹 서비스
- 18. 인접 이웃 합계
- 19. Neo4j에서 그래프의 인접 행렬
- 20. 인접 비트 여기
- 21. GEt DSR 인접 노드
- 22. 인접 블록을 효율적으로 병합
- 23. jQuery 인접 요소 선택
- 24. 매트릭스 인접 요소 조합
- 25. 인접 목록 구현 그래프
- 26. C# : 인접 범위 결합하기
- 27. 비행지도 인접 목록 구현
- 28. 인접 행렬에서 그래프 그리기
- 29. CSS3 인접 형제 콤비
- 30. 매트릭스의 인접 셀을 기준으로 값을 결정합니다.
감사의 말 Chibox, 프로그래밍의 관점에서 자세한 것은 무엇입니까? – abenci
나는 여전히 내 질문과 z 곡선 사이의 연결을보기가 어렵다. – abenci
행운이 없습니다. 나는 거리의 많은 수준에서조차 선택된 하나에 인접한 세포를 찾을 필요가있다. 그리고 나는 z-curve가 도울 수있는 방법을 이해하지 못한다. 미안하다. – abenci