from http://vernier.frederic.free.fr/Teaching/IntroGraphic
Figure 3 : Le losange |
Figure 4 : Le soleil |
Figure 5 : Le soleil rempli |
On suppose que l'on dispose des fonctions suivantes :
void pixel(int x, int y, int r, int g, int b);
void segment(int x1, int y1, int x2, int y2, int r, int g, int b);
void boiteRemplie(int x1, int y1, int x2, int y2, int r, int g, int b);
void triangle(int x1, int y1, int x2, int y2, int x3, int y3, int r, int g, int b);
void triangleRempli(int x1, int y1, int x2, int y2, int x3, int y3, int r, int g, int b);
void losange(float xa, float ya, float xb, float yb, int r, int g, int b);
void setup(){
size(640, 480);
}
void draw(){
losange (50, 60, 80, 20, 255, 0, 0);
}
void losange(float xa, float ya, float xb, float yb,
int r, int g, int b){
float ABx = xb-xa;
float ABy = yb-ya;
float xc = xa + ABx/2 + ABy;
float yc = ya + ABy/2 - ABx;
float xd = xa + ABx/2 - ABy;
float yd = ya + ABy/2 + ABx;
line(xa, ya, xb, yb);
line(xa, ya, xc, yc);
line(xa, ya, xd, yd);
line(xb, yb, xc, yc);
line(xb, yb, xd, yd);
}
losange
de la question précédentes, donnez le code de la fonction soleil(...)
suivante qui dessine un soleil de couleur noire avec 4*n losanges autour d'un point O (xO, yO) et de rayon R:
(Figure 4)void soleil(int xO, int yO, int R, int n) ;
void soleil(int xO, int yO, int R, int n){
for (int i=0; i<n; i=i+1){
float a1 = PI*2*i/n;
float a2 = PI*2*(i+1)/n;
float x1 = xO+R*cos(a1);
float y1 = yO+R*sin(a1);
float x2 = xO+R*cos(a2);
float y2 = yO+R*sin(a2);
losange (x1,y1,x2,y2, 0,0,0);
}
}
void draw(){
soleil (width/2, height/2, 200, 12);
}
void soleil(int xO, int yO, int R, int n){
for (int i=0; i<n; i=i+1){
float a1 = PI*2*i/n;
float a2 = PI*2*(i+1)/n;
float x1 = xO+R*cos(a1);
float y1 = yO+R*sin(a1);
float x2 = xO+R*cos(a2);
float y2 = yO+R*sin(a2);
losange (x1,y1,x2,y2, 0,0,0,255);
triangleRempli(xO, yO, x1, y1, x2, y2, 255, 255, 0 );
}
}
void draw(){
soleil (width/2, height/2, 200, 12);
}
Indices : commencez par calculer les coordonnées des points avec les fonctions cos(...) et sin(...).
Avec n=3 comme dans la figure en exemple on a donc la figure bien régulière de la page précédente. Nous voudrions un soleil bien moins régulier et introduire du hasard. Nous ne vous demandons PAS d'écrire l'algorithme correspondant mais juste d'indiquer