class Secteur { Vecteur prem , der, axe,vscreen; float angle, rapport; Quat q; Cone uncone; String tex; public Secteur(Vecteur prem,Vecteur der,Vecteur ax,Quat qua,float angl){ this.prem = prem; this.der = der; this.axe=ax; this.q=qua; this.angle=angl; uncone=new Cone(); rapport=1; normalizeVect(); } void normalizeVect(){ prem.normalize(); der.normalize(); } Vecteur donneDer(Vecteur p){ Vecteur vnormal=der.ajouter(p.normerCopie(der.length()),1); vnormal.normalize() ; Vecteur der1= symetriePlane(prem,vnormal); der1.normalize(p.length()*rapport); return der1; } Vecteur donnePrem(Vecteur d){ Vecteur vnormal=prem.ajouter(d.normerCopie(prem.length()),1); vnormal.normalize(); Vecteur prem1= symetriePlane(der,vnormal); prem1.normalize(d.length()/rapport); return prem1; } Vecteur symetriePlane(Vecteur m,Vecteur dansplan){ dansplan.normalize(); dansplan.normalize(dansplan.dot(m)); Vecteur sym=Vecteur.comb(2,dansplan,-1,m); return sym; } void dessiner(String tex,int c){ this.tex=tex; Vecteur v=axe.normerCopie(4000); fill(c); uncone.dessiner(v); pushMatrix(); translate(v.x,v.y,v.z); fill(255,155,105); uncone.dessiner(prem.normerCopie(1000)); fill(255,255,0); uncone.dessiner(der.normerCopie(1000)); fill(c); uncone.dessiner(axe.normerCopie(1000)); popMatrix(); vscreen=coorabs(axe.normerCopie(4100)); } void premDansLePlan(Vecteur v){ Vecteur ax1=axe.normerCopie(1); Vecteur projete=ax1.mul(ax1.dot(v)); Vecteur prem1=v.ajouter(projete,-1.0f); prem1.normalize(prem.length()); der=donneDer(prem1); prem=prem1; } void derDansLePlan(Vecteur v){ Vecteur ax1=axe.normerCopie(1); Vecteur projete=ax1.mul(ax1.dot(v)); Vecteur der1=v.ajouter(projete,-1.0f); der1.normalize(der.length()); prem=donnePrem(der1); der=der1; } void printer(int n){ //println("secteur"+n+ "angle = "+angle+" axe.x= "+axe.x+" axe.y= "+axe.y+" axe.y= "+axe.y); } }