commit 2829a36da4201080aba66df37a0392f60dc48538
parent db11a3ffb752c69909a92033e48023558dc81f52
Author: Yoann <yoann.b87@voila.fr>
Date: Tue, 18 Oct 2011 10:08:01 +0200
Merge branch 'master' of https://github.com/jsmaniac/2011-m2s3-city-builder
Diffstat:
| M | roads.md | | | 27 | ++++++++++++++++++++++++--- |
1 file changed, 24 insertions(+), 3 deletions(-)
diff --git a/roads.md b/roads.md
@@ -25,7 +25,8 @@ Algo 1
* Choisir un angle.
* Tracer des routes suivant cet angle et cet angle + 90°.
-* Les routes doivent pouvoir être assez longues (le tracé doit survivre à une intersection).
+* Les routes doivent pouvoir être assez longues (le tracé doit
+ survivre à une intersection).
Algo 2
@@ -106,7 +107,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 +116,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,6 +128,11 @@ 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
--------------------
@@ -129,7 +140,17 @@ 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…
+
Algo déformation de coordonées
==============================
-Partir d'une grille idéale carrée et appliquer des déformations de coordonnées dessus, plus une fonction de densité de points (taille des bâtiments). Dé-transformer la fonction de densité de points, l'utiliser pour générer la grille parfaite avec des densités différentes, puis transformer cette grille.
+Partir d'une grille idéale carrée et appliquer des déformations de
+coordonnées dessus, plus une fonction de densité de points (taille des
+bâtiments). Dé-transformer la fonction de densité de points,
+l'utiliser pour générer la grille parfaite avec des densités
+différentes, puis transformer cette grille.