vendredi 20 août 2010

graphe d'un motagne en C

#include "graphics.h"#include "conio.h"#include "stdlib.h"#include "stdio.h"#include "math.h"#include "time.h"#include "dos.h"
#define COTE 128
int frac [COTE+1][COTE+1]={0};int face[5][2];float rugosite;
void setfrac(int,int,int,int);
void main (void){ int gest=VGA, mode=VGAHI, erreur, i,j,n,nbr,ind,h, X1,Y1,X2,Y2;
char c;
initgraph(&gest,&mode,""); if ((erreur=graphresult())!=grOk) { printf("Erreur graphique : %s\n",grapherrormsg(erreur)); getch(); exit(1); }
do { randomize(); rugosite=100.0+random(200); frac[0][COTE]=random(100)+100; frac[0][0]=-random(100); frac[COTE][COTE]=random(100)+100; frac[COTE][0]=-random(100); nbr=0; do nbr++; while (!((COTE>>nbr) & 1));
for (n=1;n<=nbr;n++) { ind=COTE>>(n-1); for (i=0; i< COTE ; i+=ind) for (j=0;j for (i=0;i<=COTE;i++) for (j=0;j<=COTE;j++) if(frac[i][j]<0) frac[i][j]=0; cleardevice();
for (j=COTE-1;j>=0;j--) { for (i=0;i fillpoly(5,(int*)face); } } c=0; if (kbhit()) c=getch(); if (c==32) getch(); } while (c!=27);
closegraph();}
void setfrac(int id,int ifi,int jd, int jf) { int dim,z1,z2,z3,z4,im,jm;
dim=(int) (rugosite/COTE*(abs(ifi-id)));
z1=frac[id][jd]; z2=frac[ifi][jd]; z3=frac[id][jf]; z4=frac[ifi][jf];
im=(id+ifi)/2; jm=(jd+jf)/2;
frac[im][jd]=(z1+z2)/2+random(dim)-dim/2; frac[id][jm]=(z1+z3)/2+random(dim)-dim/2; frac[ifi][jm]=(z2+z4)/2+random(dim)-dim/2; frac[im][jf]=(z3+z4)/2+random(dim)-dim/2; frac[im][jm]=(z1+z2+z3+z4)/4+2*random(dim)-dim;
}