From f9f2218dd89b62a7d0af2b95f9a9712934e4ed1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Tue, 18 Oct 2011 09:57:59 +0200 Subject: [PATCH] Quelques modifs sur les algos. --- roads.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/roads.md b/roads.md index 924ed26..f8b7cbe 100644 --- a/roads.md +++ b/roads.md @@ -106,7 +106,7 @@ routes. Points proches -------------- -Énumérer les points et lignes proches d'un point donné. +Énumérer les points proches d'un point donné. Pour cela, faire un quadtree (un arbre avec 4 fils à chaque noeud) représentant des carrés composés de quatre carrés, et stocker dans @@ -115,6 +115,11 @@ noeuds feuille listent les points qu'ils contiennent. Quand on dépasse un certain seuil pour le nombre de points contenus dans un noeud feuille, on le subdivise. +Lignes proches +-------------- + +Énumérer les lignes proches d'un point donné. + Quand on ajoute un point au graphe des routes, on l'insère à la bonne position dans le quadtree. @@ -122,9 +127,19 @@ Quand on trace un segment entre deux points, on indique sa présence dans tous les noeuds qu'il traverse. *TODO* : cela coûte cher en temps et en espace ! +Autre possibilité : forcer les routes à être sur le bord de polygones +(comme les rivières). Quand on veut tracer une route quelque part, on +subdivise le polygone contenant pour que le nouveau point soit sommet +d'au moins un des polygones, et la route côté de ce polygone. + Intérieur d'un polygone -------------------- Pouvoir sélectionner aléatoirement des points à l'intérieur d'un polygone (pour pouvoir faire les centres des réseaux concentriques par exemple). + +Angles et vecteurs +------------------ + +Pouvoir ajouter un vecteur à un point, appliquer une rotation sur le vecteur…