From b04126a20840b04e0ab13db5d0719898a0322e8c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Georges=20Dup=C3=A9ron?= Date: Mon, 24 Oct 2011 14:51:56 +0200 Subject: [PATCH] =?UTF-8?q?Ajout=20de=20l'algo=20"champs=20de=20force"=20q?= =?UTF-8?q?ue=20j'avais=20oubli=C3=A9=20de=20commit.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- roads.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/roads.md b/roads.md index 5ab81e8..01f39ce 100644 --- a/roads.md +++ b/roads.md @@ -154,3 +154,26 @@ 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. + +Algo champs de force +==================== + +* On choisit un certain nombre de champs de force + sur le quartier à subdiviser (centre, rayon, + type = fonction(x,y,vecteur en cours)). +* On a un champ de force par défaut qui s'applique + sur toute la zone. +* On part d'un point avec un vecteur aléatoire. +* On demande à fonction(x,y,vecteur) la direction + à prendre et la longueur à suivre. La fonction + peut renvoyer plusieurs directions/longueurs à + prendre pour faire un split. +* Quand le segment donné par fonction s'intersecte + avec un autre segment, on s'arrête là, et quand + il y a un point suffisemment proche, on peut s'y + raccrocher avec une certaine probabilité. +* Quand on a plusieurs routes en cours de + construction en parallèle (split), on les met + dans une file d'attente round-robin, et on sort + à chaque fois la tête de liste pour la faire + avancer, puis on la remet à la fin.