[vc++ et djgpp] flocon de von koch avec allegro

Soyez le premier à donner votre avis sur cette source.

Snippet vu 6 034 fois - Téléchargée 37 fois

Contenu du snippet

Ben c'est la figure fractale de Von Koch en moins de 50 lignes

Source / Exemple :


#include "allegro.h" //Flocon de Von Koch par GoldenEye Mai 2002
#define ITERATIONS 7

void dessinerVonKoch(double xa,double ya,double xb,double yb,int iter)
{
	double tempx=(xb-xa)/3;//on coupe le côté en 3
	double tempy=(yb-ya)/3;
	double xd=xa+tempx;
	double yd=ya+tempy;
	double xe=xa+2*tempx;
	double ye=ya+2*tempy;
	double xc=xa+(3*tempx)/2+sqrt(3)*tempy/2;//xc=cos(60)*(xe-xd)-sin(60)*(ye-yd)
	double yc=ya-sqrt(3)*tempx/2+3*tempy/2;//yc=sin(60)*(xe-xd)+cos(60)*(ye-yd)
	if(iter!=0)
	{
		acquire_screen();
		line(screen,xa,ya,xd,yd,255);//évite les trous liés aux arrondis
		line(screen,xe,ye,xb,yb,255);//idem
		triangle(screen,xd,yd,xc,yc,xe,ye,255);//trace le trinagle
		release_screen();
		dessinerVonKoch(xa,ya,xd,yd,iter-1);//on dessine sur les 4 segments nouvellement créés
		dessinerVonKoch(xe,ye,xb,yb,iter-1);
		dessinerVonKoch(xd,yd,xc,yc,iter-1);
		dessinerVonKoch(xc,yc,xe,ye,iter-1);
	}
}

int main()
{
	double tabx[3]={140,400,660};//abscisses des 3 points initiaux
	double taby[3]={450,0,450};//ordonnées
	int i;
	allegro_init();
	install_keyboard();
	set_gfx_mode(GFX_AUTODETECT,800,600,0,0);
	triangle(screen,tabx[0],taby[0],tabx[1],taby[1],tabx[2],taby[2],255);//triangle initial
	for(i=0;i<3;i++)//on traite chaque côté
		dessinerVonKoch(tabx[i],taby[i],tabx[(i+1)%3],taby[(i+1)%3],ITERATIONS);
	readkey();
	fade_out(1);
	allegro_exit();
	return 0;
}
END_OF_MAIN();

Conclusion :


C'est compatible VC++ et DJGPP (je suis fier de moi). Y a pas de fonction de zoom étant donné l'autosimilarité basique de la figure.
C'est l'une des fractales les plus simples à comprendre et à encoder.
Posez moi des questions si vous en avez

A voir également

Ajouter un commentaire

Commentaires

cs_gatien123
Messages postés
2
Date d'inscription
mardi 20 mai 2008
Statut
Membre
Dernière intervention
30 mai 2008
-
j'aimerai avoir le fichier source de votre code sur le flocon
car je l'ai utilisé chez moi elle ne s'est pas executé. mon adresse mail
est gatien_soh@yahoo.fr
Big cent
Messages postés
13
Date d'inscription
jeudi 24 mai 2007
Statut
Membre
Dernière intervention
11 décembre 2008
-
Et comment l'implémenter en utilisant graphics.h car j'utilise le TC++

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.