SIMULATION DE LA GRAVITATION SELON NEWTON (OPENGL / DEVC++)

Quarkvador Messages postés 3 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003 - 11 déc. 2003 à 14:54
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005 - 31 déc. 2003 à 12:03
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/18619-simulation-de-la-gravitation-selon-newton-opengl-devc

cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
31 déc. 2003 à 12:03
lol :) Descartes: je doute méthodique.

oué g bien 19 ans, je suis actuellement en math spé technologique.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 déc. 2003 à 01:44
bah j'ai eu un excellent prof cette année, prof de français qui a rattrapé les énormités du prof d'histoire (au passage s'il me lit: qu'il meurt) voilà c'est la phrase du jour :-D même en vacances je le déteste, quel c**.

dis, je vois que t'as 19 ans, tu fais quoi comme études? paske tu m'as l'air callé en physique, on peut pas vrmnt juger sur 2 interventions, puis comme je sais pas du quoi tu parles je peux pas apprécier l'exactitude. c pas que je doute de la véracité.
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
31 déc. 2003 à 01:38
lol, tu t'y connais mieux que moi je peux pas réfuter :))))
toute facon ya rien a réfuter je suis d'accord.
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 déc. 2003 à 01:30
je sais ce qu'est un humaniste mais je suis pas franchement d'accord avec la qualification que tu leur colle sur le front. ils ont repêché les savoirs de l'antiquité et ont promu l'enseignement, les études, l'humain, sa conscience, sa liberté et sa valeur. je trouve que c'est plutôt une bonne période (en plein dans l'empirisme), ce que tu dis colle plus aux scientistes, qui pensaient tout résoudre par la science.

et si tu regardes, le courant humaniste est encore assez marqué dans notre société, alors que celui des scientistes à disparu (maintenant c'est le principe de l'incertitude, être scientifique c'est "avancer avec une lampe de poche dans la pénombre de l'immensité" (je sais plus qui a dit ça, et en plus la citation n'est pas exacte, mais tu as l'idée :-P)).

enfin voilà, passons ^^ ;-)
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
31 déc. 2003 à 01:04
oué c sur ya tjs des trucs a apprendre dans n'importe quel domaine que ce soit.
aujourd'hui les humanistes n'existent plus :)
(ceux qui prechaient le savoir total)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
31 déc. 2003 à 00:47
ça ferait cet effet pr moins que ça, mais c rassurant: j'aurai plein de trucs à apprendre une fois à l'unif :-D
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
30 déc. 2003 à 15:56
je sais pas, mais je sais que rien n'est exactement continu.
en fait on devrait exprimer toute grandeur comme multiple d'une constante !!!
et oui meme le temps, meme le temps en granulaire !
(voir temps de Planck = 5.4*10^-44 seconde)
meme l'energie !
(voir les quantums)
et il paraitrait que meme la position dans l'espace serait discrete !!

moi ca me retourne l'esprit
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
30 déc. 2003 à 01:06
thx pr les précisions, mais j'ai entendu qu'en mécanique classique, en vertu du principe d'incertitdue, on ne pouvait déterminer la valeur exacte de deux variables en même temps (vitesse et position par exemple). ça complique énormément O_o
cs_Lightness1024! Messages postés 162 Date d'inscription jeudi 15 mars 2001 Statut Membre Dernière intervention 1 avril 2005
29 déc. 2003 à 14:53
pour les details à propos de la mécanique moderne et de la mecanique classique:

Newton n'avait pas pensé que l'information ne se propagait pas a vitesse infinie d'ou l'approximation qui en decoule.

en mécanique moderne on tient compte de la vitesse de propagation de l'interaction ca complique tout mais on se raproche plus du vrai.
la terre se déplacerait selon une onde (pas une ellipse du tout en réalité)
ce qui ferait qu'elle ne passe jamais par le meme point chanque année.
bien sur reste a voir si c'est important ou pas dans les calculs qu'on souhaite faire et dans un cas utiliser la mecanique classique et l'autre la moderne..
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
19 déc. 2003 à 19:42
oui c'est exact, en fait, j'ai pas bloqué le timer lorsque la fenêtre est déplacée, et c'est pour ça que ça débloque totalement. c'est facile à changer, juste 2 lignes à ajouter, mais vous savez comment c'est ;-)

et oui, je dois l'idée à dominion, merci ;-)
cs_dominion Messages postés 230 Date d'inscription mardi 21 janvier 2003 Statut Membre Dernière intervention 15 mai 2008
19 déc. 2003 à 11:39
Et dire que c'était mon idée... Enfin franchement chapeau j'aurais pas pu faire aussi bien ;)
Par contre je viens de voir un bug : quand on déplacee la fenêtre les corps changent d'orbite.
cppdupdup34 Messages postés 212 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 13 mai 2006
15 déc. 2003 à 18:41
exact ;-)
faudra que je reflechisse avant d'ecrire la prochaine fois :-/
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
15 déc. 2003 à 17:55
cppdupdup, je vois pas pq les planètes du sytème solaire n'interagiraient pas. Les 4 forces de l'univers valent pour tous les corps, la gravitation est une de celles-là. Je ne connais rien à la physique cantique, c'est peut-être pas pareil là dedans, j'en sais vrmnt rien, mais en physique classique, je vois pas pq ça n'irait pas. Regarde, la terre attire la lune, et le soleil attire les deux, seulement l'attraction de la terre sur la lune est plus grande que celle du soleil sur la lune, parce que la lune c'est un tout petit caillou.

en fait, tu dois juste rajouter des lignes dans le fichier corps.txt pour rajouter des corps à la simulation sans devoir recompiler. Tu modifies la liste, tu relances la simulation et c'est bon.

L'idéal serait de trouver une bone échelle et une table de valeurs pour simuler le système solaire, ce serait impeccable ^^ je vais qd même essayer de placer un satélite autour d'une planète en orbite autour d'un corps très massif (qu'on appellera le soleil, parce que c pratique ;-))
cppdupdup34 Messages postés 212 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 13 mai 2006
15 déc. 2003 à 17:46
10/10 allé ca les vaut
j'avoue que j'ai pas regardé le source mais pour ce qui est du programme ben c'est parfait
ce qui me parait etonnant c'est que la trajectoire finit par faire une elipsse (j'ai oublié mon cours je crois), je croyais que ca repassait pas au meme endroit mais en fait comme quoi c'est utile les simulations.
pour rendre plus reel ton prog tu pourrais nous rajouter d'autres etoiles
pour faire interagir plus de monde
(il me semble pas que les elements qui tournent autour du soleil agissent entre eux => autre suggestion)
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
14 déc. 2003 à 12:28
j'ai allègrement commenté le code du point de vue des règles mathématiques / physiques, mais pas du tout il me semble le côté plus "grammatical" ou plutôt lexical, càd le programme en tant que tel. Ce code source te donne un exemple d'utilisation de classes, mais ne t'apprendra pas à en écrire toi-même, j'en suis dsl, c t pas le but non plus ;-) ceci dit, y a vrmnt bcp de commentaires! lol
Helkanen Messages postés 54 Date d'inscription mardi 24 décembre 2002 Statut Membre Dernière intervention 9 juin 2004
14 déc. 2003 à 10:12
magnifique...
je débute seulement, alors je sais pas si je pourrai analyser toute la source, mais je vais essaye"r parce que ça me semble parfait...
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
12 déc. 2003 à 21:15
Merci Saros pr ce comment.
c'est vrai, mtnt tu m'y fais penser, j'ai oublié de mentionner les touches!!

alors voilà:

A/Q: (dé)zoomer
Flèches: bouger la caméra
P: pause/start l'animation
V: montre/cache les vecteurs
R: montre/cache le parcours (je suis plus trop sur pour R, mais c'est marqué dans le code source, main.cpp ;-))


le fait que les pixels soient dans "tous les sens", c'est normal, puisque je ne dis pas aux objets: déplacez-vous le long d'une élipse, je leur dit: les lois théoriques disent que mtnt, vous devez aller là, et ce aussi souvent que l'ordinateur le permet par seconde, cette méthode permet de "vérifier" une hypothèse ou de "découvrir" la trajectoire justement de ces corps en gravitation.

les orbites ne sont pas les mêmes à chaque révolution à cause de l'erreur commise à chaque frame: je ne calcul par la vitesse instantanée mais ce que j'ai appelé la vitesse ponctuelle, je ne pense pas que le mot soit correct, mais je désigne par là une vitesse moyenne sur un intervalle de temps très court (moi j'obtiens un calcul toutes les 15/16 ms, ce qui me fait environ 62/66 FPS)
Saros Messages postés 921 Date d'inscription vendredi 20 décembre 2002 Statut Membre Dernière intervention 23 septembre 2010
12 déc. 2003 à 19:29
Franchement, chapeau... Juste un truc : les traces des objets (en bleu), étant dessinées sur l'écran directement, on obtient des artefacts et des pixels dans tous les sens en redimensionnant...
Et autre chose : j'ai un VSync en 800 par 600 (le fps bloqué à 60) en fenêtre, ce qui ne m'était jamais arrivé... Je ne sais pas si c'est OpenGl, je ne sais d'ailleurs pas non plus comment débloquer le VSync...
Sinon, c'est une source excellente... 10/10
Saros
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
11 déc. 2003 à 23:11
woaaaa c'est impressionnant! et le code est clair et bien commenté;-)
tes classes sont tres bien faites et le tout est tres propes, ca rend bien a l'execution avec les orbitres et les vecteurs!
cs_Kirua Messages postés 3006 Date d'inscription dimanche 14 avril 2002 Statut Membre Dernière intervention 31 décembre 2008
11 déc. 2003 à 15:17
Salut, merci pour ce message.

Pour le C++, un site unique, c'est impossible, je me souviens plus vraiment de où j'ai appris le C++ mais voici déjà une référence:

http://casteyde.christian.free.fr/cpp/cours/online/book1.html

toutefois, je le conseil pas pour commencer, tout le monde en parle comme d'un tuto, je le vois plus comme un rappel théorique pour des gens qui connaissent.
ceci dit, un travail de titan et rigoureux, à mettre en favoris.

ensuite, mais pas pour tout de suite, voici un article sur les Classes en C++, une fonctionnalité que je juge indispensable:
http://glouise.developpez.com/classes.htm
pour quand tu maîtriseras le C++


que tu aies déjà de l'expérience en programmation est une excellente chose, quelque soit le langage, c'est déjà un tas de réflexes acquis. Que tu veuilles passer du VB au C++ est encore mieux :-D sache toutefois que c'est passer de l'aisance de l'interface (boutons, champs de textes etc...) à la laideur de la console dos-like avant de maîtriser les API graphiques (wxWindows, QT...)

voyons, pour des tutos de débutants je vois pas trop... essaye tjs sur google ça devrait pulluler de hello world, normalement tous les hello world sont OK DevC++, puisqu'il n'y a rien de spécial, et à partir de là, brode.

une précision qd même: évite les hello world qui utilisent les fonctions C (printf() etc...) utilise directement les librairies standards du C++:
cout << "Hello World";
qui utilise la librairire:
#include

un Hello World c++ devrait ressembler à ça:

#include
using namespace std;

int main()
{

//affiche du texte dans la console, avec un retour à la ligne (endl)
cout << "Hello World" << endl;
//demande un caractère (c'est essentiellement pour faire patienter)
//de sorte que la console ne se ferme pas directement
char a;
cin >> a;
//fin du programme
return 0;
}


voilà, essaye de trovuer des tutos qui commencent par ça, et bonne chance !!
Quarkvador Messages postés 3 Date d'inscription mardi 9 décembre 2003 Statut Membre Dernière intervention 11 décembre 2003
11 déc. 2003 à 14:54
Salut tes sources sont vraiment excellente. J'avais déja vu ton snake en 3D et la je dis respect. Je suis plutot visual basic et j'ai décidé de passer en C++. Connetrais tu des bons tutorials disponibles sur le net qui prennent comme compilateur Devc++. Parce que les tutorials que je possède utilise d'autres compilateur. Du coup certaine fonction diffèrent.
Merci d'avance ! Respect
Rejoignez-nous