A simple drawing application, made using Flutter.
Repository, on GitHub.
Circle rasterization mode:
- Bresenham.
Line rasterization modes:
- Bresenham;
- DDA.
Line clipping modes:
- Cohen Sutherland;
- Liang Barsky.
Vector node operations:
- Flipping;
- Rotation (Select vector, Scroll Wheel);
- Scaling (Select vector, Shift + LMB drag);
- Translation (Select vector, LMB drag).
Other features:
- Clear canvas (Ctrl + Delete);
- Select all nodes for vector selection tool (Ctrl + A);
- Zooming (Ctrl + +, Ctrl + -, Ctrl + 0);
Raster tools:
- Circle tool (R);
- Free hand brush (B);
- Line tool (L).
Vector tools:
- Clipping tool (Ctrl + W);
- Line tool (Ctrl + L);
- Vector selection (Ctrl + Q);
- Polygon tool (Ctrl + P).
lib/
: Dart source code.lib/controllers/
: Efficient data manipulation and propagation.lib/core/
: Core functionality - drawers, clippers.lib/model/
: Internal data structure definitions.lib/pages/
: App pages.lib/painters/
: Data views that reflect controller data and updates and overlays.lib/widgets/
: Reusable and modular ui components and core ui elements.
flutter pub get
flutter run web
flutter run windows