Sie sind auf Seite 1von 5

Div.:-B Roll No.

:-31

Practical 11 (A)
Aim: Koch Curve.
Program Code:
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
class koch
{
public:
void koch2D(float x0,float y0,float x1,float y1,float xout, float yout,float level)
{
float xa,xb,xd,ya,yb,yd;
float xmid,ymid,outmag,displacemag; if(level==0)
{
line(x0,y0,x1,y1);
}
else
{
xa=x0+0.3333333*(x1-x0); ya=y0+0.3333333*(y1-y0); xb=x0+0.6666666*(x1-x0);
yb=y0+0.6666666*(y1-y0);
koch2D(x0,y0,xa,ya,xout,yout,level-1); //draw first third koch2D(xb,yb,x1,y1,xout,yout,level-1); //draw
second third outmag=sqrt(xout*xout+yout*yout); displacemag=tan(3.14159/3.0)*sqrt((x1-x0)*(x1-
x0)+(y1- y0)*(y1-y0))/6.0;
xmid=xout*displacemag/outmag; ymid=yout*displacemag/outmag; xd=x0+0.5*(x1-x0)+xmid;
yd=y0+0.5*(y1-y0)+ymid;
koch2D(xa,ya,xd,yd,xa+0.5*(xd-xa)-xb,ya+0.5*(yd-ya)- yb,level-1);

koch2D(xd,yd,xb,yb,xd+0.5*(xb-xd)-xa,yd+0.5*(yb-yd)- ya,level-1);
Div.:-B Roll No.:-31

}}};
koch k;
float x0,y0,x1,y1,xout,yout,level;
cout<<"Enter the value of x0,y0,x1,y1,xout,yout,level"; cin>>x0>>y0>>x1>>y1>>xout>>yout>>level;
k.koch2D(x0,y0,x1,y1,xout,yout,level);
getch(); closegraph();
}

Output:
Div.:-B Roll No.:-31

Practical 11 (B)
Aim: Fractal.
Program Code:
#include<iostream.h>
#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>
void cons(float x1,float y1,float x2,float y2,float x3,float y3)
{float x4,x5,x6,y4,y5,y6;
x4=(x1+x2)/2; y4=(y2+y1)/2;
x5=(x3+x1)/2; y5=(y3+y1)/2;
x6=(x3+x2)/2; y6=(y3+y2)/2;

line(x4,y4,x5,y5);
line(x5,y5,x6,y6);
line(x6,y6,x4,y4);

if(abs(x4-x5)>0&&abs(x5-x6)>0&&abs(x6-x4)>0)
{delay(2);
cons(x1,y1,x4,y4,x5,y5);
cons(x4,y4,x2,y2,x6,y6);
cons(x5,y5,x6,y6,x3,y3);
}
}
void main()
{
clrscr();
Div.:-B Roll No.:-31

int sx,sy;
int gd=DETECT,gm;
initgraph(&gd,&gm,"c:\\tc\\bgi");
float x1,x2,x3,y1,y2,y3;
x1=getmaxx()/2; y1=0;
x2=0; y2=getmaxy();
x3=getmaxx(); y3=getmaxy();

float x4,y4,x5,y5,x6,y6;
x4=(x1+x2)/2; y4=(y2+y1)/2;
x5=(x3+x1)/2; y5=(y3+y1)/2;
x6=(x3+x2)/2; y6=(y3+y2)/2;

line(x1,y1,x2,y2);
line(x1,y1,x3,y3);
line(x3,y3,x2,y2);
line(x4,y4,x5,y5);
line(x5,y5,x6,y6);
line(x6,y6,x4,y4);

cons(x1,y1,x4,y4,x5,y5);
cons(x4,y4,x2,y2,x6,y6);
cons(x5,y5,x6,y6,x3,y3);

getch();
}
Div.:-B Roll No.:-31

Output:

Das könnte Ihnen auch gefallen