\documentclass[a4paper, 11pt]{article}

\usepackage[utf8]{inputenc}
\usepackage[T1]{fontenc}
\usepackage[dutch]{babel}
\usepackage[linesnumbered, algoruled, lined]{algorithm2e}
\usepackage{float}

\title{Project: Snijdende cirkels}
\author{Arthur Bols \& Ruben Van Laer}
\date{Mei 2019}

\begin{document}
\maketitle

	\section{Inleiding}
		In dit practicum trachten we aan de hand van algoritmes met vooropgestelde complexiteiten de snijpunten van een set van gegeven cirkels te bepalen.
	\section{Snijding van twee cirkels}
		
	\section{Hoogniveau beschrijving van de algoritmen}
		\subsection{Simpel algoritme $O(N^2)$}
			\begin{algorithm}[H]
				\{$cirkels$: lijst van cirkels met een middelpunt en een straal\}\\
				$S \gets \emptyset$ \{$S$: lijst met alle snijpunten\}\\
				\For{iedere $c_1$ in $cirkels$}{
					\For{iedere $c_2$ in $cirkels$}{
						$snpt \gets$ Snijpunten($c_1$,$c_2$)\\
						\If{$snpt \neq \emptyset$}{
							Voegtoe($S$,$snpt$)
						}
					}
				}
			\caption{Simpel Algoritme}
			\end{algorithm}
		\subsection{Doorlooplijnalgoritme $O(N^2)$}
			\begin{algorithm}[H]
				\{$cirkels$: lijst van cirkels met een middelpunt en een straal\}\\
				$E \gets \emptyset$ \{$E$: gesorteerde rij met de horizontale begin- en eindpunten van elke cirkel (ook wel de 'Events' van de doorlooplijn)\}\\
				\For{iedere $c$ in $cirkels$}{
					$p_1 \gets$ Beginpunt($c$)\\
					$p_2 \gets$ Eindpunt($c$)\\
					Voegtoe($E$, $p_1$)\\
					Voegtoe($E$, $p_2$)
				}
				$S \gets \emptyset$ \{$S$: lijst met alle snijpunten\}\\
				$A \gets \emptyset$ \{$A$: lijst met cirkels die snijden met de doorlooplijn\}\\
				\While{$E \neq \emptyset$}{
					$e \gets$ Kleinste($E$)\\
					Verwijder($E$, $e$)\\
					\If{$e$ is een beginpunt}{
						$c \gets$ Cirkel($e$)\\
						\For{iedere $c_i$ in $A$}{
							$snpt \gets$ Snijpunten($c$,$c_i$)\\
							\If{$snpt \neq \emptyset$}{
								Voegtoe($S$,$snpt$)
							}
						}
						Voegtoe($A$, $c$)\\
					}
					\If{$e$ is een eindpunt}{
						$c \gets$ Cirkel($e$)\\
						Verwijder($A$, $c$)
					}
				}
			\caption{Doorlooplijnalgoritme $O(N^2)$}
			\end{algorithm}
	\section{Beschrijving experimenten en correctheid}

	\section{Bespreking resultaten en rekentijden}

\end{document}
