Advertisement
Guest User

Untitled

a guest
May 24th, 2015
234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.95 KB | None | 0 0
  1. class Objet
  2. {
  3.     public :
  4.    
  5.     // un constructeur de copie pour les méthodes dans système :
  6.     virtual std::unique_ptr<Objet> copie() const=0 ;
  7.    
  8.     // pour commencer les méthodes de bases recommandées :
  9.    
  10.     virtual Vecteur distance( Boule& autre ) =0 ; // renvois la distance la plus courte entre la boule et l'objet .
  11.    
  12.     virtual double t_collision ( Boule& autre ,  double dt, Integrateur i ) =0 ; // renvois le Tao i.e. temps jusqu'à la prochaine collision .
  13.    
  14.     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 ...
  15.     virtual double EnergieCinetique (Boule const& ) const = 0  ;
  16.    
  17.    
  18. };
  19.  
  20. using namespace std ;
  21.  
  22. int main ()
  23. {
  24.    
  25.     Boule b1(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0) ;
  26.     Vecteur U( 0.0 , 0.0 , 1.0) ;
  27.     U.augmente(0.0) ; U.augmente(0.0) ; U.augmente(0.0) ;
  28.     b1.set_omega(U);
  29.     Vecteur V(1.0,0.0,2.0);
  30.     V.augmente(0.0); V.augmente(0.0);V.augmente(0.0);
  31.     b1.set_omega_prime(V);
  32.    
  33.     Boule b2(0.02625, 1676.21 , 0.99 ,0.2, 0.0 , 0.0);
  34.     Vecteur W(0.08,0.1,1.16);
  35.     W.augmente(0.0); W.augmente(0.0); W.augmente(0.0);
  36.     Vecteur X(0.0,0.0,0.0);
  37.     X.augmente(0.0); X.augmente(0.0); X.augmente(0.0);
  38.     b2.set_omega(W);
  39.     b2.set_omega_prime(X);
  40.    
  41.    
  42.     cout << "boule 1 " <<b1 << endl ;
  43.     cout << "boule 2 " << b2 << endl ;
  44.  
  45.    
  46.     double dt(0.01);
  47.     Integrateur i;
  48.     double tao ;
  49.     tao=b1.t_collision(b1, dt , i );
  50.    
  51.     if (tao<dt)
  52.        
  53.     {
  54.         i.Integre(b1, tao);
  55.         i.Integre(b2, tao);
  56.         b1.collision(b2);
  57.        
  58.         return 0;
  59.     }
  60.    
  61.     i.Integre(b1,dt);
  62.     i.Integre(b2, dt);
  63.    
  64.     cout << "boule 1 " <<b1 << endl ;
  65.     cout << "boule 2 " << b2 << endl ;
  66.    
  67.    
  68.    
  69.     return 0 ;
  70. }
  71.  
  72. unique_ptr<Objet> Boule :: copie() const
  73. {
  74.     return unique_ptr<Objet>(new Boule(*this));
  75. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement