Réflexions avec YB sur l'algo de génération de routes.

This commit is contained in:
Yoann 2011-10-17 16:08:55 +02:00
parent aaaa713889
commit aac7fec8fa
2 changed files with 15 additions and 8 deletions

View File

@ -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();

View File

@ -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.