Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // structure de Position flottants pour réaliser les fractales
- typedef struct
- {
- double x;
- double y;
- } Fpos;
- /*Pré-requis : 0 <= prct <= 100
- 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.
- */
- Fpos between(Fpos p1, Fpos p2, double prct)
- {
- Fpos p3;
- p3.x = (p2.x-p1.x)*prct/100.0+p1.x;
- p3.y = (p2.y-p1.y)*prct/100.0+p1.y;
- return p3;
- }
- /*Pré-requis : aucun
- *Action : créer un triangle de Sierpiński à partir des 3 points reçu. i étant le nombre d'itérations restant.
- */
- void triangle(Fpos p1, Fpos p2, Fpos p3, int i)
- {
- if(i <= 0){
- //tracé des 3 segment du triangle
- lineDrawer(p1, p2);
- lineDrawer(p2, p3);
- lineDrawer(p3, p1);
- }
- if(i > 0){
- i--; //décrémentation du nombre d'iterations
- /*appel de la fonction triangle pour construire
- les trois triangle de Sierpiński contenus
- dans le triangle actuel*/
- triangle(p1, between(p1,p3,50), between(p1,p2,50), i);
- triangle(p2, between(p2,p1,50), between(p2,p3,50), i);
- triangle(p3, between(p3,p1,50), between(p3,p2,50), i);
- }
- }
Add Comment
Please, Sign In to add comment