/*
 * Ce programme calcule le sinus et le cosinus d'un angle (en radians) ainsi que les coordonnées des points sur un cercle de position et de rayon connus
 * Le calcul se fait dans une boucle de 360 pour integration du résultat (x1 et y1) pour affichage avec un écran OlED 128x32
 */
 double sint ;
 double cost ; 
 double radt ;
 const float pi = 3.14159 ;
 double u ;         // coordonnes du point sur le cercle (avec décimal)
 double v ;         // coordonnes du point sur le cercle (avec décimal)
 int x1;            // coordonnes du point sur le cercle arrondi
 int y1;            // coordonnes du point sur le cercle arrondi
 int x0 = 64;    // coordonnes du centre du cercle
 int y0 = 16;    // coordonnes du centre du cercle
 int r = 14;     // rayon du cercle
 int t ;

 
 void setup() {
 Serial.begin(9600);  
 
}


void loop() {
 for (int t = 1; t < 361; t++) {   // boucle pour 360°
  
 double radt = t * (pi / 180);
 double sint = sin(radt); 
 double cost = cos(radt); 
  u = (int) x0 + (r*cost);
  v = (int) y0 + (r*sint);
  x1 = round(u);             // arrondi à l'entier le plus proche
  y1 = round(v);             // arrondi à l'entier le plus proche
 
  Serial.print("t=");
  Serial.println(t);
  Serial.print("sint="); 
  Serial.println(sint);
  Serial.print("cost=");
  Serial.println(cost);
  Serial.print("u="); 
  Serial.println(u);
  Serial.print("v="); 
  Serial.println(v);
  Serial.print("x1="); 
  Serial.println(x1);
  Serial.print("y1="); 
  Serial.println(y1);
  Serial.println( );
 
  delay(3000);
 
  }
}

/*
 * Ce programme calcule le sinus et le cosinus d'un angle (en radians) ainsi que les coordonnées des points sur un cercle de position et de rayon connus
 * Le calcul se fait dans une boucle de 360 pour integration du résultat (x1 et y1) pour affichage avec un écran OlED 128x32
 */
 double sint ;
 double cost ; 
 double radt ;
 const float pi = 3.14159 ;
 double u ;         // coordonnes du point sur le cercle (avec décimal)
 double v ;         // coordonnes du point sur le cercle (avec décimal)
 int x1;            // coordonnes du point sur le cercle arrondi
 int y1;            // coordonnes du point sur le cercle arrondi
 int x0 = 64;    // coordonnes du centre du cercle
 int y0 = 16;    // coordonnes du centre du cercle
 int r = 14;     // rayon du cercle
 int t ;

 
 void setup() {
 Serial.begin(9600);  
 
}


void loop() {
 for (int t = 1; t < 361; t++) {   // boucle pour 360°
  
 double radt = t * (pi / 180);
 double sint = sin(radt); 
 double cost = cos(radt); 
  u = (int) x0 + (r*cost);
  v = (int) y0 + (r*sint);
  x1 = round(u);             // arrondi à l'entier le plus proche
  y1 = round(v);             // arrondi à l'entier le plus proche
 
  Serial.print("t=");
  Serial.println(t);
  Serial.print("sint="); 
  Serial.println(sint);
  Serial.print("cost=");
  Serial.println(cost);
  Serial.print("u="); 
  Serial.println(u);
  Serial.print("v="); 
  Serial.println(v);
  Serial.print("x1="); 
  Serial.println(x1);
  Serial.print("y1="); 
  Serial.println(y1);
  Serial.println( );
 
  delay(3000);
 
  }
}