Initial commit

This commit is contained in:
Karma Riuk
2023-05-19 10:24:58 +02:00
commit 7c345469e9
14 changed files with 756 additions and 0 deletions

1
sections/conclusion.tex Normal file
View File

@ -0,0 +1 @@
\section{Conclusion}

25
sections/intro.tex Normal file
View File

@ -0,0 +1,25 @@
\section{Introduction}
\subsection{Goal of the project}
The goal of the project was to extend an existing physics engine called
"flying-balls"\footnote{The state of the project before the extension can be
found at \url{https://github.com/carzaniga/flying-balls/tree/c++-port}} by Prof. Antonio
Carzaniga. This physics engine simulated the interactions between circles in a
two-dimensional space. These circles appear in the window with a random
position, together with a random initial velocity vector. The simulation would
then just calculate the position of each circle in the following frame and draw
it in its new state. If two circles were to collide with each other, the engine
would detect it and make those circles bounce off each other. The resulting
position and speed would be decided by the physics equations that govern the
motion of such objects.
The extension this project was asked to bring is the possibility to have more
complex shapes interact with each other, such as polygons. The polygons would
have to be arbitrary and bounce off other polygons present in the scene.
\subsection{State of the art}
There are a lot of 2D physiques engines across the internet. The purpose of this
project was not to bring something new to the already existing landscape, but
rather learn how to complete every step of the process (polygons generation,
collision detection, kinematics resolution) from scratch, simply having a
pre-existing way to represent the shapes on the screen.

1
sections/solution.tex Normal file
View File

@ -0,0 +1 @@
\section{Proposed solution}

View File

@ -0,0 +1,20 @@
\section{Technical Background}
The technical background is all the research related to the programming part of
this bachelor project. The programming language used in this project is a
mixture of C and C++, for this part, the course of Systems Programming taught by
Prof. Carzaniga during the third semester. Then came the study of the starting
point of the project, which was divided in the logic itself and the framework
used to display the state of the simulation on the screen.
\subsection{Original project}
Before starting to write any code, it was necessary to study carefully the
original project. The starting point of chosen for this specific project was the
last commit on the \texttt{c++-port} branch. The reason for this choice is that
the project originally started fully in C (which is still the case for the
\texttt{main} branch) and C++ offers more functionalities that help for a
smoother development process.
\subsection{Cairo}

View File

@ -0,0 +1 @@
\section{Theoretical Background}