commit aac7fec8fabd3a5fb84c7f77bddc6183ed633b30
parent aaaa71388914fd65446bd6501a17a632519d0062
Author: Yoann <yoann.b87@voila.fr>
Date: Mon, 17 Oct 2011 16:08:55 +0200
Réflexions avec YB sur l'algo de génération de routes.
Diffstat:
2 files changed, 15 insertions(+), 8 deletions(-)
diff --git a/roads.c b/roads.c
@@ -30,13 +30,15 @@ int main() {
Vertex points[] = {
{ .x=10, .y=10 },
{ .x=790, .y=10 },
+ { .x=600, .y=300 },
{ .x=790, .y=590 },
{ .x=10, .y=590 },
};
+ int n = 5;
svg_start(800,600);
int i;
- for (i = 0; i < 4; i++) {
- svg_line(&(points[i]), &(points[(i+1)%4]));
+ for (i = 0; i < n; i++) {
+ svg_line(&(points[i]), &(points[(i+1)%n]));
}
roads(points);
svg_end();
diff --git a/roads.md b/roads.md
@@ -58,11 +58,11 @@ Comme une grille, mais les angles ne sont pas vraiment à 90°, et il y
a beaucoup de longues rues dans l'une ou l'autre des directions.
.________________________.
- | | | | |
- |___|________|______|____|
- | | |______|
- |_________|_______| |
- |______|__________|______|
+ | | | | |
+ |___|________|______|____|
+ | | |______|
+ |_________|_______| |
+ |______|__________|______|
TODO : trouver un algo pour générer des « murs »
@@ -86,7 +86,7 @@ monter ou descendre très légèrement pour rejoindre une autre ligne.
* Partir d'un point, et choisir le point à X de distance qui minimise
le dénivellé
-* Condinuer à partir du point ainsi créé, en s'interdisant les retours
+* Continuer à partir du point ainsi créé, en s'interdisant les retours
en arrière trop brutaux
* Arrêter la ligne quand le dénivellé devient trop important, ou quand
on rejoint une autre ligne.
@@ -128,3 +128,8 @@ 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).
+
+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.