[PROGRAMMATION] Besoin d'aide pour créer un programme de simulation d'orbites.

Répondre
Partager Rechercher
Pour les TPE de mon lycée, je dois programmer quelque chose qui simule l'orbite d'un astéroïde.. J'aimerai faire quelque chose qui soit puisse se lire dans internet explorer ou alors dans une fenetre windows..

J'aimerai pouvoir parametrer la vitesse de l'astéroide et sa distance initialle du soleil.

Pourriez vous me conseiller sur quel language je dois utiliser, quelles difficultés risquent de me bloquer, quels sont les sites qui pourraient m'aider..

Merci d'avance
Si tu veux afficher une animation (genre une planete se deplacant le long de son orbite tout ca):

Dans IE -> il va faloir faire du Flash, pas trop le choix (et vu le prix d'une license flash MX )

Dans une fenetre Windows, tu as principalement le choix entre DirectDraw/D3D (DirectX) et OpenGL, dans les deux cas l'ideal etant le C++ (au niveau accessibilite/simplicite/puissance)

Dans tous les cas tu vas t'amuser, j'espere que tu as le temps et que tu sais deja programmer un minimum



L'autre solution c'est de simplement faire les calculs et d'afficher le resultat brut des calculs (des chiffres), ce qui est beaucoup plus simple (moins joli, mais plus simple) et se fait dans a peu pres n'importe quel language
Je ne veux pas faire un programme tout en 3D..

J'aimerai modeliser mes orbites sur un axe XY (un plan) je ne prend donc pas en compte l'angle par rapport a l'équateur..

Je pensais faire kk chose en visual basic.. mais j'aimerai vos conseils...

J'aimerai avoir deux cases permettant de rentrer la vitesse iitiale/l'altitude initiale...

Et au'avec ces valeurs, ca fasses une représentation de la trajectoire...
Citation :
Provient du message de Karig
Je ne veux pas faire un programme tout en 3D..

J'aimerai modeliser mes orbites sur un axe XY (un plan) je ne prend donc pas en compte l'angle par rapport a l'équateur..

Je pensais faire kk chose en visual basic.. mais j'aimerai vos conseils...

J'aimerai avoir deux cases permettant de rentrer la vitesse iitiale/l'altitude initiale...

Et au'avec ces valeurs, ca fasses une représentation de la trajectoire...
DirectDraw c'est de la 2D
OpenGL possede egalement un mode 2D
je ne te parlais pas du tout de 3D la
(visual basic connais pas, j'ai fait un peu de pascal ya longtemps mais plutot chiant pour afficher autre chose que de l'ASCII)
Oui mais ca me fait un peut peur de voir direct draw...

Tout au plus je veux un cercle ou alors un pixel qui tourne autour d'un autre.. On ne aprle pas de high tech en bump mapping (vertex shaders 3 aussi?)
Delphi power

Ton programme se résumera à appliquer des mathématiques, franchement pas de quoi casser des briques.

il te faut quelques variables modifiables ( vitesse initiale, distance du soleil ), une fonction qui dessine et une fonction qui calcule.

Si tu me file la partie mathématique je peux te faire un pseudo-code avec des commentaires histoire que tu piges bien.
Pour le code je suis un delphi-addict, mais avec l'algo le reste c'est peanuts.
Bon en parametrique ca donne:


X = a cosT
Y = b sinT

a et b en fonction des deux parametres par une équation qu'il me reste a définir (pas eu le temps d etudier les orbites elliptiques, seulement les orbits circulaires)

Le probleme c'est que l'origine du repere n'est pas situé sur un des foyers...

En polaire ca donne:

r = 1/(1+e+cosT) (variable T)

Pareil e reste a determiner en fonction de la distance et de la vitesse.
bah c simple en VB :

tu fait un gros cercle jaune au milieu d'une fenetre, c le soleil
tu fais un petit cercle, c ton asteroide

ensuite tu fais de cases de saisie pour tes parametres

ensuite tu fais un bouton go !

et ensuite, à l'aide d'un timer, tu deplace ton petit cercle à l'aide d'une equation qui utilise tes parametres...

tu sais faire un peu de VB ?
donc c super simple... à condition de connaitre la formule ( que je ne connais pas ) ou de la trouver sur le net ( ce que j'ai la flemme de faire )

hasta la vista, baby !
Le probleme est que je ne connais ABSOLUMENT RIEN en VB.

Mais ca ne m'a pas l'air compliqué.. l'équation, je peux la trouver, seulement j'aimreai pouroir la modeliser.. ton histoire de modelisation dynamique me plait bien.. pourrais tu m'expliquer le fonctionnement de VB, me conseiller des sites, des programmes...

Aussi: Est ce que je peux deplacer mon objet a l'aide d'une fonction polaire avc VB?

EDIT: Equation de l'ellipse en coordonnés polaire:

x= P/(1- e.cos(teta) )

avec P = ( G.Msoleil )/C²

e étant l'excentricité.. je me met dessus...
Citation :
Provient du message de Kelem Khâl La'Ri
Essaie de contacter des personnes de ce site recommandé par FautVoir il y a quelques mois. Ils ont un forum où, je pense, tu auras des réponses plus utiles qu'ici.

De plus, ton sujet étant sérieux, est plus Taverne que Bar .
Gneeh .. faut lui donner une réponse!

Rabat-joie..

Pas mieux qu'Eowin

Dégage les constantes ( en gros les données calculables à l'avance ) et les paramètres de ta fonction ( ce qui fait bouger le bidule ).

1 problème complexe doit toujours être transformé en plusieurs problèmes simples avant de commencer à programmer.
C'est marqué: la formule principale est:

P/(1-e.cos(teta))

teta est un paramètre variable de 0 à pi.

P= G.Msolaire/C² = une constante (donc pas de probleme)

C = t²/r^3. Avec t la période de rotation, r le demi grand axe

e= excentricité de l' éllipse... je suis en train d'essayer de le définir.
Citation :
Provient du message de Enze
Sinon tu as aussi le java et ses magnifiques applets qui rament pour faire 1+1
Tu peux aussi utiliser la technologie Java Web Start. Ca se lance à partir du browser, mais ca ne tourne pas dans le browser -> ca ne fait pas rammer ton browser. Au fait c'est une véritable application que tu lances à partir de ton browser. L'inconvénient c'est pas intégré dans une page web.

Tu peux même faire une combinaison des deux, une applet simplifiée qui ramme pas trop et une application complète le tout en Java et donc tu peux récupérer le code de l'un à l'autre.

Comme c'est du Java, c'est multi-platteforme -> ca tournera aussi bien sous Solaris/Linux/Windows/Mac ou autre.

Une autre solution est de faire du jsp ou php. Mais tu peux faire moins de trucs.

De plus Java n'est pas si lent que ca, c'est quasi aussi rapide que du C, ce qui prend du temps c'est l'initialisation de la virtual machine, une fois lancée, c'est très rapide.
Une suggestion,

Tu connais les forces en action (attraction solaire F on néglige le reste), donc tu connais l'accélération a (à un facteur près la masse de l'astéroïde).

Tu connais la vitesse initiale v(t).
Donc v(t+1) = v(t) + a(t).
(vectoriellement, suffit de faire deux équations une avec des petits x et une avec des petits y pour que çà marche en 2D)

Tu connais la position initiale p(t).
Donc p(t+1) = p(t) + v(t)
(vectoriellement derechef)

Pour passer à l'accélération à t+1, tu calcules a(t+1) avec la force d'attraction F(t+1) qui dépend de p(t+1) (formule à choper dans ton cours sur l'attraction des masses).

Tu fais une belle boucle de programmation qui te fais un petit point à la position p à chaque itération. A toi de choisir tes itérations suffisamment petites (sinon v(t+1)=v(t)+a(t) çà devient un peu faux) pour avoir une trajectoire assez fine (là où l'astéroïde va vite les points seront espacés), mais pas trop petit pour ne pas bouffer des ressources en calcul.

v(t+1)=v(t)+a(t) car a(t)=dv(t)/dt et v(t+1)=v(t)+dv(t)/dt sous certaines conditions. Physico-mathématiquement çà n'est pas ultra rigoureux, mais d'un point de la programmation c'est très efficace et le rendu de la vitesse est bon.
le module 3D de Director peut faire facilement ce genre de présentation puis ça en met plein la vue

mais bon on te demande pas ça
peut être que sur ce lien, tu trouveras ton bonheur le prog est déja fait en VB 5 et pret à être executer avec le code source en vbx en prime : http://xxi.ac-reims.fr/mazaryk/TPE1/...ysteme_solaire
J'ai l'impression qu'il man,que quelque chose dans ses sources.. je ne vois pas de rapport aux équations... et aux vecteurs de déplacement...


Cependant si c'était possible de récupérer ces sources et de les modifier ca serait bien ..
en effet il me semble que c'est pas la même source d'hier : celle d'hier pouvait se télécharger.

en fait le plus intéressant est de faire sans la source maintenant. Tu sais désormais que c'est possible de le faire en VB, à toi de jouer pour faire une chose qui ressemble au résultat.

Puis c'est le meilleurs moyen pour apprendre ce langage.
Matlab, si tu peux le demander à tes profs, est très bien pour cela : tu fais ta figure à des instants n*deltaT (correspondant à tes équations) en plot2D ou 3D.
tu insères cela dans une boucle qui va afficher ta figure à des moments régulièrement espacés, tu fais à chaque itération une capture d'image de ta figure, et, une fois ta boucle finie, tu compactes les images en film .avi que tu peux visionner tout à ton aise !

Simple, efficace, avec toute la puissance de Matlab qui permet de faire les équations sans problème, possibilité de faire une GUI sobre et qui marche (PM moi que je te file un exemple, c'est très mal documenté) ... par contre, il faut matlab et il faut que tout tourne sous matlab, donc si tu veux insérer cela dans une page web on retombe dans les scripts php ou flash.
ça doit être les plug in très recent de Matlab alors ou alors les dernière versions. J eme souviens de demo assez bien faite.

En fait suis allergique au maths j'ai ptete pas eu le gout de continuer à 'explorer le logiciel même si j'aime bien la prog.
Citation :
Provient du message de Mat de Lock
ça doit être les plug in très recent de Matlab alors ou alors les dernière versions. J eme souviens de demo assez bien faite.

En fait suis allergique au maths j'ai ptete pas eu le gout de continuer à 'explorer le logiciel même si j'aime bien la prog.
Pas forcément très récent, il y a déjà de faire pas mal de trucs avec Matlab 4 et c'est pas tout récent
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés