Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Objet
- {
- public :
- // un constructeur de copie pour les méthodes dans système :
- virtual std::unique_ptr<Objet> copie() const=0 ;
- // pour commencer les méthodes de bases recommandées :
- virtual Vecteur distance( Boule& autre ) =0 ; // renvois la distance la plus courte entre la boule et l'objet .
- virtual double t_collision ( Boule& autre , double dt, Integrateur i ) =0 ; // renvois le Tao i.e. temps jusqu'à la prochaine collision .
- virtual void collision (Boule &autre )=0 ; // gestions de la collision entre les boules et les objets .. mise a jour des forces s'appliquant sur la boule ...
- virtual double EnergieCinetique (Boule const& ) const = 0 ;
- };
- using namespace std ;
- int main ()
- {
- Boule b1(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0) ;
- Vecteur U( 0.0 , 0.0 , 1.0) ;
- U.augmente(0.0) ; U.augmente(0.0) ; U.augmente(0.0) ;
- b1.set_omega(U);
- Vecteur V(1.0,0.0,2.0);
- V.augmente(0.0); V.augmente(0.0);V.augmente(0.0);
- b1.set_omega_prime(V);
- Boule b2(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0);
- Vecteur W(0.08,0.1,1.16);
- W.augmente(0.0); W.augmente(0.0); W.augmente(0.0);
- Vecteur X(0.0,0.0,0.0);
- X.augmente(0.0); X.augmente(0.0); X.augmente(0.0);
- b2.set_omega(W);
- b2.set_omega_prime(X);
- cout << "boule 1 " <<b1 << endl ;
- cout << "boule 2 " << b2 << endl ;
- double dt(0.01);
- Integrateur i;
- double tao ;
- tao=b1.t_collision(b1, dt , i );
- if (tao<dt)
- {
- i.Integre(b1, tao);
- i.Integre(b2, tao);
- b1.collision(b2);
- return 0;
- }
- i.Integre(b1,dt);
- i.Integre(b2, dt);
- cout << "boule 1 " <<b1 << endl ;
- cout << "boule 2 " << b2 << endl ;
- return 0 ;
- }
- unique_ptr<Objet> Boule :: copie() const
- {
- return unique_ptr<Objet>(new Boule(*this));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement