private void Draw() { graphics.Clear(Color.Black); quadtree = new Quadtree(new Rectangle(winWidth / 2, winHeight / 2, winHeight / 2, winWidth / 2), 4, graphics); foreach (var particle in particles) { quadtree.InsertParticle(particle); graphics.FillRectangle(Brushes.White, particle.position.X, particle.position.Y, 2f, 2f); } quadtree.Draw(); pictureBox1.Refresh(); }
public void InsertParticle(Particle p) { if (!boundary.ContainsPoint(new Point((int)p.position.X, (int)p.position.Y))) { return; } if (points.Count < capacity) { points.Add(p); } else { if (!divided) { Subdivide(); divided = true; } QTne.InsertParticle(p); QTnw.InsertParticle(p); QTse.InsertParticle(p); QTsw.InsertParticle(p); } }