Skip to content

cschen1205/cs-quad-tree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

cs-quad-tree

QuadTree Implementation

Install

Run the follow nuget command to install:

Install-Package cs-quad-tree 

Usage

The sample code below shows how to use the quad-tree:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;

namespace QuadTreeLib
{
    class Program
    {
        static void Main(string[] args)
        {
            Random random = new Random();
            QuadTree world = new QuadTree(new Rectangle(0, 0, 2000, 2000));
            
            List<IAgent> population = new List<IAgent>();
            for(int i=0; i < 10000; ++i)
            {
                IAgent agent = new SimpleAgent(world);
                float y = 0; // vertical position
                float x = random.Next(2000);
                float z = random.Next(2000);
                agent.Position = new FVec3(x, y, z);
                population.Add(agent);
            }

            for(int steps = 0; steps < 20; ++steps)
            {
                List<IAgent> agentsWithinRectangle = world.Query(new Rectangle(200, 200, 800, 800));
                Thread.Sleep(100);

                Console.WriteLine("There are {0} agents in rectangel (200, 200, 800, 800) at step {1}",
                    agentsWithinRectangle.Count, steps + 1);

                foreach (IAgent agent in population)
                {
                    float y = 0; // vertical position
                    float x = random.Next(2000);
                    float z = random.Next(2000);
                    agent.Position = new FVec3(x, y, z);
                }
            }
            
        }
    }
}

Releases

No releases published

Packages

No packages published

Languages