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

Langage C++ Discussion :

projet info calcul de chemin minimal par géodésie


Sujet :

Langage C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Par défaut projet info calcul de chemin minimal par géodésie
    bonjour à tous,

    J'ai un gros problème pour mon projet d'info que je dois rendre ce jeudi et soutenir vendredi prochain, je suis complètement perdu; et l'on n'a pas beaucoup avancé.

    Mon projet doit se traiter uniquement avec des classes. Il consiste à importer une image sous format ppm, où l'on a entre autres, un pixel rouge (point de départ), un pixel bleu (point d'arrivée) et au milieu des murs en noir. Le but est en s'intéressant au voisinage de chacun des pixels (on part de l'arrivée), calculer les distances minimales par rapport au pixel d'arrivée jusqu'à arriver au pixel rouge. On s'intéresse donc aux voisinages V4 (pixels en haut, en bas, à droite, à gauche) du pixel considéré, et V8 (ceux en diagonales plus ceux de V4). Les pixels de V4 sont à une distance 1 du pixel considéré et les pixels de V8 n'appartenant pas à V4 sont à sqrt(2) du pixel considéré.

    Mon problème se situe dans l'établissement dans une carte de distances minimales et dans le tracé du chemin minimal reliant A (départ) à B(arrivée). Il faut que j'utilise une file de priorité pour stocker les distances visiblement, et je ne comprends toujours pas ce que c'est (malgré le tuto sur ce site).

    Etant donné la complexité du projet, j'ai pas mal de classes, et je ne peux donc pas poster tout leur contenu sinon mon post serait hyper long. J'ai juste 3 classes avec leur .cpp qui me sont fournies, image.hpp qui crée une image à partir d'un vector de color. La classe color qui permet de créer un pixel (défini comme 3 chars non signés r, g et b) et une classe excpetion_cpe qui traite les exceptions lancées par la classe image. On m'a aussi fournit le main et le makefile (d'ailleurs je ne vois pas comment le modifier vu que j'ai rajouté des classes).

    Est ce que quelqu'un de la communauté serait prêt à m'aider par message perso, vu que le contenu du programme est trop lourd pour être posté?

    Merci d'avance

    J.Phi

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    301
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 301
    Par défaut
    Bonjour,

    En fait ton problème n'est pas de trouver le plus court chemin par géodésique (en gros tu ne considères pas la courbure de la terre, sinon il faudrait que tu calcules des intégrales elliptiques). Ton problème peut être résolu par un Dijkstra ou un A*, je te conseilles de partir sur ce dernier à l'aide du code récemment partagé: Algorithme A*

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Par défaut
    merci de votre réponse, j'ai lu l'algo A*, il est très intéressant mais je vois surtout de la programmation procédurale, je ne vois pas comment transformer cette algo en version orientée objet avec des classes.

  4. #4
    Rédacteur/Modérateur
    Avatar de JolyLoic
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2004
    Messages
    5 463
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 5 463
    Par défaut
    Amusant le pléonasme dans le titre. Parce qu'une géodésique n'est rien d'autre qu'un synonyme de "plus court chemin"...

    Ensuite, je ne pense pas que l'on puisse parler d'algorithme orienté objet. Je dirais que pour programmer, il faut 4 choses (je ne les classe pas par importance) :
    - La connaissance du domaine d'application du code
    - La connaissance de la syntaxe d'un langage de programmation
    - La connaissance des algorithmes permettant d'obtenir les résultats
    - La connaissance des moyens d'organiser le code pour réussir à en garder la maîtrise dès qu'il fait plus de 7 lignes.

    La programmation orienté objet est clairement dans la quatrième catégorie, alors qu'un algorithme de plus court chemin est dans la troisième. Ça ne veut pas dire que c'est incompatible, juste que c'est orthogonal, et que des questions comme "transformer cette algo en version orientée objet" n'ont pas trop de sens.
    Ma session aux Microsoft TechDays 2013 : Développer en natif avec C++11.
    Celle des Microsoft TechDays 2014 : Bonnes pratiques pour apprivoiser le C++11 avec Visual C++
    Et celle des Microsoft TechDays 2015 : Visual C++ 2015 : voyage à la découverte d'un nouveau monde
    Je donne des formations au C++ en entreprise, n'hésitez pas à me contacter.

  5. #5
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2011
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2011
    Messages : 7
    Par défaut
    oui mais par exemple tu peux avoir des algos qui appartiennent à la 3ème catégorie mais qui peuvent être codés de manière procédurale (sans classe mais avec des structures et beaucoup de fonctions en un seul programme).

    Ce que je voulais dire par "version orienté objet" même si mon vocabulaire est mal choisi, c'est que l'algo de la 3ème catégorie que tu proposes, si tu le sépares en plusieurs classes qui ont des relations caractéristiques entre elles, tu quittes le monde du procédural (que je juges plus simple) pour celui de la poo.

    Et c'est ce que je dois faire, je ne dois pas le traiter de manière procédurale.

Discussions similaires

  1. Réponses: 3
    Dernier message: 03/05/2010, 13h53
  2. Réponses: 6
    Dernier message: 12/11/2006, 19h00
  3. Calcul des chemins d'exécution d'un programme
    Par neuromencien dans le forum Algorithmes et structures de données
    Réponses: 29
    Dernier message: 31/10/2006, 16h01
  4. Utilisation d'une phase prototypage dans un projet info
    Par Kiki31 dans le forum Langages de programmation
    Réponses: 5
    Dernier message: 28/07/2005, 20h44

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