Design an object-oriented model encompassing geometric shapes (Line Segment, Circle, Ellipse, Triangle, Rectangle, and Square) with shared properties for efficient implementation of an object-oriented drawing application.
- Develop an object-oriented model.
- Create a UML Class diagram illustrating classes, attributes, and methods.
- Apply inheritance and polymorphism concepts.
Build a popular web-based drawing and painting application with a vast feature set, including drawing, coloring, resizing, and undo/redo functionalities. Integrate a variety of built-in and extensible geometric shapes.
- Implement the geometric shapes model.
- Design and implement a GUI supporting Draw, Color, Resize, Move, Copy, and Delete functionalities.
- Enable undo/redo actions.
- Utilize the cursor for precise shape control, allowing users to draw by mouse dragging.
Enhance the application with the ability to save user drawings and modify them later.
- Provide an option in UI to save the drawing in XML (encoding: ISO-8859-1) and JSON file (You should implement both).
- Provide an option to load previously saved drawings and modify the shapes.
- Users must choose where to save the file.