From 60644cddd09c23577b7997f8c314dac434ac1e5c Mon Sep 17 00:00:00 2001 From: Klafyvel Date: Tue, 19 Dec 2017 17:54:13 +0100 Subject: [PATCH] =?UTF-8?q?S=C3=A9ance=20du=2019/12/17?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- compte_rendu/Makefile | 21 ++ compte_rendu/MyPack2.sty | 155 ++++++++++ compte_rendu/compte_rendu.tex | 0 compte_rendu/gabriel_vs_delaunay.png | Bin 0 -> 36798 bytes compte_rendu/reseau_naif.png | Bin 0 -> 30947 bytes compte_rendu/reseau_naif_log.png | Bin 0 -> 28634 bytes compte_rendu/reseau_vs_reseauRapide.png | Bin 0 -> 30989 bytes compte_rendu/reseau_vs_reseauRapide_log.png | Bin 0 -> 34827 bytes graph.py | 33 -- graphe.py | 316 ++++++++++++++++++++ graphique.py | 195 ++++++++++++ polygone.py | 109 +++++++ tas.py | 136 +++++++++ test.py | 172 +++++++++++ triangulation.py | 299 ++++++++++++++++++ 15 files changed, 1403 insertions(+), 33 deletions(-) create mode 100644 compte_rendu/Makefile create mode 100644 compte_rendu/MyPack2.sty create mode 100644 compte_rendu/compte_rendu.tex create mode 100644 compte_rendu/gabriel_vs_delaunay.png create mode 100644 compte_rendu/reseau_naif.png create mode 100644 compte_rendu/reseau_naif_log.png create mode 100644 compte_rendu/reseau_vs_reseauRapide.png create mode 100644 compte_rendu/reseau_vs_reseauRapide_log.png delete mode 100644 graph.py create mode 100644 graphe.py create mode 100644 graphique.py create mode 100644 polygone.py create mode 100644 tas.py create mode 100644 test.py create mode 100644 triangulation.py diff --git a/compte_rendu/Makefile b/compte_rendu/Makefile new file mode 100644 index 0000000..3cf140d --- /dev/null +++ b/compte_rendu/Makefile @@ -0,0 +1,21 @@ +.PHONY: +.SUFFIXES: + +COMP = mdbg +OUT = cours +TITLE = "Microéconomie" +PACKAGE = "{{MyPack2}}" +AUTHOR = "Hugo LEVY--FALK" +DOCUMENTCLASS = "article" + +all: + $(COMP) $(OUT).mdbg --title $(TITLE) --packages $(PACKAGE) --date \\today --documentclass $(DOCUMENTCLASS) --author $(AUTHOR) + lualatex --shell-escape $(OUT).tex + lualatex --shell-escape $(OUT).tex + rm $(OUT).aux $(OUT).log $(OUT).out $(OUT).toc + rm $(OUT).tex + +clean: + rm $(OUT).aux $(OUT).log $(OUT).out $(OUT).toc + rm $(OUT).tex + diff --git a/compte_rendu/MyPack2.sty b/compte_rendu/MyPack2.sty new file mode 100644 index 0000000..840c748 --- /dev/null +++ b/compte_rendu/MyPack2.sty @@ -0,0 +1,155 @@ +\NeedsTeXFormat{LaTeX2e} +\ProvidesPackage{MyPack2} + +%%%%%%%% INCLUSIONS GÉNÉRALES %%%%%%%%% +\RequirePackage{babel} +%\RequirePackage{titlesec} +\RequirePackage{color} +\RequirePackage[a4paper]{geometry} +\RequirePackage[font=small,format=plain,labelfont=bf,up, + textfont=normal,up, + justification=justified, + singlelinecheck=false]{caption} +\RequirePackage[justification=centering]{caption} +\RequirePackage{xcolor} % Required for specifying custom colours +\definecolor{grey}{rgb}{0.9,0.9,0.9} % Colour of the box surrounding the title +\RequirePackage[utf8]{inputenc} % Required for inputting international characters + +\RequirePackage[T1]{fontenc} +% \RequirePackage[sfdefault]{ClearSans} % Use the Clear Sans font (sans serif) +\RequirePackage{placeins} +\RequirePackage{listings} +\RequirePackage{graphicx} +\RequirePackage{amsfonts} + + + +\definecolor{bleu}{RGB}{0,100,143} +\definecolor{gris}{RGB}{130,130,140} +\definecolor{grisBleu}{RGB}{65,115,141} + + + +%%%%%%%% MATH %%%%%%%%% +\RequirePackage{stmaryrd} +\newcommand*\intervalleEntier[2]{\intervalle{\llbracket}{#1}{#2}{\rrbracket}} +\newcommand*\intervalle[4]{\left#1 #2 \, ; #3 \right#4} +\newcommand*\intervalleOO[2]{\intervalle{]}{#1}{#2}{[}} +\newcommand*\intervalleFF[2]{\intervalle{[}{#1}{#2}{]}} +\newcommand*\intervalleOF[2]{\intervalle{]}{#1}{#2}{]}} +\newcommand*\intervalleFO[2]{\intervalle{[}{#1}{#2}{[}} + +\let\ensembleNombre\mathbb +\newcommand*\N{\ensembleNombre{N}} +\newcommand*\Z{\ensembleNombre{Z}} +\newcommand*\Q{\ensembleNombre{Q}} +\newcommand*\R{\ensembleNombre{R}} +\newcommand*\C{\ensembleNombre{C}} + +\newcommand*\enstq[2]{\left\{#1,\; #2\right\}} + +%\newcommand*\int[1]{\left\lfloor #1\right\rfloor} +%\newcommand*\norme[1]{\left\lVert#1\right\rVert} +%\newcommand*\abs[1]{\left\lvert#1\right\rvert} + +\let\vecteur\overrightarrow + +\newcommand*\Sys[1]{\left\{ \begin{aligned} #1 \end{aligned} \right. \kern-\nulldelimiterspace} + +\newcommand*\application[5]{ + #1 \colon + \begin{alignedat}{2}  &\to \\ +  &\mapsto  + \end{alignedat} +} +\newcommand*\applicationSigne[3]{ + #1 \colon #2 \to #3 +} + +\newtheorem{defi}{Définition}[section] +\newtheorem{theo}{Théorème}[section] +\newtheorem{prop}{Proposition}[section] +\newtheorem{ex}{Exemple}[section] + + +%%%%%%%% SECTIONNEMENT %%%%%%%%% + +%\renewcommand{\thesection}{\Roman{section}} +%\renewcommand{\thesubsection}{\arabic{subsection}} + +\newcommand*\emptyPage{\newpage\null\thispagestyle{empty}\addtocounter{page}{-1}\newpage} + +%%%%%%%% INTIALISATION DE LA PAGE %%%%%%%%% +\RequirePackage{fancyhdr} +\newcommand\initPage[3]{ + \pagestyle{fancy} + \fancyhead{#1} + \lhead{#2} + \rhead{#3} + \rfoot{} + \lfoot{} + + %\titleformat*{\section}{\Large\bfseries\color{bleu}\Roman{section}} + %\titleformat*{\subsection}{\large\bfseries\color{grisBleu}} + %\titleformat*{\subsubsection}{\bfseries\color{gris}} + %\titlespacing*{\section}{-3em}{*1}{*1} + %\titlespacing*{\subsection}{-2em}{*1}{*1} + %\titlespacing*{\subsubsection}{-1em}{*1}{*1} + +} + +%%%%%%%% TITRE %%%%%%%%M +\renewcommand{\maketitle}{ +\begin{titlepage} % Suppresses displaying the page number on the title page and the subsequent page counts as page 1 + %------------------------------------------------ + % Grey title box + %------------------------------------------------ + \topskip0pt + \vspace*{5cm} + \colorbox{grey}{ + \parbox[t]{0.93\textwidth}{ % Outer full width box + \parbox[t]{0.91\textwidth}{ % Inner box for inner right text margin + \raggedleft % Right align the text + \fontsize{72pt}{80pt}\selectfont % Title font size, the first argument is the font size and the second is the line spacing, adjust depending on title length + \vspace{1cm} % Space between the start of the title and the top of the grey box + + \@title + + \vspace{1cm} % Space between the end of the title and the bottom of the grey box + } + } + } + + \vfill % Space between the title box and author information + + %------------------------------------------------ + % Author name and information + %------------------------------------------------ + + \parbox[t]{0.93\textwidth}{ % Box to inset this section slightly + \raggedleft % Right align the text + \large % Increase the font size + {\Large \@author}\\[4pt] % Extra space after name + + \hfill\rule{0.2\linewidth}{1pt}\\% Horizontal line, first argument width, second thickness + \@date + } + +\end{titlepage} + +\emptyPage +} + + + +%%%%%%%% FIN DU DOCUMENT %%%%%%%%% + +\newcommand{\roadMap}{ + \clearpage + \listoffigures + \clearpage + \listoftables +} + +% Fin du package +\endinput diff --git a/compte_rendu/compte_rendu.tex b/compte_rendu/compte_rendu.tex new file mode 100644 index 0000000..e69de29 diff --git a/compte_rendu/gabriel_vs_delaunay.png b/compte_rendu/gabriel_vs_delaunay.png new file mode 100644 index 0000000000000000000000000000000000000000..72be2a74bcc25f5d515dbf56d5f0252d4e149678 GIT binary patch literal 36798 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 literal 0 HcmV?d00001 diff --git a/compte_rendu/reseau_naif_log.png b/compte_rendu/reseau_naif_log.png new file mode 100644 index 0000000000000000000000000000000000000000..e245df72b53805d80827b5252f1f389ff3cdc907 GIT binary patch literal 28634 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

|#2->IbvAm?8v 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 0): + chaine += str(self.sommets[0]) + for s in self.sommets[1:]: + chaine += ', ' + str(s) + chaine += ')' + return chaine + + def secoue(self, amplitudeAngulaire, amplitudeRadiale): + '''Fonction qui déplace aléatoirement chaque sommet selon une amplitude angulaire et radiale réglable''' + + # Modifie les coordonnées de chaque sommet à l'aide de la méthode deplace + for s in self.sommets: + s.deplace( + s.theta + (random.random() * 2. - 1.) * amplitudeAngulaire, + s.r * (1. + (random.random() * 2. - 1.) * amplitudeRadiale) + ) + + # Change le nom du polygone + self.nom = str(len(self.sommets)) + "-polygone secoué" + + + def trace(self, afficheur): + '''Fonction de dessin''' + + assert isinstance(afficheur, graphique.Afficheur) + + afficheur.renomme(self.nom) + precedent = self.sommets[-1] + afficheur.changeCouleur((0.,0.,0.)) + + for suivant in self.sommets: + afficheur.traceLigne(precedent.pos, suivant.pos) + precedent = suivant + + afficheur.changeCouleur((1.,0.,0.)) + for sommet in self.sommets: + afficheur.tracePoint(sommet.pos) + + +if __name__ == "__main__": + triangle = Polygone(3, 10.) + print(triangle) + graphique.affiche(triangle, (0., 0.), 10., blocage = False) + + heptagone = Polygone(7, 10.) + heptagone.secoue(math.pi / 5, 0.1) + graphique.affiche(heptagone, (0., 0.), 10.) diff --git a/tas.py b/tas.py new file mode 100644 index 0000000..47f63df --- /dev/null +++ b/tas.py @@ -0,0 +1,136 @@ +# coding: utf-8 + +class Tas: + class Element: + def __init__(self, valeur, priorite, index): + self.valeur = valeur + self.priorite = priorite + self.index = index + + def __str__(self): + return str(self.valeur) + + def __init__(self, fonctionPriorite): + self.L = [] + self.fonctionPriorite = fonctionPriorite + + def __str__(self): + s = "[" + for elt in self.L: + s += " " + str(elt) + s += "]" + return s + + def __parent(self, elt): + if(elt.index == 0): + return None + else: + return self.L[(elt.index-1) // 2] + + def __fils_gauche(self, elt): + i = 2 * elt.index + 1 + if(i < len(self.L)): + return self.L[i] + else: + return None + + def __fils_droit(self, elt): + i = 2 * elt.index + 2 + if(i < len(self.L)): + return self.L[i] + else: + return None + + def __deplace(self, elt, index): + assert isinstance(elt, Tas.Element) + ancien = elt.index + self.L[index] = elt + elt.index = index + return ancien + + def __promeut(self, elt): + while(True): + parent = self.__parent(elt) + if(parent == None): + break + if(parent.priorite >= elt.priorite): + break + elt.index = self.__deplace(parent, elt.index) + self.__deplace(elt, elt.index) + + def actualise(self, elt): + assert isinstance(elt, Tas.Element) + elt.priorite = self.fonctionPriorite(elt.valeur) + self.__promeut(elt) + + def ajoute(self, valeur): + elt = Tas.Element(valeur, self.fonctionPriorite(valeur), len(self.L)) + self.L.append(elt) + self.__promeut(elt) + return elt + + def empty(self): + return len(self.L) == 0 + + def pop(self): + n = len(self.L) + if(n == 0): + return None + + tete = self.L[0] + elt = self.L[n - 1] + elt.index = 0 + + while True: + filsGauche = self.__fils_gauche(elt) + filsDroit = self.__fils_droit(elt) + plusPrioritaire = elt + if(filsGauche != None and filsGauche.priorite > plusPrioritaire.priorite): + plusPrioritaire = filsGauche + if(filsDroit != None and filsDroit.priorite > plusPrioritaire.priorite): + plusPrioritaire = filsDroit + elt.index = self.__deplace(plusPrioritaire, elt.index) + if(plusPrioritaire is elt): + break + self.L.pop() + return tete.valeur + +######################################### +# Exemple d'utilisatio de la classe Tas # +# Tri de tâches par ordre chronologique # +######################################### + +class Tache: + '''Tache devant être effectuée avant une date limite''' + def __init__(self, jour, nom): + self.jour = jour + self.nom = nom + # Cet attribut servira à accueillir la clé du tas + self.cle = None + + def __str__(self): + return self.nom + " ({})".format(self.jour) + +if __name__ == "__main__": + + # Le niveau de priorité d'un événement x est -x.jour : on trie donc les événements par ordre chronologique + def calculePriorite(tache): + return -tache.jour + + # On crée un tas dont les éléments sont des événements triés par ordre chronologique + T = Tas(calculePriorite) + + # Ajoute des événements au tas + evts = [ Tache(5, "T1"), Tache(10, "T2"), Tache(5, "T3"), Tache(3, "T4")] + for evt in evts: + evt.cle = T.ajoute(evt) + + # Supposons que la tache 2 devienne soudain assez urgente + evts[1].jour = 4 + T.actualise(evts[1].cle) + + # Retirons dans l'ordre chronologie les éléments du tas + while(not T.empty()): + print(T.pop()) + + diff --git a/test.py b/test.py new file mode 100644 index 0000000..7a3e89b --- /dev/null +++ b/test.py @@ -0,0 +1,172 @@ +import graphe +import graphique +import copy +import numpy as np +import matplotlib.pyplot as pl +import time + + +def creerGrapheFigure1(): + """ Crée le graphe de la figure 1 """ + g = graphe.Graphe("Graphe de la figure 1") + s1 = g.ajouteSommet(1.0, 1.0) + s2 = g.ajouteSommet(2.0, 3.5) + s3 = g.ajouteSommet(2.5, 2.5) + s4 = g.ajouteSommet(5.0, 2.0) + s1.couleur = (1., 1., 0.) + s2.couleur = (0., 0., 1.) + s3.couleur = (1., 0., 0.) + s4.couleur = (1., 1., 0.) + a = g.connecte(s1, s2, 4.0, 90.) + a.couleur = (1., 1., 0.) + g.connecte(s1, s4, 5.2, 124.) + g.connecte(s2, s3, 2.0, 54.) + g.connecte(s2, s4, 5.0, 90.) + return g + + +def testQuestion1_2(): + """' Teste que la création d ' un graphe ne plante pas + print ”Question 1.2 :""" + creerGrapheFigure1() + print("Ok. Pas de plantage") + + +def testQuestion1_3(): + """ Teste l ' affichage d ' un graphe dans la console""" + print("Question 1.3 :") + g = creerGrapheFigure1() + print(g) + + +def testQuestion1_4(): + """ Teste du dessin d'un graphe.""" + print("Question 1.4:") + graphique.affiche(creerGrapheFigure1(), (3., 2.), 100.) + + +def testQuestion2_2(): + """Teste de génération aléatoire de graphe.""" + print("Question 2.2:") + graphique.affiche(graphe.pointsAleatoires(5, 30), (0, 0), 10.) + + +def testQuestion2_4(): + """Teste de gabriel et gvr.""" + print("Question 2.4") + g = graphe.pointsAleatoires(30, 30) + g.renomme("Gabriel") + g1 = copy.deepcopy(g) + g1.renomme("GVR") + graphe.gabriel(g) + graphe.gvr(g1) + graphique.affiche(g, (0, 0), 10.) + graphique.affiche(g1, (0, 0), 10.) + + +def testQuestion2_5(): + """Teste de la création de réseau.""" + g = graphe.pointsAleatoires(30, 30) + graphe.reseau(g) + graphique.affiche(g, (0, 0), 10.) + + +def chronometre(fonctionTest, fonctionPreparation, parametres): + ''' Mesure le temps d ' exécution fonctionTest pour différentes valeurs d ' + un paramètres ''' + temps = [] + # Pour chaque valeur de paramètre + for p in parametres: + # Génère les entrées du test pour la valeur p + entrees = fonctionPreparation(p) + # Lance le test pour ces entrées + print("t({}) = ".format(p), end="", flush=True) + debut = time.time() + fonctionTest(entrees) + fin = time.time() + # Mesure le temps d ' exécution + t = (fin - debut) + print("{:.2f} s".format(t)) + temps.append(t) + return temps + +def testQuestion2_6(): + """Mesure la performance de graphe.reseau""" + prepare = lambda p : graphe.pointsAleatoires(p, 10) + valeurs_n = np.arange(1, 200) + temps = chronometre(graphe.reseau, prepare, valeurs_n) + pl.close('all') + pl.title("Mesure du temps d'exécution de `reseau`.") + pl.plot(valeurs_n, temps) + pl.xlabel("n") + pl.ylabel("temps") + pl.show() + pl.title("Mesure du temps d'exécution de `reseau`.") + pl.loglog(valeurs_n, temps, label='temps de calcul') + pl.loglog(valeurs_n, (lambda x : x**3)(valeurs_n), label='$x\mapsto x^3$') + pl.legend(loc='best') + pl.xlabel("n") + pl.ylabel("temps") + pl.show() + +def testQuestion2_7(): + """Compare la création de graphe de gabriel et ed delaunay.""" + prepare = lambda p : graphe.pointsAleatoires(p, 10) + valeurs_n = np.arange(1, 200) + temps1 = chronometre(graphe.gabriel, prepare, valeurs_n) + temps2 = chronometre(graphe.delaunay, prepare, valeurs_n) + pl.close('all') + pl.title("Comparaison du temps pour `delaunay` et `gabriel`") + pl.plot(valeurs_n, temps1, label='gabriel') + pl.plot(valeurs_n, temps2, label='delaunay') + pl.legend(loc='best') + pl.xlabel('n') + pl.ylabel('temps') + pl.show() + +def testQuestion2_8(): + """Compare le reseau naif et non naif.""" + g = graphe.pointsAleatoires(30, 30) + g1 = copy.deepcopy(g) + g.renomme("Naïf") + g1.renomme("Non naïf") + + graphe.reseau(g) + graphe.reseauRapide(g1) + graphique.affiche(g, (0, 0), 10.) + graphique.affiche(g1, (0, 0), 10.) + +def testQuestion2_9(): + """Compare le temps de création des deux méthodes de création de réseau""" + prepare = lambda p : graphe.pointsAleatoires(p, 10) + valeurs_n = list(map(lambda x: int(x), np.logspace(1, 3, 30))) + temps1 = chronometre(graphe.reseau, prepare, valeurs_n) + temps2 = chronometre(graphe.reseauRapide, prepare, valeurs_n) + pl.close('all') + pl.title("Comparaison du temps d'exécution de `reseau` et `reseauRapide`.") + pl.plot(valeurs_n, temps1, label='reseau') + pl.plot(valeurs_n, temps2, label='reseauRapide') + pl.legend(loc='best') + pl.xlabel("n") + pl.ylabel("temps") + pl.show() + pl.title("Comparaison du temps d'exécution de `reseau` et `reseauRapide`.") + pl.loglog(valeurs_n, temps1, label='reseau') + pl.loglog(valeurs_n, temps2, label='reseauRapide') + pl.legend(loc='best') + pl.xlabel("n") + pl.ylabel("temps") + pl.show() + + + +# testQuestion1_2() +# testQuestion1_3() +# testQuestion1_4() +# testQuestion2_2() +# testQuestion2_4() +# testQuestion2_5() +# testQuestion2_6() +# testQuestion2_7() +# testQuestion2_8() +testQuestion2_9() diff --git a/triangulation.py b/triangulation.py new file mode 100644 index 0000000..4115fa4 --- /dev/null +++ b/triangulation.py @@ -0,0 +1,299 @@ +# coding: utf-8 + +import sys +import math + + +def distanceAuCarre(v1, v2): + dx = (v1.x() - v2.x()) + dy = (v1.y() - v2.y()) + return dx**2 + dy**2 + + +def conditionDeDelaunay(A, B, C, D): + dab2 = distanceAuCarre(A, B) + dad2 = distanceAuCarre(A, D) + dbc2 = distanceAuCarre(B, C) + dbd2 = distanceAuCarre(B, D) + dcd2 = distanceAuCarre(C, D) + cosa = (dab2 + dad2 - dbd2) / (2 * math.sqrt(dab2) * math.sqrt(dad2)) + cosc = (dbc2 + dcd2 - dbd2) / (2 * math.sqrt(dbc2) * math.sqrt(dcd2)) + sina2 = 1. - cosa * cosa + if(sina2 > 0.): + sina = math.sqrt(sina2) + else: + sina = 0. + sinc2 = 1. - cosc * cosc + if(sinc2 > 0.): + sinc = math.sqrt(sinc2) + else: + sinc = 0. + return sina * cosc + cosa * sinc >= 0 + + +class Triangulation: + + class QuadEdge: + '''Classe définissant un quad-edge : une arête connectée à deux faces et deux sommets''' + + def __init__(self, f1, f2, v1, v2): + self.f1 = f1 + self.f2 = f2 + self.v1 = v1 + self.v2 = v2 + + def __eq__(self, e): + '''Méthode qui teste si deux quad-edges ont même extrémités''' + if((self.v1 == e.v1) and (self.v2 == e.v2)): + return True + elif((self.v1 == e.v2) and (self.v2 == e.v1)): + return True + else: + return False + + def __str__(self): + return str(self.v1) + " - " + str(self.v2) + + def remplaceFace(self, ancienneFace, nouvelleFace): + '''Méthode qui remplace une face adjacente au quad-edge par une autre''' + if(self.f1 == ancienneFace): + self.f1 = nouvelleFace + else: + self.f2 = nouvelleFace + + def lanceAlgorithme(self): + # Construit la triangulation initiale. Complexité en O(n log(n)) + self.construitTriangulationInitiale() + + # Bascule les arêtes de la triangulation jusqu'à obtenir la triangulation de Delaunay + self.basculeAretes() + + # Efface les sommets à l'infini + for _ in range(3): + self.graphe.sommets.pop() + + def __init__(self, g): + '''Constructeur de la classe triangulation qui prend en entrée un nuage de points + et crée une triangulation de Delaunay''' + self.racine = None + self.quadEdges = [] + self.graphe = g + self.lanceAlgorithme() + + class Triangle: + def __init__(self, v1, v2, v3): + self.v1 = v1 + self.v2 = v2 + self.v3 = v3 + self.t12 = None + self.t13 = None + self.t23 = None + self.e12 = None + self.e13 = None + self.e23 = None + + def contient(self, v): + ''' Méthode qui teste si un sommet est à l'intérieur d'un triangle''' + v1 = self.v1 + v2 = self.v2 + v3 = self.v3 + det = (v1.x() - v3.x()) * (v2.y() - v3.y()) - \ + (v1.y() - v3.y()) * (v2.x() - v3.x()) + c1 = ((v2.y() - v3.y()) * (v.x() - v3.x()) + + (v3.x() - v2.x()) * (v.y() - v3.y())) * det + c2 = ((v3.y() - v1.y()) * (v.x() - v3.x()) + + (v1.x() - v3.x()) * (v.y() - v3.y())) * det + return (c1 > 0) and (c2 > 0) and (c1 + c2 < det * det) + + def trouve(self, v): + '''Méthode récursive qui renvoie le triangle d'une triangulation qui contient un sommet. + Renvoie le triangle contenant v, None si v n'est pas dans la triangulation''' + + t12 = self.t12 + t13 = self.t13 + t23 = self.t23 + if(t12 == None): + return self + else: + if(t12.contient(v)): + return t12.trouve(v) + elif(t13.contient(v)): + return t13.trouve(v) + elif(t23.contient(v)): + return t23.trouve(v) + else: + return None + + def aPourSommet(self, v): + '''Méthode qui teste si un sommet est un sommet d'un triangle + Renvoie vrai si v est un sommet du triangle''' + return self.v1 == v or self.v2 == v or self.v3 == v + + def troisiemeSommet(self, a, b): + ''' Renvoie le troisième sommet d'un triangle à partir des deux autres''' + + if(self.v1 != a and self.v1 != b): + return self.v1 + elif(self.v2 != a and self.v2 != b): + return self.v2 + else: + return self.v3 + + def remplaceSommet(self, ancienSommet, nouveauSommet): + ''' Méthode qui substitue un sommet par un autre dans un triangle ''' + if(self.v1 == ancienSommet): + self.v1 = nouveauSommet + elif(self.v2 == ancienSommet): + self.v2 = nouveauSommet + elif(self.v3 == ancienSommet): + self.v3 = nouveauSommet + else: + raise Exception("Bad vertex" + ancienSommet) + + def retrouveArete(self, v1, v2): + '''Méthode qui renvoie le quad-edge d'un triangle ayant deux sommets pour extrêmités''' + e = Triangulation.QuadEdge(None, None, v1, v2) + if(self.e12 == e): + return self.e12 + elif(self.e13 == e): + return self.e13 + elif(self.e23 == e): + return self.e23 + else: + raise Exception("getEdge") + + def remplaceArete(self, ancienneArete, nouvelleArete): + '''Méthode qui substitue le quad-edge d'un triangle par un autre''' + if(self.e12 == ancienneArete): + self.e12 = nouvelleArete + elif(self.e13 == ancienneArete): + self.e13 = nouvelleArete + elif(self.e23 == ancienneArete): + self.e23 = nouvelleArete + else: + raise Exception("changeEdge") + + def construitTriangleInitial(self): + '''Méthode qui construit une triangulation initiale qui contient tous les sommets''' + xmin = sys.float_info.max + xmax = sys.float_info.min + ymin = sys.float_info.max + ymax = sys.float_info.min + + for v in self.graphe.sommets: + if(v.x() > xmax): + xmax = v.x() + if(v.x() < xmin): + xmin = v.x() + if(v.y() > ymax): + ymax = v.y() + if(v.y() < ymin): + ymin = v.y() + + largeur = xmax - xmin + hauteur = ymax - ymin + margex = 0.1 * largeur + margey = 0.1 * hauteur + + v1 = self.graphe.ajouteSommet( + xmin - largeur / 2 - margex, ymin - margey) + v2 = self.graphe.ajouteSommet( + xmax + largeur / 2 + margex, ymin - margey) + v3 = self.graphe.ajouteSommet( + (xmin + xmax) / 2, ymax + hauteur + margey) + + self.racine = Triangulation.Triangle(v1, v2, v3) + + e12 = Triangulation.QuadEdge(None, self.racine, v1, v2) + e13 = Triangulation.QuadEdge(None, self.racine, v1, v3) + e23 = Triangulation.QuadEdge(None, self.racine, v2, v3) + self.racine.e12 = e12 + self.racine.e13 = e13 + self.racine.e23 = e23 + + def supprimeAretes(self): + for s in self.graphe.sommets: + s.aretes.clear() + + def construitTriangulationInitiale(self): + self.quadEdges = [] + self.construitTriangleInitial() + + for v in self.graphe.sommets: + t = self.racine.trouve(v) + if(t != None): + t.t12 = Triangulation.Triangle(t.v1, t.v2, v) + t.t13 = Triangulation.Triangle(t.v1, t.v3, v) + t.t23 = Triangulation.Triangle(t.v2, t.v3, v) + + e1v = Triangulation.QuadEdge(t.t12, t.t13, t.v1, v) + e2v = Triangulation.QuadEdge(t.t12, t.t23, t.v2, v) + e3v = Triangulation.QuadEdge(t.t13, t.t23, t.v3, v) + self.quadEdges.append(e1v) + self.quadEdges.append(e2v) + self.quadEdges.append(e3v) + + t.t12.e12 = t.e12 + t.e12.remplaceFace(t, t.t12) + t.t12.e13 = e1v + t.t12.e23 = e2v + + t.t13.e12 = t.e13 + t.e13.remplaceFace(t, t.t13) + t.t13.e13 = e1v + t.t13.e23 = e3v + + t.t23.e12 = t.e23 + t.e23.remplaceFace(t, t.t23) + t.t23.e13 = e2v + t.t23.e23 = e3v + + def basculeAretes(self): + pile = [] + for qe in self.quadEdges: + pile.append(qe) + + while(len(pile) > 0): + e = pile.pop() + + f1 = e.f1 + f2 = e.f2 + if(f1 != None and f2 != None): + v1 = e.v1 + v2 = e.v2 + + v3 = f1.troisiemeSommet(v1, v2) + v4 = f2.troisiemeSommet(v1, v2) + + if(not conditionDeDelaunay(v3, v1, v4, v2)): + v1v3 = f1.retrouveArete(v1, v3) + v2v3 = f1.retrouveArete(v2, v3) + v1v4 = f2.retrouveArete(v1, v4) + v2v4 = f2.retrouveArete(v2, v4) + f1.remplaceArete(v2v3, v1v4) + f2.remplaceArete(v1v4, v2v3) + v2v3.remplaceFace(f1, f2) + v1v4.remplaceFace(f2, f1) + f1.remplaceSommet(v2, v4) + f2.remplaceSommet(v1, v3) + e.v1 = v3 + e.v2 = v4 + pile.append(v1v3) + pile.append(v2v3) + pile.append(v1v4) + pile.append(v2v4) + + def construitGrapheDeSortie(self, selectionneArete): + '''Méthode qui construit la triangulation de Delaunay à partir du nuage de points passé au constructeur''' + + # Sélectionne les arêtes + graphe = self.graphe + racine = self.racine + for qe in self.quadEdges: + v1 = qe.v1 + v2 = qe.v2 + if(not (racine.aPourSommet(v1) or racine.aPourSommet(v2))): + v3 = qe.f1.troisiemeSommet(v1, v2) + v4 = qe.f2.troisiemeSommet(v1, v2) + selectionneArete(graphe, v1, v2, v3, v4) + return self.graphe