CodingTrain / CodingTrain/Suggestion-Box

Coding Challange: the Barnes-Hut algorithm

Aperta
#245 1 commento 4 reazioni 0 assegnatari Vedi su GitHub
Patron Recommended
Lingua principale
Nessun dato sulla lingua
Stelle
570
Fork
85
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

You enjoy writing code that implement physical ideas, so I think the Barnes-Hut algorithm is a great idea.

In short, if we have a system of N particles, all of them interact with each other, than per iteration we would need to perform N^2 calculations, and the complexity would thus be O(N^2). The Barnes-Hut algorithm pushes this down to O(N*LogN), by constructing a quad-tree (or an oct-tree in 3D), each node of which represents a quadrant (or an octant) of the simulation area of the level above it. You sub-divide the simulation area recursively until you get only one particle per node, calculating the center-of-mass and total mass for every node, and then calculate the forces acting on each particle by reaching down the tree only to a certain point (such that far away objects are calculated as clusters, and only close enough objects are calculated one by one).

This allows you to simulate ten of thousands (if not millions) of particles in real-time! It's also how they make those galaxy simulations.

Read more about it [here](http://www.cs.princeton.edu/courses/archive/fall03/cs126/assignments/barnes-hut.html).

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

L’issue non indica alcun file del repository, test o punto di ingresso; inizia leggendo l’esercitazione Princeton Barnes-Hut collegata e conferma il contesto previsto del progetto. Per considerare il lavoro completato, servirebbero un ambito concordato per la simulazione e un modo per verificare l’implementazione del quad-tree e le sue prestazioni attese.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Ambito
computer-graphics
Tipo di issue
Funzionalità
Difficoltà
5/5
Tempo stimato
Più di una settimana
Stato di attività
Ferma
Chiarezza
Da chiarire
Idoneità per principianti
30/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.