This project is a Computer Graphics (CG) course assignment implemented using C++ with OpenGL in Code::Blocks.
The objective of this assignment is to practice 3D modeling, transformation, and rendering techniques using OpenGL.
The modeled object is a water-saving floor cleaning robot, designed with an environmental protection concept:
- The robot can collect moisture from the air and convert it into water for floor mopping.
- The dry air output is reused to blow-dry the floor after cleaning.
The project focuses on visual modeling and graphics implementation, rather than physical simulation or hardware control.
The design concept of the robot combines floor cleaning and water conservation:
-
Moisture absorption module
Simulates the idea of extracting water vapor from the air and storing it as a water source for mopping. -
Mopping module
Uses the collected water to clean the floor surface. -
Drying module
Releases dry air to accelerate floor drying after mopping.
This concept is represented visually through 3D geometric modeling in OpenGL.
- Programming Language: C++
- Graphics Library: OpenGL
- IDE: Code::Blocks
- Platform: Desktop (Windows)
The project applies basic computer graphics techniques taught in the course, including:
- Primitive-based modeling (cubes, cylinders, etc.)
- Hierarchical object composition
- Geometric transformations:
- Translation
- Rotation
- Scaling
- Color and simple material settings
- Coordinate system and viewpoint control
- Rendering pipeline using OpenGL
The robot model is composed of multiple parts, such as:
- Main body
- Water collection module
- Mopping component
- Air outlet for drying
- Wheels / base structure
Each component is modeled separately and combined using transformation matrices to form the complete robot.
- Open Code::Blocks.
- Create or open the C++ OpenGL project.
- Ensure OpenGL libraries are correctly configured.
- Build and run the project.
- The 3D model of the water-saving cleaning robot will be displayed in the OpenGL window.
- This project is intended for academic and learning purposes only.
- The robot’s functionality is conceptual and visual, not a physical simulation.
- The focus of the assignment is on 3D modeling and rendering, rather than real-world feasibility.
Coursework for Computer Graphics
Implemented using C++ and OpenGL in Code::Blocks