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 :

Algo de positionnement de aprticule pour une boule de feu .


Sujet :

Algorithmes et structures de données

  1. #1
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut Algo de positionnement de aprticule pour une boule de feu .
    Bonjour !
    Le tire résume tout

    J'ai des particules ( 400 ), te taille 10 px . ( en 2D )

    Mon tout consitue une boule de feu .

    Celle ci doit pouvoir , a partir des coordonées de lancement ( x,y ), et d'un angle ( représentant une direction ) , le tout a une vitesse fixé pour le moment , se déplacer pendant X sec par exemple ( je me charge de sa durée de vie ) .

    Rien de vraiment soricer en somme .

    Pour le moment, je parvient a la lancer dans 'nimporte quelle direction .
    Seul problème , mon ama de particule ne fait pas vraiment boule de feu ; mais plutot " amas de feu se déplacant un peu comme un boule ... "

    Je procède ainsi :

    Je génère mes particules au hasard cans un carré de 5*5 autour du centre de ma boule ( hum je vais surement les généré plutot dans un cercle de rayon 5, mais je pense que pour le moment ca ne change pas grand chose ) .

    Pour leur déplacement, a leur création, je leur attribue une vitesse ( un vecteur, qui sera additioné a leur position a chaque frame ), ce vecteur est fonction de l'angle de déplacement de la boule ( +- 20 degrée ) .
    Enfin j'applique une sorte de frotement de l'air, de la forme :

    vecteur frottement.X = - coef * cos(Angle )
    vecteur frottement.Y = - coef * sin(Angle )

    J'ignore ce qu'il me manque pour avoir vraiment une forme de boule ( enfin je ne veux pas un disque se déplacant, mais plutot une forme proche d'une goutte d'eau qui se déplacerai ( c'est pas trés parlant ca ... )

    ( j'essairai d'illustrer ca si ca pose problème )
    Mais tout les conseils me seront utile . Il doit surement me manquer une petite formule de math/phys quelquepart :p
    Merci

    Edit : un percu de ce que j'ai pour le moment
    http://max.cat.free.fr/Release.zip

    EDIT2 : je pense que le problème vient de mon calcul du frottement de l'air, je vient de m'aperceoivr qu'il était carrément fantaisite lol , ce que je cherche a faire ( et ou je bloque ), c'est un frotement qui fait que ma trainée de flamme, ira vers l'arrière ( oposée au mouvement donc), et en se raporhcant de la trajectoire global de la boule ); de cette facons la trainée aura l'air plus "mince" que la boule ... mais je ne vois pas trop comment faire ...

  2. #2
    Membre confirmé
    Homme Profil pro
    Consultant MOA
    Inscrit en
    Juillet 2004
    Messages
    289
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Consultant MOA
    Secteur : Conseil

    Informations forums :
    Inscription : Juillet 2004
    Messages : 289
    Points : 635
    Points
    635
    Par défaut
    Hum c'est vrai que la ca fait plutot feu de torche

    En ce qui concerne le frottement, à mon avis (de ce qu'il me reste de mes cours de physique ... ), il doit dépendre de la vitesse nan ?
    A mon avis c'est de là qu'il est "un peu fantaisiste".
    Parce que la tu n'utilise que l'angle de tes particules

    Bon sinon niveau formule ...
    Je sais pas si ca existe mais à mon avis si

    Edit: à voir du côté du principe d'inertie tout simplement
    Somme (Forces) = Masse * Accel
    Après à mon avis l'accel est nulle et dans les forces tu mets la force de frottement (F = - coeff * vitesse)

  3. #3
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Hum je suis pas certain que j'obtiennent ce que je veux avec ta formule . Je suis entraind e réfléchir, je me demande même si l'effet que je veux est vraiment "réaliste" ou pas, car je veux en somme que la trainée soit plus petite que la boule, et ce recentre sur la trajectoire ... ( je sent que je vais du mal a vous faire comprendre ce que je veux ^^ , mais on va essayer )

    Enfin je vais qunad mêmem essayer ^^ ( dés que j'ai résolu un autre bug.. snif .. )

  4. #4
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    Qui a dit qu'une boule de feu devait être réaliste ?
    De toute façon, il me paraît très douteux que tu parviennes à simuler ce comportement par des formules physiques... Je verrais plutôt ça comme une force que tu appliquerais dans la direction opposée à la vitesse mais avec des facteurs dépendants de la position de la particule par rapport à la boule : grossièrement dit, cette force serait plus importante sur l'axe passant par le centre de la boule et de direction sa vitesse, elle augmenterait également avec l'éloignement par rapport au plan perpendiculaire à cet axe, mais uniquement dans le demi-espace à "l'arrière" de la boule.

    On pourrait un peu rafiner, mais c'est l'idée !
    A toi de jouer !

    --
    Jedaï

  5. #5
    Expert éminent

    Profil pro
    Fabricant et casseur d'avions
    Inscrit en
    Avril 2004
    Messages
    3 807
    Détails du profil
    Informations personnelles :
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : Fabricant et casseur d'avions
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2004
    Messages : 3 807
    Points : 7 613
    Points
    7 613
    Par défaut
    Salut,

    En donnant à tes particules une trajectoire radiale (par radiale, je veux dire perpendiculaire à la trajectoire de ta boule de feu) suivant une parabole s'écartant du centre de la boule, puis y revenant (avec fin de vie de la particule dès qu'elle rejoint l'axe de la trajectoire et création d'une nouvelle en tête de boule), éventuellement en dissociant les deux parties afin de leur affecter les coefficients qui vont bien pour que cela paraissent réaliste, est-ce que ça donnerait un effet s'appochant de ce que tu veux?
    A cette trajectoire radiale, tu rajoutes la trajectoire longitudinale (dans la même direction de la boule), avec un vitesse un peu moindre que celle de la boule (sinon ça ne va pas faire de boule... et ça simule vaguement ta force de trainée)

    Enfin... c'est à tester pour voir ce que ça donne...
    "Errare humanum est, sed perseverare diabolicum"

    Ma page sur DVP.com

  6. #6
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Je pense que ce que décrit Plegat se rapproche de ce que je cherche . Maintenant reste a savoir comment coder ca de manière simple

  7. #7
    Membre habitué
    Inscrit en
    Octobre 2004
    Messages
    616
    Détails du profil
    Informations forums :
    Inscription : Octobre 2004
    Messages : 616
    Points : 164
    Points
    164
    Par défaut
    Haaaa, je vais devenir chêvre, je m'en remet a vous car je vous plus du tout comment procéder ( aprés un bon milliard de tentatives ... )

    J'ai une direction pour le lancer de ma boule ( un angle + une vitesse )
    Mon problème est le suivant , j'ai mes petite particules qui sont lancé a une vitesse fixe , a + ou - 10 degré d'écart par rapport a la direction globale de ma boule .
    Elles sont généré dans un cercle dont le centre est, le centre de déplacement de la boule .

    Je n'arrive pas a modeliser une force, qui ( on va faire simple dans un premier temps ) serait contraire au vecteur vitesse de mes particules .

    Je suis entrain de m'émêler les pinceau entre les cos et les sin de partout c'est affreux lol .

    EDIT : je pense arrivé près du but j'ai résolu mes problèmes pour la pluspart, et je pense que ma boule a un comportement "correcte" , qu'en pensez-vous ? ( je vient de réuploader mon zip )
    Je suis ouvert aux remarques / critiques / conseils ...

  8. #8
    Membre habitué
    Profil pro
    Inscrit en
    Août 2002
    Messages
    104
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 104
    Points : 128
    Points
    128
    Par défaut
    Bonjour,

    Petite question : connais-tu les boids ?

    Je n’en suis pas sur mais ça pourrait t'aider.

    L’idée serait de découper ta boule en deux :
    - un demi disque dans lequel tes particules de feu bouge mais ne sortent pas.
    - un triangle avec comme zone de départ des particules le coté qui est collé au cercle ; la direction de déplacement serait le sommet opposé. Ensuite tu ajoute les forces d'attraction et de répulsion des particules entre elles, histoire de déterminer la composante en x de l'accélération à appliquer a chaque particule et tu rajoute la composante en y, soit fixe, soit en fonction de l'éloignement de la particule avec sont point de départ.

    Heu ... je suis clair?

Discussions similaires

  1. Se positionner en bas d'une div pour rajouter ours
    Par epeichette dans le forum jQuery
    Réponses: 2
    Dernier message: 26/04/2011, 16h42
  2. Positionnement des DLL pour une applicatin C++Builder
    Par JeanNoel53 dans le forum C++Builder
    Réponses: 10
    Dernier message: 16/11/2010, 16h08
  3. Positionnement d'index pour optimiser une requête
    Par Monstros Velu dans le forum Développement
    Réponses: 14
    Dernier message: 17/02/2010, 17h53
  4. Réponses: 1
    Dernier message: 06/01/2010, 17h25
  5. Déterminer Algo pour une formule mathématique
    Par jekyll_omiwane dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 07/01/2005, 19h28

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