84 lines
1.8 KiB
Plaintext
84 lines
1.8 KiB
Plaintext
|
/*
|
||
|
Alors petit programe du jour:
|
||
|
* On a une liste de point.
|
||
|
* On l'affiche a l'ecran.
|
||
|
* on format une chaine de charactere pour l'afficher avec le laser
|
||
|
*
|
||
|
* On definie des courbe de bezier
|
||
|
* On affiche un tunnel
|
||
|
* Il faudra un truc pour definir
|
||
|
*
|
||
|
|
||
|
* ===
|
||
|
* Il nous faut une structure de segment [{pos_x, pos_y, color}, {pos_x, pos_y, color}]
|
||
|
* Un tableau de
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
Point[] c1, c2, c3, c4;
|
||
|
|
||
|
LaserOut laser_frame;
|
||
|
|
||
|
// evite de metre un nombre de point negatif
|
||
|
Point[] create_circle(float center_x, float center_y, float radius, int nb_point, int col)
|
||
|
{
|
||
|
Point[] line = new Point[nb_point + 1];
|
||
|
|
||
|
int i;
|
||
|
for (i = 0; i < line.length; i++)
|
||
|
{
|
||
|
float px, py, factor;
|
||
|
factor = float(i) / float(line.length - 1);
|
||
|
px = center_x + radius * cos(factor * TWO_PI);
|
||
|
py = center_y + radius * sin(factor * TWO_PI);
|
||
|
line[i] = new Point(int(px), int(py), col);
|
||
|
}
|
||
|
return (line);
|
||
|
}
|
||
|
|
||
|
|
||
|
void setup() {
|
||
|
size(800, 800);
|
||
|
background(255);
|
||
|
// ...
|
||
|
|
||
|
// circle = create_circle(400, 400, 70, 25);
|
||
|
laser_frame = new LaserOut();
|
||
|
|
||
|
|
||
|
////////////
|
||
|
|
||
|
int rad, radm, nb_point;
|
||
|
float cx, cy;
|
||
|
|
||
|
nb_point = 25;
|
||
|
rad = 40;
|
||
|
radm = rad / 2;
|
||
|
cx = 400;
|
||
|
cy = 400;
|
||
|
c1 = create_circle( cx, cy, rad, nb_point, getColInt(255, 255, 255));
|
||
|
c2 = create_circle(cx - radm, cy - radm, rad, nb_point, getColInt( 0, 255, 0));
|
||
|
c3 = create_circle(cx + radm, cy - radm, rad, nb_point, getColInt( 0, 0, 255));
|
||
|
c4 = create_circle( cx, cy + radm, rad, nb_point, getColInt(255, 0, 0));
|
||
|
|
||
|
}
|
||
|
|
||
|
int getColInt(int r, int g, int b)
|
||
|
{
|
||
|
int col;
|
||
|
|
||
|
col = ((r & 0xFF) << 16) | ((g & 0xFF) << 8) | ((b & 0xFF));
|
||
|
return (col);
|
||
|
}
|
||
|
|
||
|
void draw(){
|
||
|
|
||
|
// ajoute une chaine de charactere a la frame + dessine sur processing
|
||
|
laser_frame.add_line(c1);
|
||
|
laser_frame.add_line(c2);
|
||
|
laser_frame.add_line(c3);
|
||
|
laser_frame.add_line(c4);
|
||
|
|
||
|
laser_frame.print_frame();
|
||
|
}
|