This project is an implementation of a 2D graphics package in C++. It provides various functionalities for drawing and manipulating shapes using object-oriented programming principles. The package supports the following features:
- Changing the background of the window to white
- Modifying the shape of the window mouse
- Interacting with the window using only the mouse
- Combining the console and window functionalities
- Choosing the shape color before drawing from the menu
- Clearing the screen from shapes
- Saving the data in the screen to a file
- Loading data from files
- Implementing line algorithms (DDA, Midpoint, and parametric)
- Implementing circle algorithms (Direct, Polar, Iterative Polar, Midpoint, and Modified Midpoint)
- Filling a circle with lines after selecting a filling quarter from the user
- Filling a circle with other circles after selecting a filling quarter from the user
- Filling a square with a Hermit Curve (Vertical)
- Filling a rectangle with a Bezier Curve (Horizontal)
- Convex and Non-Convex Filling Algorithm
- Recursive and Non-Recursive Flood Fill
- Cardinal Spline Curve
- Ellipse Algorithms (Direct, Polar, and Midpoint)
- Clipping algorithms using a rectangle or square as a Clipping Window (Point, Line, Polygon)
To use this 2D graphics package, you can clone the repository and compile the C++ source files.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
Please make sure to update tests as appropriate.
๐ค Michael Maher
- Twitter: @Michael___Maher
- Github: @Michael-M-aher
Please โญ๏ธ this repository if this project helped you!
This project is licensed under the MIT License.