#include <stdio.h>
#define NTRIANGULOS 6
struct Triangulo
{
float xA,yA;
float xB,yB;
float xC,yC;
};
int main(int argc, char *argv[])
{
struct Triangulo triangulo[NTRIANGULOS];
int n,m,ntriangulos;
FILE*fout;
fout
=fopen("triangulo.txt","w");
triangulo[0].xA = 0;
triangulo[0].yA = 0;
triangulo[0].xB = 1;
triangulo[0].yB = 0;
triangulo[0].xC = 0.5;
triangulo[0].yC = 1;
ntriangulos=1;
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 ;
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*(triangulo[n].xB - triangulo[n].xA)/4;
triangulo[m].yC=triangulo[n].yA + (triangulo[n].yC- triangulo[n].yA)/2 ;
/* tercer triangulo */
triangulo[m].xA=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/4;
triangulo[m].yA=triangulo[n].yA + (triangulo[n].yC - triangulo[n].yA)/2;
triangulo[m].xB=triangulo[n].xA + 3*(triangulo[n].xB -triangulo[n].xA)/4;
triangulo[m].yB=triangulo[n].yA + (triangulo[n].yC -triangulo[n].yB)/2;
triangulo[m].xC= triangulo[n].xC;
triangulo[m].yC= triangulo[n].yC;
/* primer triangulo - inicial */
triangulo[n].xC=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/4;
triangulo[n].yC=triangulo[n].xA +(triangulo[n].yC - triangulo[n].yA)/2;
triangulo[n].xB=triangulo[n].xA + (triangulo[n].xB - triangulo[n].xA)/2;
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);
}