2012-01-15 2 views
5

재미를 위해 몰래 보이드 시뮬레이션을하고 있습니다. 조금만 최적화하고 싶습니다. 작업이 필요한 영역은 주어진 boid 근처에서 boids를 찾는 것입니다. 그 작업에 적합한 공간 데이터 구조의 일종이 최선의 방법이라고 생각합니다 (here 참조).2D 공간 데이터 구조가 Java에서 Bock을 풀링하는 데 적합합니다.

무엇이든지간에, 자바로 처음부터 구현할 것입니다. 그렇게하면 방금 라이브러리 함수를 호출하면 내가 선택한 데이터 구조에 대해 더 자세히 알게됩니다.

나는 R-Trees, k-d treesQuadtrees을 알고 있습니다. 내 의견으로는 그것들은 모두 실현 가능한 선택 사항입니다. 그러나 이러한 데이터 구조에 대한 경험이 없기 때문에 내 목적에 가장 적합한 것이 무엇인지 잘 모릅니다. 아무 것도 필요하지 않습니다. this scale - 결국 안드로이드 폰에서 실행하게 될지도 모르겠지만 결국 백만 개가 아닌 수백 개의 보이드가 나올 것입니다.

데이터 구조 (물론 위의 것에 국한되지 않음)를 권장하며 대안을 통해 선택할 수있는 좋은 이유를 제공하십시오.

예, 전 this question입니다. 아니오, 대답에 만족하지 않습니다. 전혀 이유가 없습니다.

아, 또 다른 한 가지 - 제목과 마찬가지로 엄격하게 2 차원 전용입니다.

답변

0

정직하게 말하면, 나는 최적화되지 않은 버전부터 시작하여 얼마나 멀리 가져갈 수 있는지 (얼마나 많은 boids) 볼 수 있습니다. 그 후에 다른 방법을 시도하고 차이점을 측정하십시오. 나는 그것이 배울 수있는 가장 좋은 방법이라고 생각합니다.

+0

나는 각 데이터 구조의 동작에 대해 학습하는 것이 실용적인 접근법으로는 좋지만, 이론적 인 이유가 확실 할 때 세 가지 (또는 그 이상) 데이터 구조를 구현하지 않을 것이라고 동의합니다. 이것을 위해 다른 것들보다 하나를 골라라. –