IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Algorithmes et structures de données Discussion :

City cuilder : utiliser la théorie des graphes pour modéliser le réseau routier ?


Sujet :

Algorithmes et structures de données

  1. #1
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut City cuilder : utiliser la théorie des graphes pour modéliser le réseau routier ?
    Bonjour,

    J'essaie de développer un city builder sur Unreal Engine 4 (c++).

    Pour modéliser le réseau routier et leurs intersections, j'utilise bien sur un graphe.

    Selon vous est-ce la meilleure façon de structurer mon code?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
     
    Enum NodeType{i, t, x} // types d'intersection, x est un carrefour , i une subdivision (pas d'intersection) pour le LOD (splines plus fluides car contenant plus de points), x un carrefour...
    Enum SegmentType { Alley, Avenue, Boulevard, Freeway, Interstate, ... }
     
    Struct Node{
          Fvector Location;
          NodeType type;
          Segment * Segments[10] // une intersection a maximum 10 routes qui convergent vers elle
    }
     
    Struct Segment{
          Node * From;
          Node * To;
          bool TwoWay; //sens unique ou double sens
          SegmentType type;
    }
     
     
    class GraphManager
    {
    	Node * Nodes[];
            Segment *  Segments[];
            int Lod; // level of details
     
    public or private :
     
            void CreateNode(FVector Location);
            void DeleteNode(Node * Nod);
            void CreateSpline(void);
     
    ...
     
    };

  2. #2
    Responsable Qt & Livres


    Avatar de dourouc05
    Homme Profil pro
    Ingénieur de recherche
    Inscrit en
    Août 2008
    Messages
    26 618
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Ingénieur de recherche
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2008
    Messages : 26 618
    Points : 188 591
    Points
    188 591
    Par défaut


    Je suppose que tu auras une série d'agents qui devront déterminer des plus courts chemins (de la maison vers le boulot, par exemple). Dans ce cas, tu n'as pas d'autre choix que d'utiliser un graphe (peu importe le nom que tu donnes) ; par contre, tu peux complètement ignorer la forme exacte de la route : tout ce que tu veux, c'est le temps pour traverser un bout de route (proportionnel à sa longueur et à la vitesse maximum, tu pourrais aussi considérer les embouteillages de la même manière).

    Si tu te limites à l'affichage, au contraire, ce que tu veux, c'est "juste" la forme exacte de la route et des intersections. Ça ressemble encore à un graphe : des nœuds (intersections) et des arêtes (routes). Cependant, la représentation en mémoire ne doit pas être identique (a priori, tu veux explicitement des listes de routes et d'intersections avec des requêtes très faciles en fonction des coordonnées, pour ne pas afficher toute la carte, mais juste la partie à l'écran ; au contraire, pour un plus court chemin, tu dois toujours travailler sur toute la carte).
    Vous souhaitez participer aux rubriques Qt (tutoriels, FAQ, traductions) ou HPC ? Contactez-moi par MP.

    Créer des applications graphiques en Python avec PyQt5
    Créer des applications avec Qt 5.

    Pas de question d'ordre technique par MP !

  3. #3
    Membre éclairé Avatar de guitz
    Homme Profil pro
    Webdesigner
    Inscrit en
    Juillet 2006
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Webdesigner

    Informations forums :
    Inscription : Juillet 2006
    Messages : 717
    Points : 741
    Points
    741
    Par défaut
    Salut dourouc05,

    Je souhaite calculter des paths finding effectivement pour trajet boulot dodo, dodo - ami, police - cambrioleur, etc...

    Merci

Discussions similaires

  1. Tutoriel pour apprendre la théorie des graphes
    Par Malick dans le forum Algorithmes et structures de données
    Réponses: 1
    Dernier message: 09/11/2018, 12h23
  2. un outil pour dessiner des graphes (théorie des graphes)
    Par mohsenuss91 dans le forum Logiciels Libres & Open Source
    Réponses: 1
    Dernier message: 12/05/2015, 07h52
  3. Théorie des graphes et utilisation
    Par Invité dans le forum Ada
    Réponses: 0
    Dernier message: 31/03/2010, 13h13
  4. [Théorie des Graphes] Les opérateurs AND et OR
    Par bitou dans le forum Algorithmes et structures de données
    Réponses: 2
    Dernier message: 18/03/2007, 03h01
  5. Théorie des graphes : Représentation GRAPHIQUE d'une matrice d'adjacence
    Par jm_gouy dans le forum Algorithmes et structures de données
    Réponses: 3
    Dernier message: 03/05/2006, 16h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo