Friday, December 4, 2009

Sirpinsky Triangle

#include
#include
#include
#include
# define pi 3.142857
# define round(a)((int)(a+0.5))
int max=6;
//))))))))))))))))
void ddaline(int x1,int y1,int x2,int y2,int col)
{ int steps,dx,dy,i;float xinc,yinc,x,y;
dx=x2-x1;
dy=y2-y1;
if(abs(dx)>abs(dy))
steps=abs(dx);
else
steps=abs(dy);
xinc=(float)dx/steps;
yinc=(float)dy/steps;
x=x1;y=y1;
putpixel(x,y,col);
for(i=0;i {
x=x+xinc;
y=y+yinc;
putpixel(round(x),round(y),col);
}
}
float minside(int x1,int y1,int x2,int y2,int x3,int y3)
{float a,b,c,s;
a=sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2));

b=sqrt((x2-x3)*(x2-x3)+(y2-y3)*(y2-y3));
c=sqrt((x1-x3)*(x1-x3)+(y1-y3)*(y1-y3));
if(a s=a;
else
s=b;
if(s>c)
s=c;
return s;
}
//--------------------------------------
void triangle(int x1,int y1,int x2,int y2,int x3,int y3,int i)
{ float mx1,my1,mx2,my2,mx3,my3;
i++;
if(i==max)
return;
else
{
ddaline(x1,y1,x2,y2,YELLOW);
ddaline(x2,y2,x3,y3,YELLOW);
ddaline(x3,y3,x1,y1,YELLOW);
mx1=(x1+x2)/2 ;
my1=(y1+y2)/2;
mx2=(x2+x3)/2 ;
my2=(y2+y3)/2;
mx3=(x1+x3)/2 ;
my3=(y1+y3)/2;
triangle(x1,y1,mx1,my1,mx3,my3,i);
triangle(x2,y2,mx1,my1,mx2,my2,i);
triangle(x3,y3,mx2,my2,mx3,my3,i);
}
}

//)))))))))))))))
void main()
{ int gd,gm; int x1,y1,x2,y2,x3,y3;float small;
detectgraph(&gd,&gm);
initgraph(&gd,&gm,"..\\bgi");
printf("\n enter the co ordinates of the triangle");
scanf("%d",&x1);
scanf("%d",&y1);

printf("\n enter the co ordinates of the triangle");
scanf("%d",&x2);
scanf("%d",&y2);
printf("\n enter the co ordinates of the triangle");
scanf("%d",&x3);
scanf("%d",&y3);
small=minside(x1,y1,x2,y2,x3,y3);

max=2+(int)small/20;
cleardevice();
triangle(x1,y1,x2,y2,x3,y3,0);

getch();
}

No comments:

Post a Comment