siddhantjain / minipaint Goto Github PK
View Code? Open in Web Editor NEWA small paint like application in an attempt to write good code
A small paint like application in an attempt to write good code
File class currently uses a static object that is used everywhere. This should change as the program is not as extensible (there will be a problem with multiple tabs) anymore.
Command Move is left to be implemented
As per project expectation
Provide a shorcut key for every command like delete key for deleteing the shape.
When a shape is selected there is a new shape which gets dragged (it's not finally painted though). Selecting a shape shouldn't draw anything at all.
Implement a stack to Undo/Redo commands
Command Resize is left to be implemented
When a shape is drawn, we see that there is no preview of the shape size. This should be fixed.
Command Delete is left to be implemented
Logic for tdrawing triangle is a little weird as of now. Improve upon it.
All commands will run on a shape that is selected. Implement a way to select a shape on the workspace.
There are a lot of places where switch cases are used with hardcoded numbers. Use Enums everywhere.
The option to save or open file is left to be implemented
Currently, Undo/Redo stores and entire object as the representation of the old object. This should change as in some cases the object might be very big. We should just store the shape id, the metric in which there was a change and the changed metric.
Command Fill Color is left to be implemented
Currently, in the main file, the integer codes for commands are different from those use in the command factory. We need to sync them both.
All commands are currently just editing the shape list. They should also take care of calling the file painters functions for drawing the respective shapes.
A class that does all the painting job. Move it from the current system of doing everything in the main source file. Also remove the draw functionality.
Currently, if you click inside the bounding box of the triangle, triangle gets selected. It should be changed to selections within the triangle only and not the entire bounding box
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.