Muchas gracias de antemano!
Código
#include <stdio.h> #define NTRIANGULOS 3 struct Triangulo { float xA,yA; float xB,yB; float xC,yC; }; int main(int argc, char *argv[]) { struct Triangulo triangulo[NTRIANGULOS]; int n,m,p,ntriangulos; FILE*fout; triangulo[0].xA = 0.0; triangulo[0].yA = 0.0; triangulo[0].xB = 1.0; triangulo[0].yB = 0.0; triangulo[0].xC = 0.5; triangulo[0].yC = 1.0; ntriangulos=1.0; do{ for(n=ntriangulos-1; n>=0&&ntriangulos<NTRIANGULOS; n--) { m=ntriangulos; /* segundo triangulo */ triangulo[m].xA=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/2.0 ; triangulo[m].yA=triangulo[n].yA; triangulo[m].xB=triangulo[n].xB; triangulo[m].yB=triangulo[n].yB; triangulo[m].xC=triangulo[n].xA + 3.0*(triangulo[n].xB - triangulo[n].xA)/4.0; triangulo[m].yC=triangulo[n].yA + (triangulo[n].yC- triangulo[n].yA)/2.0 ; p=ntriangulos; /* tercer triangulo */ triangulo[p].xA=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/4.0; triangulo[p].yA=triangulo[n].yA + (triangulo[n].yC - triangulo[n].yA)/2.0; triangulo[p].xB=triangulo[n].xA + 3*(triangulo[n].xB -triangulo[n].xA)/4.0; triangulo[p].yB=triangulo[n].yA + (triangulo[n].yC -triangulo[n].yB)/2.0; triangulo[p].xC= triangulo[n].xC; triangulo[p].yC= triangulo[n].yC; /* primer triangulo - inicial */ triangulo[n].xC=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/4.0; triangulo[n].yC=triangulo[n].xA +(triangulo[n].yC - triangulo[n].yA)/2.0; triangulo[n].xB=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/2.0; triangulo[n].yB=triangulo[n].yB; triangulo[n].xA=triangulo[n].xA; triangulo[n].yA=triangulo[n].yA; ntriangulos++; } } while(ntriangulos<NTRIANGULOS); for(n=0;n<ntriangulos;n++) { fprintf(fout,"%g\t%g\n%g\t%g\n%g\t%g\n",triangulo[n].xA, triangulo[n].yA, triangulo[n].xB, triangulo[n].yB, triangulo[n].xC, triangulo[n].yC); } return(0); }
Code:Blocks, lenguaje C