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 :

Création d'un générateur de map "intelligent" (un


Sujet :

Algorithmes et structures de données

  1. #1
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut Création d'un générateur de map "intelligent" (un
    Bonjour,

    J'aimerais concevoir un générateur de carte en PHP. ça n'est surement pas l'idéal mais bon c'est comme ça.
    Le truc c'est que je ne sais pas trop vers où me tourner pour avoir une carte pas trop bateau.
    Donc je me tourné vers google et j'ai trouvé quelues infos sur comment faire. Le top que j'en ai ressorti est de commencr par une carte d'altitude. Donc on commence par là mais comment faire pour ne pas avoir que des altitudes simpleemnt aléatoire mais quelques chose de relativement réaliste.

    Donc je peine un peu sur la méthde. J'ai pensé à un système qui ferait un changement d'altitude de +- 1 ou aléatoire avec de sprobabilités (25% d'avoir +1, 25 d'avoir -1, 25 d'avoir 0, et 25 d'avoir totalement aléatoire) puis mon idée était de poursuivre en augmentant la probabilité lors de série: 25% d'avoir +1 -> tirage -> +1 -> 40% d'avoir +1 .... en agumentant chaque fois si c'est une série.
    Mais mes idées s'arrête pour l'instant là.

    Si vous avez quelques chose sur le sujet ou votre propre experience....

    Merci de votre aide !
    "Software is like sex, it's better when it's free" -- Linus Torvalds

  2. #2
    Expert éminent Avatar de Mr N.
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    5 418
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 5 418
    Points : 6 449
    Points
    6 449
    Par défaut
    générateur de terrains via fractales
    ou encore bump-mapping : tu prend une image et suivant la luminosité ca monte ou ça descend !
    url au hasard : http://www.iktsoft.com/proj/cg/fractals/fractal_land.php

  3. #3
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Ce sujet n'a pas grand chose à voir avec php en effet.
    Je le déplace dans le forum "Algorithmes".
    Si par la suite tu es bloqué avec php, tu posteras dans le forum approprié.
    à+


    Lien tout en bas à gauche de cette fenêtre
    De retour parmis vous après 10 ans!!

  4. #4
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    En effet c'est de l'algo et pas du php, mea culpa.

    Les fractales m'ont l'air pas mal je vais regarder un peu de ce côté merci.

    Si vous avez d'autres idées
    "Software is like sex, it's better when it's free" -- Linus Torvalds

  5. #5
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Parmi les fractales, plasmas et assimilés, le bruit de Perlin (Perlin Noise) peut être extrèmement satisfaisant pour générer une carte.

    Il présente l'avantage d'être "infini", c'est à dire de pouvoir être généré en tout point du plan ...

    Avant de l'utiliser comme valeur d'altitude, ou pour pouvoir l'utiliser comme valeur "géographique" (hydrographie, couvert végétal ou autre), il peut aussi être intéressant de le passer dans une LUT (Look Up Table), afin de "palettiser" un peu le résultat.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  6. #6
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    J'ai réalisé une petite ébauche en php du modèle par fractales décrit dans le lien de Mr N.
    L'idée est bien mais j'ai un problème :
    sur une petite carte (9x9) les altitudes sont assez bien équilibrée avec quelques dominances qui ne posent aucun problèmes, ça me va
    Mais dès que je passe à des carte plus grande (20x20 et +) la dominance du 1 s'accentue (j'ai pris des altitudes entre 1 et 10). Sur une carte 33x33 les cases d'altitudes 1 representent plus de 80% de la carte ! et ça continue avec des dimensions plus grandes !
    Les bordures de la carte sont souvent aléatoire et pas mal (sans trop de 1) avec un centre d'altitude (presque unique) de 1 (exepté quelques lignes qui viennent couper par ci par là).

    Bien sur il faut que je l'améliore mais avez-vous une idée d'oû peut provenir cette dominance du 1 ?

    Pour l'instant mon algo ne fait que d'évaluer les moyennes de cases d'altitudes existantes distantes de X de la case en question (ou x est le fameux "step number". En boucle donc selon cette méthode des fractales (comme sur le lien quoi).

    Si vous avez une idée pour corriger un peu ce problème ? J'ai pensé que peut-être un système de "distance" pourrait aider. L'algo prendrait en compte beaucoup plus de case pour chaque moyenne mais + la case est éloignée moins elle est impliquée dans la moyenne.
    Qu'en pensez-vous ?

    Je vais aussi regarder du côté du bruit de Perlin que tu me conseilles, voir de quoi il en ressort.

    Encore merci de votre aide.
    "Software is like sex, it's better when it's free" -- Linus Torvalds

  7. #7
    mat.M
    Invité(e)
    Par défaut
    Je conseillerais de retoucher à la main car même s'il existe des méthodes ( fractales et autres ) les motifs finissent par être répétitifs

  8. #8
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    Oui bien sur la carte finale sera retouchée légerement à la main mais tout de même avoir un générateur permet de faire le gros (car sur une carte de 100x100 ou 200x200 ça devient vite très très gros !)
    "Software is like sex, it's better when it's free" -- Linus Torvalds

  9. #9
    Inactif   Avatar de Médiat
    Inscrit en
    Décembre 2003
    Messages
    1 946
    Détails du profil
    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 946
    Points : 2 227
    Points
    2 227
    Par défaut
    Regarde
    J'affirme péremptoirement que toute affirmation péremptoire est fausse
    5ième élément : barde-prince des figures de style, duc de la synecdoque
    Je ne réponds jamais aux questions techniques par MP

  10. #10
    Membre régulier
    Inscrit en
    Mai 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2004
    Messages : 148
    Points : 87
    Points
    87
    Par défaut
    Salut,

    Tu peux voir un cas concret avec code source ici sur mon site (code en visual basic, mais facile à comprendre)

    Tcho
    Celui qui pose une question est bête 5 minutes, celui qui ne la pose pas est bête toute sa vie...

  11. #11
    Membre du Club
    Inscrit en
    Juillet 2002
    Messages
    85
    Détails du profil
    Informations forums :
    Inscription : Juillet 2002
    Messages : 85
    Points : 65
    Points
    65
    Par défaut
    Ok merci de vos aides je vais potasser tout ça

    Je vous tiens au courant de l'evolution
    "Software is like sex, it's better when it's free" -- Linus Torvalds

Discussions similaires

  1. Réponses: 3
    Dernier message: 20/01/2007, 20h36

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