Koch

SinCos

koch

Rezolvare 1

#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <graphics.h>
#include<time.h>
#define pi 3.14

void koch(float x0, float y0,float l,float u,int n)
{float xa,ya,xb,yb,xc,yc,x1,y1;
//daca nu suntem pe nivelul n==1 (cel de
//baza, cind fractalul se reduce la un segment
if(n!=1)
{
//calculam coordonatele punctelor Pa, Pb, Pc
xa=x0+l/3*cos(u);
ya=y0-l/3*sin(u);
xb=xa+l/3*cos(u+pi/3);
yb=ya-l/3*sin(u+pi/3);
xc=xb+l/3*cos(u-pi/3);
yc=yb-l/3*sin(u-pi/3);
//Si apelam recursiv desenarea fractalului
//pe nivelele urmatoare:
koch(x0,y0,l/3,u,n-1);
koch(xa,ya,l/3,u+pi/3,n-1);
koch(xb,yb,l/3,u-pi/3,n-1);
koch(xc,yc,l/3,u,n-1);
}
else
{
//iar daca suntem pe nivelul 1, desenam pur si
//simplu segmentul:

x1=x0+l*cos(u);
y1=y0-l*sin(u);
line(x0,y0,x1,y1);
}
}
int main(void)
{ int n=10;
int gd,gm;
initgraph(&gd, &gm, „”);
srand(time(NULL));
initwindow(getmaxwidth(),getmaxheight(),”Proiect”);
koch(50,470,1400,0,n);
getch();
}

Rezolvare 2

2

#include<iostream.h>
#include<stdlib.h>
#include<conio.h>
#include<graphics.h>
#include<dos.h>
#include<math.h>
float pi=3.14, alfa;
void koch(int n, int l)
{
if (n==0)
linerel(int(l*cos(alfa*pi/180)),int(l*sin(alfa*pi/180)));
else
{
koch(n-1,l/3);
alfa=alfa-60;
koch(n-1,l/3);
alfa=alfa+120;
koch(n-1,l/3);
alfa=alfa-60;
koch(n-1,l/3);
}
}
void fulg_koch(int n,int l)
{
koch(n,l/3);alfa+=120;
koch(n,l/3);alfa+=120;
koch(n,l/3);alfa+=120;
}
int main()
{
int gd, gm,n,l;
gd=DETECT;
initgraph(&gd,&gm,””);
initwindow(getmaxwidth(),getmaxheight(),”Koch”);

l=900;n=1;
int x=50,y=150;moveto(x,y);

for(n=1;n<=4;n++)
{fulg_koch(n,l);
x+=350;moveto(x,y);}
getch();
closegraph();
return 0;
}

Despre scoalamultimedia
la 3 click distanta :)

Lasă un răspuns

Completează mai jos detaliile despre tine sau dă clic pe un icon pentru autentificare:

Logo WordPress.com

Comentezi folosind contul tău WordPress.com. Dezautentificare / Schimbă )

Poză Twitter

Comentezi folosind contul tău Twitter. Dezautentificare / Schimbă )

Fotografie Facebook

Comentezi folosind contul tău Facebook. Dezautentificare / Schimbă )

Fotografie Google+

Comentezi folosind contul tău Google+. Dezautentificare / Schimbă )

Conectare la %s

%d blogeri au apreciat asta: