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 :

simulation d'un système solaire


Sujet :

Algorithmes et structures de données

  1. #1
    Nouveau candidat au Club
    Profil pro
    Inscrit en
    Février 2007
    Messages
    1
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 1
    Par défaut simulation d'un système solaire
    Bonjour,

    Etudiante de 1° année en école de statistique, je suis confrontée au langage python pour la 1° fois de ma vie. Je dois rendre pour la fin de l'année un mémoire, dans lequel je dois programer une simulation d'un système solaire.
    Je ne sais pas par ou commencer, je dispose d'une loi caractérisant la force de gravité à laquelle les planètes sont soumises, ainsi que des données sur chacune d'entre elles : distance au soleil...
    je suis donc à la recherche de piste pour commencer et puis pour plus tard approfondir cette modelisation, merci d'avance
    cécile.7.07

  2. #2
    Membre éprouvé
    Avatar de Rakken
    Homme Profil pro
    Inscrit en
    Août 2006
    Messages
    1 257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 257
    Par défaut
    Quand on est face à ce genre de problème, la premiere chose à faire est de se fixer des étapes, pour savoir ou on vas.

    Ta simulation, à quoi elle va ressembler ? C'est de la 3d ? de la 2d ? Un simple tableau avec des valeurs ?

    Je ne suis pas vraiment matheux, donc avec ce genre de problème, ce que j'aimerai obtenir au minimum, c'est un visuel 2d de mes planètes entrain de bouger. Donc je commencerai par apprendre à afficher quelques pixels, faire bouger un cercle en ligne droite, puis en cercle, en ellipse, et quelques exercices pour apprendre python et ses possibilités (manipulation des données). Je ne connais pas ton niveau en programation, mais si tu es completement débutante, commence par des exercices simples pour être a l'aise avec les mots clef du langage.
    Ensuite, une fois que tu commences a être un peu a l'aise, tu te recentre sur ton problème, comment sont stockées tes données ?
    J'imagine que tu auras une structures représentant une planete avec toutes les infos utiles (distance par rapport au soleil, coordonnée x/y/z, masse, etc...)
    Une fois tes données en place, il faut que tu soit capable d'afficher tes positions tel quel.
    Une fois que ca marche, tu calcule la position n+1. Prend toi le jour comme unité de temps par exemple, calcule la position de tes planetes pour le jour d'apres, refait ton image, et hop, tu viens de faire ta première animation.

    Une fois que tu en sera là, t'aura gagné ;-)
    Arrivé a ce stade, tout le reste (ou presque) c'est du bonus. Si le prof voit ton programme, sache que dans 90% des cas, à fonctionnalité égale, voire légèrement inférieure, plus c'est joli, et meilleure sera ta note.

  3. #3
    Membre émérite
    Inscrit en
    Juin 2005
    Messages
    644
    Détails du profil
    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2005
    Messages : 644
    Par défaut
    voir les lois de KEPLER ( en patriculier la 2eme sur les aires et la 3eme liant la période et le grand axe de l'éllipse )
    voir parmi bien d'autre
    http://fr.wikipedia.org/wiki/Lois_de_Kepler

  4. #4
    Rédacteur
    Avatar de Zavonen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 772
    Détails du profil
    Informations personnelles :
    Âge : 77
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 772
    Par défaut Python peut le faire !
    Pour votre animation (2D sera déjà bien) sachez que le langage Python (dont je suis un admirateur) possède une implémentation des classes wxwidgets (le tout est fort logiquement nommé wxpython).
    Il existe aussi un RAD python/wxpython dénommé Boa Constructor.
    Tout est téléchargeable gratuitement, et ça marche sur windows et linux. Il faut simplement s'assurer de la compatibilité des versions python, wxpython et boa (moins drôle mais je pourrais vous faire gagner du temps pour ça).
    Vous devriez donc suivre les conseils avisés de Rakken, et commencer par faire tourner une seule planète, ce qui n'est guère plus dur que de tracer une courbe paramétrée avec un 'temporisateur'.
    L'affaire étant entendue, utilisez un 'timer' de wxwidgets pour faire tourner toutes vos planètes en même temps. C'est un système pratique de récupération d'interruptions (par exemple dans une fenêtre graphique). Le doc et les tutoriels sur les calsses wxwidgets sont bien faits.
    Ce qu'on trouve est plus important que ce qu'on cherche.
    Maths de base pour les nuls (et les autres...)

  5. #5
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Par défaut
    Ma suggestion en 5 etapes.

    1. Apprendre a programmer en python --> ici

    2. Definir le besoin: Que doit faire le programme ?

    3. Résoudre le probleme: Trouver les algorithmes/fonctions mathematiques

    4. Concevoir la solution: Découpage en modules,classes et fonctions python

    5. Implementer: codage et tests

    Keep the faith
    ALGORITHME (n.m.): Méthode complexe de résolution d'un problème simple.

  6. #6
    Membre Expert
    Avatar de Sivrît
    Profil pro
    Inscrit en
    Février 2006
    Messages
    953
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Février 2006
    Messages : 953
    Par défaut
    Citation Envoyé par pseudocode
    2. Definir le besoin: Que doit faire le programme ?

    3. Résoudre le probleme: Trouver les algorithmes/fonctions mathematiques
    Ca va être vraiment déterminant ça. Est-ce que le but est de montrer des planètes qui tournent, donc trouver les éllipses et faire une jolie interface ? Ou alors de faire une simulation, donc partir des équations, et simuler le plus précisément possible en gérant aussi les interractions entre les planètes pour voir ce que ça donne : orbite stable, planète catapultée hors du système...

  7. #7
    Membre confirmé
    Inscrit en
    Novembre 2004
    Messages
    59
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 59
    Par défaut Simulation systeme solaire
    ca dépend ce que tu entends par simulation système solaire.
    est-ce que c'est juste l'animation des planètes autour du soleil, en respectant
    approximativement les distances et les périodes de révolutions, ainsi que la taille des objets.
    dans ce cas il faut placer le soleil au milieu de l'ecran, et surtout ne pas respecter les échelles sinon y aura pas de place pour le reste.
    puis établir un mouvement circulaire autour du soleil.
    pour cela l'equation du cercle suffit, calculer les coordonnees xy en fonction de r et t, r etant la distance Sol-Planete, et v la vitesse de la planete supposée constante "circonférence de l'orbite/365.25j", pour simuler le mouvement avec un pas de 24h.

    Dans le cas d'une simulation réelle, il faut passer par le mouvement Keplerien
    c'est a dire définir les coordonnées d'une conique par rapport a un référentiel,
    généralement un repère héliocentrique ayant pour origine le Barycentre du système solaire.

    avec des développements comme les "éléments moyens des orbites"
    Six variables qui définissent l'orbite en fonction du temps.
    ensuite on calcul le rayon vecteur puis les coordonnées héliocentriques rectangulaires de chaque planète.

    Voila, en gros la démarche.
    Bon courage.

  8. #8
    Membre averti
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 21
    Par défaut
    Heu juste comme ça, Python est le language imposé ? ou tu as le droit de choisir ton language ? Car pour obtenir une belle interface 3D sans connaitre la moindre chose en 3D, il y a un language facile à prendre en main et relativement performant.
    Ou pour créer une sphere, 1 ligne suffit...
    Pour bouger la sphère, 1 ligne
    Pour redimenssionner l'objet, 1 ligne
    Pour texturer la sphere, 2 lignes (et oui il faut quand meme charger l'image)

  9. #9
    Membre émérite
    Avatar de Kangourou
    Profil pro
    Inscrit en
    Mars 2003
    Messages
    579
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2003
    Messages : 579
    Par défaut
    salut,

    independamment de l'apprentissage du langage, y'a du boulot...

    il faut maitriser les changements de coordonnes spheriques et cartesiennes, choisir des modeles d'orbites pour les differents corps, calculer des dates en tenant compte des annees bissectiles et des changements de calendrier...
    Bon courage !

    Sinon un lien utile pour commencer :
    http://emilie.bodin.free.fr/logiciel/logicielframe.html

    A+

Discussions similaires

  1. Réalisation d'un "pseudo" système solaire
    Par roukgreg dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 27/06/2014, 13h04
  2. modélisation du système solaire
    Par henalu dans le forum MATLAB
    Réponses: 1
    Dernier message: 03/04/2013, 12h18
  3. Simulation du système solaire
    Par kbenjamin dans le forum Mathématiques
    Réponses: 2
    Dernier message: 20/01/2010, 11h19
  4. Système solaire
    Par thedivxboy dans le forum OpenGL
    Réponses: 1
    Dernier message: 18/04/2005, 01h25

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