///////////////////////////////////////ARC //************************************* //************************************ //************************************ public static class Arc{ Vecteur axe; float angle,rapport; int r,g,b; Vecteur[] points; public Arc( Vecteur v,float angle,float rapport){ v.normalize(); this.axe=v; this.angle=angle; this.rapport=rapport; this.points= new Vecteur[51]; } //******************************************************************** public Vecteur arrivee(Vecteur depart, float ang2){ Vecteur res; float ang=ang2/2; Quat q=new Quat((float)Math.cos(ang),axe.mul((float)Math.sin(ang))); Quat qv=new Quat(0,depart.x,depart.y,depart.z); Quat qc=new Quat((float)Math.cos(ang),axe.mul(-(float)Math.sin(ang))); Quat q1=Quat.mul(qv,qc); Quat q2=Quat.mul(q,q1); res=q.tourner(depart); return res; } //************************************************************** void calculerPoints(Vecteur depart){ for(int i=0;i<50;i++){ points[i]=arrivee(depart,angle*i/50); } points[50]=arrivee(depart,angle); } //************************************************************** Quat donneQuat(){ return new Quat((float)Math.cos(angle/2)*rapport,axe.mul((float)Math.sin(angle/2)*rapport)); } }