begin process at 2010 02 10 10:54:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

.Net

 > [VC++ ET DJGPP] FLOCON DE VON KOCH AVEC ALLEGRO

[VC++ ET DJGPP] FLOCON DE VON KOCH AVEC ALLEGRO


 Information sur la source

Note :
Aucune note
Catégorie :.Net Niveau :Débutant Date de création :21/05/2002 Date de mise à jour :21/05/2002 19:16:45 Vu :4 166

Auteur : GoldenEye

Ecrire un message privé
Site perso
Commentaire sur cette source (2)
Ajouter un commentaire et/ou une note

 Description

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

Source

  • #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();
#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


 Sources du même auteur

Source avec Zip Source avec une capture TILE MAP EDITOR 2.4
Source avec Zip Source avec une capture CHAT MULTITHREAD
Source avec Zip Source avec une capture ALGORITHME A*
Source avec Zip TRANSFORMÉE DE FOURIER : REPRÉSENTATION GRAPHIQUE [VC++ ET A...
Source avec Zip [VC++] COMPRESSION DE HUFFMAN+TUTORIEL

 Sources de la même categorie

Source avec Zip Source avec une capture MAP_MAKER_JEU par seekplus
Source avec Zip Source avec une capture Source .NET (Dotnet) EMISSION D'UN OCTET SUR LE PORT SÉRIE - CLASSE SERIALPORT par jmchatelet01
Source avec Zip Source .NET (Dotnet) RESOLV EQU DE DEGRES N par darckangel731
Source avec Zip Source avec une capture Source .NET (Dotnet) INTEROP XCHAT / .NET : CHARGEUR DE PLUGINS MANAGÉS par TeBeCo
Source avec Zip Source avec une capture Source .NET (Dotnet) SCANNER D'ADRESSES MAILS PRÉSENTENT SUR GOOGLE par Zaltez

Commentaires et avis

Commentaire de gatien123 le 30/05/2008 15:58:37

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

Commentaire de Big cent le 20/01/2009 10:47:17

Et comment l'implémenter en utilisant graphics.h car j'utilise le TC++

 Ajouter un commentaire




Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,936 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales