MODÉLISATION D'UNE SURFACE AVEC UN MAILLAGE MASE RESSORT OPENGL (GLUT)

koda_12 Messages postés 7 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 29 août 2008 - 25 août 2008 à 03:29
SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011 - 23 juin 2011 à 18:59
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/47704-modelisation-d-une-surface-avec-un-maillage-mase-ressort-opengl-glut

SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
23 juin 2011 à 18:59
Salut,

Content que cette source ai pu t'aider. ;-)
Sinon pour ce qui est de l'utilité du calcul de force des ressorts, c'est tout simplement car c'est un modèle dynamique et que si on ne prend pas en compte la force des quatre ressorts (ligne entre les points), les points restent en bas une fois le point excité. J'espère que j'ai répondu à ta question.
imadxgi Messages postés 1 Date d'inscription lundi 25 février 2008 Statut Membre Dernière intervention 23 juin 2011
23 juin 2011 à 04:05
Salut,

Tout d'abord je vous remercier sur cet exemple, je l'ai trouvé vraiment très utile.

J'ai une petit question:

Au niveau du Code tu as ajouter 4 forces

// liaison 1er voisin
dz = TabZNoeuds[ix + 1][iy] - TabZNoeuds[ix][iy] ;
printf("%f = %f - %f \n",dz,TabZNoeuds[ix+1][iy],TabZNoeuds[ix][iy]);
F = (const_raideur * dz) / sqrt(pow(dz,2) + dx2 + dy2);
// liaison 2eme voisin
dz = TabZNoeuds[ix - 1][iy] - TabZNoeuds[ix][iy] ;
printf("%f = %f - %f \n",dz,TabZNoeuds[ix-1][iy],TabZNoeuds[ix][iy]);
F+= (const_raideur * dz) / sqrt(pow(dz,2) + dx2 + dy2);
// liaison 3eme voisin
dz = TabZNoeuds[ix][iy + 1] - TabZNoeuds[ix][iy];
printf("%f = %f - %f \n",dz,TabZNoeuds[ix][iy +1],TabZNoeuds[ix][iy]);
F+= (const_raideur * dz) / sqrt(pow(dz,2) + dx2 + dy2);
// liaison 4eme voisin
dz = TabZNoeuds[ix][iy - 1] - TabZNoeuds[ix][iy];
printf("%f = %f - %f \n\n",dz,TabZNoeuds[ix][iy - 1],TabZNoeuds[ix][iy]);
F+= (const_raideur * dz) / sqrt(pow(dz,2) + dx2 + dy2);

Je me demande c'est quoi exactement l'utilité de ces forces.

Merci d'avance
SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
29 août 2008 à 17:24
Salut,

Selon le lien : http://fr.wikipedia.org/wiki/M%C3%A9thode_d%27Euler

La méthode d'euler est utiliser pour calculer des valeur approchées de primitive,
Dans mon code je calcule l'accéleration qui est éale à la somme des forces (2nd loie de Newton),
puis je dérive pour obtenir la vitesse et je redérive pour obtenir la position (en fonction du temps).
koda_12 Messages postés 7 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 29 août 2008
29 août 2008 à 12:55
visual studio existe en version express et cette version est gratuite, il y a moins de fonctionnalités que la version payante.
visual studio n'en reste pas moins le meilleur éditeur gratuit à ce jour, enfin c'est ce que j'en pense personnellement j'en ai essayé pas mal parmis ceux kdevelop vim, eclipse qui est bien aussi.
Couplé avec visual assist x que tu pourras trouver chez wholetomato l'éditeur devient vraiment puissant.
Ce que tu gagnes c'est surtout de la productivité le couple vst+vax te permet de
-documenter ton code en deux clic
-changer des signatures et propager les changements à tous les appels
-renommer des classes de la même manière
-renommer des variables
-coloration syntaxique
-aide et documentation contextuelle
etc etc
tu devrais l'essayer tout simplement

pour la méthode d'euler
http://fr.wikipedia.org/wiki/M%C3%A9thode_d%27Euler
medACK Messages postés 30 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 7 octobre 2009 1
28 août 2008 à 20:16
Salut, c'est juste que je travail avec DEV C++, j'aimerai bien que vous m'expliquiez la raison pour laquelle vous utiliser Visual; car j'aimerai bien l'apprendre s'il a un plus.
SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
28 août 2008 à 16:43
Salut,

NISALONCAJE:
# TabZVitesses[ix][iy] = TabZVitesses[ix][iy] + (const_dt * A);
# // En déduire la position courante du noeud
# nouvTabZNoeud[ix][iy] = TabZNoeuds[ix][iy] + (const_dt * TabZVitesses[ix][iy]);

^^ c'est la méthode d'euler ^^

peut être que cela s'appel la méthode d'euler !

Sinon, pour l'exe, je le met dès que possible,
disons ce soir si j'y pense...
Et oui, j'ai développé avec Visual, pourquoi espères tu le contraire?
medACK Messages postés 30 Date d'inscription dimanche 20 juillet 2008 Statut Membre Dernière intervention 7 octobre 2009 1
28 août 2008 à 00:21
salut, ton sujet ma trop intéresser malgré que je suis que sur la 2D en ce moment, mais malheureusement je pas pus le compilé, y'a trop de fichier partout, alors j'aimerai que tu donne un exe, et puis dis moi c'est pas en Visual j'espère..
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
27 août 2008 à 09:54
# TabZVitesses[ix][iy] = TabZVitesses[ix][iy] + (const_dt * A);
# // En déduire la position courante du noeud
# nouvTabZNoeud[ix][iy] = TabZNoeuds[ix][iy] + (const_dt * TabZVitesses[ix][iy]);

^^ c'est la méthode d'euler ^^
SebLinck Messages postés 212 Date d'inscription mardi 17 mai 2005 Statut Membre Dernière intervention 23 juin 2011
27 août 2008 à 09:12
Salut,

Dès que je peux ajouter l'executable, je le fais...

Sinon, je n'ai pas utiliser la méthode d'Euler pour modéliser la surface,
ou alors je ne m'en suis pas rendu compte.
Mais le calcul de force en général ( Force du ressort, gravité...)
shenron666 Messages postés 229 Date d'inscription dimanche 14 septembre 2003 Statut Membre Dernière intervention 20 août 2014
25 août 2008 à 23:35
Salut, tu pourrais ajouter l'executable compilé dans ton zip (renommé en .ex par exemple sinon il est supprimé) stp ? merci d'avance
nisaloncaje Messages postés 154 Date d'inscription samedi 7 janvier 2006 Statut Membre Dernière intervention 28 septembre 2008
25 août 2008 à 11:49
je n'ai pas trop regardé comment c'était écrit, mais ca marche pas trop mal ^^

cependant, j'ai vu que tu utilisais une méthode d'Euler pour modéliser l'eau, n'as tu pas peur de risque d'"explosion" du système en cas de pas trop grand ?
par contre je pense que tu peux mieux faire pour l'affichage de l'eau :)

voila mais aller 8/10 ^^
koda_12 Messages postés 7 Date d'inscription lundi 4 juillet 2005 Statut Membre Dernière intervention 29 août 2008
25 août 2008 à 03:29
problème épineux, interressant
Rejoignez-nous