Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- void ellipseMedian(MyGrillePixels & g, int xC, int yC, int rayonX, int rayonY){
- // Premier quadrant
- int x=0, y=rayonY, d, deltaE, deltaSE;
- int b2=rayonY*rayonY, a2=rayonX*rayonX;
- d = 4*b2 + a2*(1-4*rayonY);
- g.allumerPixel(0+xC,rayonY+yC,126,20,251); // Allumage du promier et de ses 3 symétriques
- g.allumerPixel(0+xC,-rayonY+yC,126,20,251);
- g.allumerPixel(rayonX+xC,0+yC,126,20,251);
- g.allumerPixel(-rayonX+xC,0+yC,126,20,251);
- while(2*b2*(x+1) < a2*(2*y-1)){ // 1ère région
- if(d<0){ // Mouvement vers l'est
- d+=b2*(8*x+12);
- x++;
- }else{ // Mouvement vers Sud Est
- d+= b2*(8*x+12)+8*a2*(1-y);
- x++; y--;
- }
- g.allumerPixel(x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,-y+yC,126,20,251);
- g.allumerPixel(x+xC,-y+yC,126,20,251);
- }
- // 2ème région
- d = b2*(2*x+1)*(2*x+1) + 4*a2*(y-1)*(y-1)-4*a2*b2;
- while(y>0){
- if(d<0){ // Mvt SE
- d+= a2*(12-8*y)+b2*(8*x+8);
- x++;
- y--;
- }else{ // Mvt S
- d+= a2*(12-8*y);
- y--;
- }
- g.allumerPixel(x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,-y+yC,126,20,251);
- g.allumerPixel(x+xC,-y+yC,126,20,251);
- }
- while(x<rayonX){
- g.allumerPixel(x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,y+yC,126,20,251);
- g.allumerPixel(-x+xC,-y+yC,126,20,251);
- g.allumerPixel(x+xC,-y+yC,126,20,251);
- x++;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment