class GrandCylindre{ int nbAnneaux=10; int nbImages=30;//nb d'images par anneaux float rayCyl;//rayon du cylindre float hauCyl;//hauteur du cylindre float hAnneau; float bouge; float centreImpactangle;// decalage de l'anneau Anneau[] anneaux=new Anneau[nbAnneaux]; Vecteur XX,YY,ZZ; Vecteur vectEyeMouse , vectEyeImpact,vectOImpact,vectCentreImpact; Quat quatCyl, quatCylConj ; //------------------------------------ //--- //------------------------------------ public GrandCylindre(){ quatCyl=new Quat(new Vecteur(0.2,0.12,1),0.3,1); XX=X0.cloner(); YY=Y0.cloner(); ZZ=Z0.cloner(); rayCyl=200; hauCyl=400; vectEyeMouse=new Vecteur(0,0,dEcranEye); hAnneau=hauCyl/nbAnneaux; for(int i=0;i=0){ lambda=(-b+sqrt(delta))/a; vectEyeImpact= vectEyeMouse.mul(lambda); vectOImpact=eye.ajouter(vectEyeMouse,lambda); vectCentreImpact=Vecteur.comb(lambda,vectEyeMouse,distance,Z0); letrajet.addVecteur( vectCentreImpact.cloner()); } else{ vectOImpact=new Vecteur(300,300,300); vectCentreImpact=new Vecteur(300,300,300); } } //++++++++++++++++++++++++++++++++++++++++++++++++++ // //++++++++++++++++++++++++++++++++++++++++++++++++++ void bouger(){ bouge+=0.01; quatCyl=new Quat(new Vecteur(cos(bouge)+bouge/500,sin(bouge*1.5),sin(bouge*1.5)+cos(bouge)), bouge+cos(bouge),1); quatCyl.normalize(1); quatCylConj=quatCyl.conjugue(); } }