Guest User

Untitled

a guest
Feb 19th, 2018
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.22 KB | None | 0 0
  1. // structure de Position flottants pour réaliser les fractales
  2. typedef struct
  3. {
  4.     double x;
  5.     double y;
  6. } Fpos;
  7.  
  8.  
  9. /*Pré-requis : 0 <= prct <= 100
  10. Résultat : le point se trouvant sur le segment [p1,p2] dont la distance avec p1 est un pourcententage de celle entre p1 et p2.
  11. */
  12. Fpos between(Fpos p1, Fpos p2, double prct)
  13. {
  14.     Fpos p3;
  15.     p3.x = (p2.x-p1.x)*prct/100.0+p1.x;
  16.     p3.y = (p2.y-p1.y)*prct/100.0+p1.y;
  17.  
  18.     return p3;
  19. }
  20.  
  21. /*Pré-requis : aucun
  22.  *Action : créer un triangle de Sierpiński à partir des 3 points reçu. i étant le nombre d'itérations restant.
  23. */
  24. void triangle(Fpos p1, Fpos p2, Fpos p3, int i)
  25. {
  26.     if(i <= 0){
  27.                 //tracé des 3 segment du triangle
  28.         lineDrawer(p1, p2);
  29.         lineDrawer(p2, p3);
  30.         lineDrawer(p3, p1);
  31.     }
  32.  
  33.     if(i > 0){
  34.         i--; //décrémentation du nombre d'iterations
  35.         /*appel de la fonction triangle pour construire
  36.          les trois triangle de Sierpiński contenus
  37.          dans le triangle actuel*/
  38.         triangle(p1, between(p1,p3,50), between(p1,p2,50), i);
  39.         triangle(p2, between(p2,p1,50), between(p2,p3,50), i);
  40.         triangle(p3, between(p3,p1,50), between(p3,p2,50), i);
  41.     }
  42. }
Add Comment
Please, Sign In to add comment