begin process at 2012 05 29 12:33:24
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Maths & Algorithmes

 > 

Model physique de balle (colision elastique)


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Model physique de balle (colision elastique)

dimanche 21 septembre 2003 à 03:41:49 | Model physique de balle (colision elastique)

coulix

Bonjour =)
apres avoir programmer une sorte de pong en mode text, j essaye de faire une chose simple :

j ai ma balle gotoxy(5,1)
je la lache et elle rebondit selon l axe y, mais a cahque rebond elle pert de l energie 10% de (1/2 m v^2)
acceleration = dv/dt

bref c est pas tres clair
comment faire pour que la balle accelere jusquea gotoxy(5,50), pui rebondissent en ralentissant ect...

si vous avex un bout de code qui traine =)
apperement il ny a pas de source de ce genre ici.

jeudi 30 octobre 2003 à 05:02:03 | Re : Model physique de balle (colision elastique)

gillig

En fait il faut comprendre que a=dv/dt est plus utile sous la forme v = Integrale(a.dt). Il faut donc faire la somme des a.dt pour connaitre la vitesse.
Même chose pour la position, somme des v.dt .
Le seul truc chiant c'est le rebond (voir commentaires).

Je propose quelque chose du genre :

#define ACC_PESANTEUR 9.8 // m/s2
#define PERTE_ENERGIE 0.01 // 10 % perdu au rebond

double h = 1; // Hauteur
double v = 0; // Vitesse
double dt = 0.04 // <=> 25 ème de seconde
double dh; // Variation de la hauteur pendant dt
double dv; // variation de la vitesse pendant dt
while (...)
{
dv = ACC_PESANTEUR * dt;
v += dv;
dh = v * dt;
if (h + dh < 50)
h += dh;
else
{
// on va rentrer en collision =>
// on avance la balle au point de
// rebond (1), on calcule la nouvelle
// vitesse (2) et le temps qu'il reste (3), et
// on redéplace la balle

v = -v; // (2) ça repart dans l'autre sens
v *= PERTE_ENERGIE;

double dt2 = dt*(dh+h-50)/dh; // (3)
h = 50; // (1) pas avant calcul précédent!
dh = v * dt2; // Réactualise dh
h += dh;
}
// afficher
}
Pour passer en 2D, c'est simple, tu transformes h en x et y, v en vx et vy, etc. Tu doubles le code, quoi...


Cette discussion est classée dans : model, balle, colision, physique, elastique


Répondre à ce message

Sujets en rapport avec ce message

[Physique] Rebond [ par ionstorm356 ] Salut tout le monde,je fais rebondir une balle sur un plan et j'aimerai que quand son coefficient de rebond est a 1 la balle ne perde pas d'energie et balle et physique [ par mat74 ] salut a tous voila j'aimerais bien faire un programme dans lequel on voit une balle qui se deplace avec le plus de réalisme possiblepour sa j'ai eu un probleme de physique [ par mat74 ] salut a tousvoila j'ai essayer de gerer une balle dans un  carré de façon réalistepour sa j'ai créer une classe ballevoila la fonction pour définir la [Directx] Deplacement et vitesse d'une balle selon le cpu ? [ par skeleton ] Salut, voila mon probleme je me test avec directx en faisant un casse brique mais voila que je tombe sur un probleme (qui commence a me faire rager et Moteur physique [ par Mofut3 ] Bonjour a tous , j'ai un projet de jeu à faire pour mon école et j'aimerais savoir si quelqu'un pourrait me donner des conseils pour demarrer dans la Problème avec la fonction OnTimer() sous vc++ [ par Djule01 ] Bonjour, Je réalise actuellemnent un casse-briques sous visual c++ 6.0 et j'ai un problème concernant la fonction OnTimer(). J'en suis au stade ou j probleme physique [ par jhouria ] Quelqu un a t il deja essayer de modéliser l'oscillations couplées de N oscillateurs? Apparemment il faut utiliser Runge-Kutta à l'ordre 4 mais commen Moteur physique [ par fred100582 ] Salut, je recherche de la doc sur les moteurs physiques, qq'un a-t-il une adresse en français à me donner car les sites que j'ai consulté restent très connaitre le numero physique d'un disque [ par snowline ] BONJOUR, JE VOUDRAIS SAVOIR SI QQU'UN SAIS OU PUIS JE TROUVER LA FONCTION DU KERNEL ME PERMETTANT DE RETOURNER LE NUM PHYSIQUE DU DISQUE.DE PLUS, JE R Aide physique de corps rigides [ par zerailkiller ] Bonjour, voila je suis actuellement étudiant en IUT info je fais du c et du c++ ( un peu d'opengl) et je voudrais écrire un ptit moteur physique  qui


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,108 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales