bachelor-project-report/bachelorproject.tex

96 lines
2.5 KiB
TeX
Raw Normal View History

2023-05-19 10:24:58 +02:00
\documentclass{usiinfbachelorproject}
\usepackage[]{caption}
\usepackage[]{url}
\usepackage[]{subcaption}
\usepackage[]{float}
\usepackage{tikz}
\usepackage{tkz-euclide}
\usetikzlibrary{external,shapes,through}
\tikzexternalize[prefix=figures/]
\tikzstyle{none}=[]
\input{./tikzs/styles.tikzstyles}
\pgfdeclarelayer{nodelayer}
\pgfdeclarelayer{edgelayer}
\pgfsetlayers{edgelayer,nodelayer,main}
\graphicspath{{../figures/}{./figures/}}
\newcommand*{\vv}[1]{\overrightarrow{#1}}
\newcommand*{\figref}[1]{\figurename~\ref{#1}}
2023-05-19 10:24:58 +02:00
\captionsetup{labelfont={bf}}
\newcommand{\diff}{\mathop{}\!\mathrm{d}}
2023-05-19 10:24:58 +02:00
\author{Arnaud Fauconnet}
\title{From Flying Balls to Colliding Polygons}
2023-05-19 10:24:58 +02:00
\subtitle{2D Physics Engine: Rigid Body Simulation}
\versiondate{\today}
\begin{committee}
\advisor[Universit\`a della Svizzera Italiana,
Switzerland]{Prof.}{Antonio}{Carzaniga}
\end{committee}
\newcommand{\inputtikz}[2][1]{
\resizebox{#1 \textwidth}{!}{
\tikzsetnextfilename{#2}
\input{../tikzs/#2.tikz}
}
}
2023-05-19 10:24:58 +02:00
\abstract {
Physics engines are a fun and interesting way to learn about a lot of
different subjects. First the theoretical concepts, such as the equations
that dictate the motion of the objects, together with their components, need
to be thoroughly understood. Then there is the necessity of finding a way to
represent all of those concepts in a given programming language and to
make them as efficient as possible so that the simulation runs fluidly.
The task to be completed here was to extend an already existing
physics engine that only made circles bounce off each other. The extension
was focused on having the ability to generate some arbitrary polygons and
make them bounce off each other in a physically accurate way. The main
issues that rose up during the development of the extension: determining the
inertia of a arbitrary polygon, which is important for realistic
impacts; having an accurate collision detection system, which allows the
engine to know when to make two polygons bounce off each other. Once those
aspects were worked on and polished, the rest of the implementation went
smoothly.
}
\usepackage{subfiles} % Best loaded last in the preamble
\begin{document}
\maketitle
\tableofcontents
\newpage
2023-05-19 10:24:58 +02:00
\subfile{./sections/intro.tex}
\newpage
2023-05-19 10:24:58 +02:00
\subfile{./sections/tech_background.tex}
\newpage
2023-05-19 10:24:58 +02:00
\subfile{./sections/theoretical_background.tex}
\newpage
2023-05-19 10:24:58 +02:00
\subfile{./sections/solution.tex}
\newpage
2023-05-19 10:24:58 +02:00
\subfile{./sections/conclusion.tex}
\newpage
2023-05-19 10:24:58 +02:00
%%%%%
\bibliographystyle{unsrt}
2023-05-19 10:24:58 +02:00
\bibliography{references}
\newpage
\subfile{./sections/appendix.tex}
2023-05-19 10:24:58 +02:00
\end{document}