Initial commit
This commit is contained in:
1
sections/conclusion.tex
Normal file
1
sections/conclusion.tex
Normal file
@ -0,0 +1 @@
|
||||
\section{Conclusion}
|
25
sections/intro.tex
Normal file
25
sections/intro.tex
Normal 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
1
sections/solution.tex
Normal file
@ -0,0 +1 @@
|
||||
\section{Proposed solution}
|
20
sections/tech_background.tex
Normal file
20
sections/tech_background.tex
Normal 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}
|
1
sections/theoretical_background.tex
Normal file
1
sections/theoretical_background.tex
Normal file
@ -0,0 +1 @@
|
||||
\section{Theoretical Background}
|
Reference in New Issue
Block a user