Skip to content

creme332/polydraw

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polydraw 💎

A rasterized shape drawing application, inspired by GeoGebra Classic, developed as part of a UI design assignment. This application allows users to draw various rasterized shapes with a simple and intuitive interface, focusing on user experience and design principles. The project report, which details the design process and key decisions, is available here.

GIF of some features in polydraw

Main features

  • Scalable coordinate system with drag to move.
  • Supports DDA and Bresenham line drawing algorithms.
  • Configurable line attributes (type, thickness, color).
  • Draw polygons (regular and irregular).
  • Configurable polygon attributes (border color, border thickness, fill color).
  • Circle drawing using midpoint circle algorithm.
  • Animated transformations (translation, rotation, shearing, ...).
  • Ellipse drawing using midpoint ellipse algorithm.
  • Shape clipping.
  • Drag and drop to move shapes.
  • Testing with JUnit 4.
  • Sidebar with opening and closing animation.
  • In-app tutorials with searching functionality.
  • Cross-platform GUI.
  • Export canvas in PNG and JSON format.
  • Keyboard shortcuts.
  • Supports undo, redo, and delete operations.

Screenshots

polydraw main screen polydraw main screen with sidebar minimized
polydraw toast polydraw tutorial screen
polydraw getting started tutorial

Documentation

All documentation (installation guide, usage guide, ...) is available in the docs folder.

Disclaimer

This project was developed as part of an educational assignment and is not production-ready. Please note that the project is currently incomplete, and no further development is planned.

Contributors

References

  1. UI and drawing modes graphics were adapted from https://www.geogebra.org/classic.
  2. App logo: Icosahedron icon created by Pixel perfect - Flaticon.