An open API service indexing awesome lists of open source software.

https://github.com/chop1k/pendulum

Mathematical pendulum modeling
https://github.com/chop1k/pendulum

cpp math modeling qt university

Last synced: 3 months ago
JSON representation

Mathematical pendulum modeling

Awesome Lists containing this project

README

          

# Pendulum Simulation Project

This repository contains my university semester project for the "Mathematical and Computer Modeling" course during my second year. I'm proud to share that I completed this discipline with the highest possible score.

## Project Overview

### Goal

The course objective was to develop a GUI application capable of mathematically modeling physical processes. We had two options:

1. Create a single program modeling a complex physical process
2. Develop two separate programs for simpler physical phenomena

Given my limited background in physics and mathematics at the time, I opted for the second approach. This repository contains the first project - a mathematical pendulum simulation. The second project involved modeling light ray passage through a thin lens (unfortunately, I've lost the source files, though the project report remains).

### Technology Choices

I selected QT framework for several compelling reasons:

1. **Standing Out**: Among approximately 120 students, only a handful ventured beyond Python (which most used with obscure libraries, likely GPT-generated). Just two used JavaScript, one used Unity with .NET, and another used .NET with a graphics framework. Nobody used C or C++. Given that many local companies extensively use QT, this choice helped me stand out to our professor.

2. **Personal Preference**: I genuinely enjoy working with QT.

3. **Existing Expertise**: At the time, I already had C++ and QT experience, which gave me clear direction on implementation strategies and component selection.

## Project Details

### First Project: Mathematical Pendulum

**Implementation**:
- Used QT3D for visualization
- Employed Qt Quick with QML for the interface
- Created 3D models in Blender and exported them as mesh files

**UI Showcase**:

![Default Interface](./images/1_1.png)

**Features**:
- Scene configuration options
![Scene Settings](./images/1_2.png)
- Robust parameter validation
![Parameter Validation](./images/1_3.png)
- Real-time simulation
![Modeling in Action](./images/1_4.png)

### Second Project: Optical Lens Simulation

**Implementation**:
- Used widgets with Graphics View Framework

**UI Showcase**:

![Default Interface](./images/2_1.png)

**Interactive Features**:
- Intuitive object manipulation via mouse
![Object Movement](./images/2_2.png)
- Dynamic focus adjustment
![Focus Adjustment](./images/2_3.png)
- Lens type switching through object clicks
![Lens Type Switching](./images/2_4.png)
- Precise parameter control via side panel
![Side Panel Controls](./images/2_5.png)
- Camera navigation using touchpad
![Touchpad Navigation](./images/2_6.png)

## License

This project is available under the MIT License.