An application which offers a Point Quadtree implementation within a flexible visualizer.
You can learn more about the Quadtrees at Wikipedia.
This application was made for an assessment during a data structures and algorithms college course.
Have a look,
Built on top of Java virtual machine with help of the following awesome tools,
-
The desktop application platform.
-
To eliminate the boilerplate codes.
-
To handle user input events.
-
The build automation tool, handles compilation and dependencies.
-
❤️
To get a local copy up and running follow these simple steps,
-
Make sure Java 11 or higher is installed.
Word Java is used as a substitution for JVM; Java virtual machine.
-
Clone the repository.
You can do this either by using the
git
command,git clone https://github.com/agcom/quadtree.git
or downloading and extracting the project's
zip
artifact. -
Run the application.
You need to invoke the Gradle
run
task to get the application running.You can use the pre-made Gradle scripts even if you don't have the required Gradle bundle installed.
-
On Linux,
./gradlew run
-
On Windows,
./gradlew.bat run
For more information on running batch files on Windows visit this tutorial.
-
Let's review the application's interesting features,
-
Cursor interactions
Click and drag on the quadtree, eventually finding yourself drawing a home!
-
Change the quadtree specifications,
You can change the tree dimensions, width and height.
Also, adjust the capacity; The amount of points each tree will hold before dividing.
-
Spray random points
Your tree feeling lonely?
Either drag your cursor on top of the tree, or let us add some random points.
-
Change query area
The quadtree implementation uses abstractions for areas. Currently, two shapes are implemented, circle and rectangle.
-
Erase!
This may seem strange, but trust me, it's a cool feature!
Check the eraser box and click/drag the cursor on top of some points. This is where the magic happens! Division undo!
-
Adjust the input processing delays
Being eager isn't always the best option.
Delays are necessary to guarantee a lag free experience!
If you're feeling lags, try increasing the delays, especially the draw delay.
-
Some cool statistics about your query efficiency!
Contributions are what make the open source community such an amazing place to be learn, inspire and create.
Any contributions you make are greatly appreciated.
Create an issue, we'll investigate it ASAP.
If you've gone far, share your code with us. Pull requests are appreciated.
Unfamiliar with pull requests? Checkout this tutorial.
Got questions? Two ways, just for you.
- Create an issue with the label.
- Directly contact the project owner.