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…