Wjhoo Forum

Faculté des Sciences Dhar l'Mehraz
 
AccueilS'enregistrerConnexionMembresGroupesPortailFAQRechercher
Rechercher
 
 

Résultats par :
 
Rechercher Recherche avancée
Derniers sujets
» unlock iphone 4 3r
Jeu 4 Aoû - 2:39 par Invité

» Viagra Vente - finegra viagra pharmacie en ligne
Mar 2 Aoû - 19:21 par Invité

» Dude, so much AD here, why not clean them all?
Mar 2 Aoû - 5:01 par Invité

» buy guaranteed facebook fans dw
Lun 1 Aoû - 13:03 par Invité

» ïðîãðàììû äëÿ êîìïüþòðà
Lun 1 Aoû - 4:38 par Invité

» Whats up Folks
Dim 31 Juil - 16:49 par Invité

» purchase facebook fans xf
Dim 31 Juil - 3:30 par Invité

» buy facebook fan page f8
Sam 30 Juil - 20:19 par Invité

» page rank check backlink building service
Sam 30 Juil - 17:54 par Invité

Navigation
 Portail
 Index
 Membres
 Profil
 FAQ
 Rechercher
SELOUANE Mohammed
Partenaires
Creer un Forum
Tchat Blablaland

Partagez | 
 

 les 8 programmes avec switch

Voir le sujet précédent Voir le sujet suivant Aller en bas 
AuteurMessage
maya
GooD
GooD
avatar

Féminin
Nombre de messages : 11
Age : 30
Adress : fes
Emploi/loisirs : vie
Lieu D'etude : fes
Date d'inscription : 03/11/2007

MessageSujet: les 8 programmes avec switch   Dim 11 Nov - 7:49

#include<stdio.h>
#include<conio.h>
#include<graphics.h>
#include<math.h>
#include<dos.h>


void initgraph()
{
int pg=DETECT,mg;
clrscr();
initgraph(&pg,&mg,"..\\bgi");
}

void repere()
{
setbkcolor(0);
setcolor(15);
line(0,240,640,240);
line(320,0,320,480);
}

void pixel(int x,int y)
{
x=x+320;
y=240-y;
putpixel(x,y,11);
}

void pixel0(int x,int y)
{
x=x+320;
y=240-y;
putpixel(x,y,0);
}
/////////////////////////////////////////////////////////////////////////////
/////////////////////les fonctions des 8 octants/////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void ligne1(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*dy-dx;
while (i<=dx)
{if (s>=0)
{x++;y++;s+=2*(dy-dx);}
else
{x++;s+=2*dy;}
pixel(x,y);
i++;
}
}
void ligne2(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*dx-dy;
while (i<=dy)
{if (s>=0)
{x++;y++;s+=2*(dx-dy);}
else
{y++;s+=2*dx;}
pixel(x,y);
i++;
}
}
void ligne3(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*(-dx)-dy;
while (i<=dy)
{if (s>=0)
{x--;y++;s+=2*((-dx)-dy);}
else
{y++;s+=2*(-dx);}
pixel(x,y);
i++;
}
}
void ligne4(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*dy+dx;
while (i<=(-dx))
{if (s>=0)
{x--;y++;s+=2*(dy+dx);}
else
{x--;s+=2*dy;}
pixel(x,y);
i++;
}
}
void ligne5(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*(-dy)+dx;
while (i<=(-dx))
{if (s>=0)
{x--;y--;s+=2*(-dy+dx);}
else
{x--;s+=2*(-dy);}
pixel(x,y);
i++;
}
}
void ligne6(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*(-dx)+dy;
while (i<=(-dy))
{if (s>=0)
{x--;y--;s+=2*(-dx+dy);}
else
{y--;s+=2*(-dx);}
pixel(x,y);
i++;
}
}
void ligne7(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*dx+dy;
while (i<=(-dy))
{if (s>=0)
{x++;y--;s+=2*(dx+dy);}
else
{y--;s+=2*(dx);}
pixel(x,y);
i++;
}
}
void ligne8(int xd,int yd,int xf,int yf)
{
int x=xd;
int y=yd;
int dx=xf-xd;
int dy=yf-yd;
int i=1;
int s=2*(-dy)-dx;
while (i<=dx)
{if (s>=0)
{x++;y--;s+=2*(-dy-dx);}
else
{x++;s+=2*(-dy);}
pixel(x,y);
i++;
}
}
/////////////////////////////////////////////////////////////////////////////
//////////////////un segment par la m‚thode polynomiale//////////////////////
/////////////////////////////////////////////////////////////////////////////
void polynomiale(int xd,int yd,int xf,int yf)
{
int x,y,dx,dy,px,py;
float a,b;
dx=xf-xd;
dy=yf-yd;
px=(xd>xf)?-1:1;
py=(yd>yf)?-1:1;
pixel(xd,yd);
pixel(xf,yf);

if( abs(dx)>=abs(dy) )
{ a=(float)dy/dx;
b=yd-xd*a;
for (x=xd+px ; x!=xf ; x=x+px )
{ y=a*x+b;
pixel(x,y);
}
}
else
{ a=(float)dx/dy;
b=xd-yd*a;
for(y=yd+py ; y!=yf ; y=y+py)
{ x=a*y+b;
pixel(x,y);
}
}
}
/////////////////////////////////////////////////////////////////////////////
/////////////////la m‚thode g‚n‚rale de Bresenham////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void ligne(int xd,int yd,int xf,int yf)
{
int x=xd,y=yd,dx=abs(xf-xd),dy=abs(yf-yd),s,px,py;
int i=1;
px=(xd>xf)?-1:1;
py=(yd>yf)?-1:1;

if (dx>=dy)
{ s=2*dy-dx;
while(i<=dx)
{ if (s>=0)
{x=x+px;
y=y+py;
s=s+2*(dy-dx);
}
else
{x=x+px;
s=s+2*dy;
}
pixel(x,y);
i++;
}
}
else
{ s=2*dx-dy;
while(i<=dy)
{ if (s>=0)
{x=x+px;
y=y+py;
s=s+2*(dx-dy);
}
else
{y=y+py;
s=s+2*dx;
}
pixel(x,y);
i++;
}
}
}
/////////////////////////////////////////////////////////////////////////////
/////////////////le cercle par la m‚thode de Bresenham///////////////////////
/////////////////////////////////////////////////////////////////////////////
void cercle (int r,int h,int k)
{
int x=0;
int y=r;
int s=3-2*r;

while (x<y)
if (s>0)
{
s=s+4*(x-y)+10;
x++;
y--;
pixel(x+h,y+k);
pixel(y+h,x+k);
pixel(-y+h,x+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(-y+h,-x+k);
pixel(y+h,-x+k);
pixel(x+h,-y+k);
}
else
{
s=s+4*x+6;
x++;
pixel(x+h,y+k);
pixel(y+h,x+k);
pixel(-y+h,x+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(-y+h,-x+k);
pixel(y+h,-x+k);
pixel(x+h,-y+k);
}
}

void cercle0 (int r,int h,int k)
{int x=0;
int y=r;
int s=3-2*r;

while (x<y)
if (s>0)
{ s=s+4*(x-y)+10;
x++;
y--;
pixel0(x+h,y+k);
pixel0(y+h,x+k);
pixel0(-y+h,x+k);
pixel0(-x+h,y+k);
pixel0(-x+h,-y+k);
pixel0(-y+h,-x+k);
pixel0(y+h,-x+k);
pixel0(x+h,-y+k);
}
else
{ s=s+4*x+6;
x++;
pixel0(x+h,y+k);
pixel0(y+h,x+k);
pixel0(-y+h,x+k);
pixel0(-x+h,y+k);
pixel0(-x+h,-y+k);
pixel0(-y+h,-x+k);
pixel0(y+h,-x+k);
pixel0(x+h,-y+k);

}
}
/////////////////////////////////////////////////////////////////////////////
////////////////////le cercle par la m‚thode polynomiale/////////////////////
/////////////////////////////////////////////////////////////////////////////
void cercle_polynomiale(long r,int h,int k)
{
int x=0,y;
for(x=0 ; x<(r/sqrt(2)) ; x++)
{
y=sqrt(r*r-x*x);
pixel(x+h,y+k);
pixel(y+h,x+k);
pixel(-y+h,x+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(-y+h,-x+k);
pixel(y+h,-x+k);
pixel(x+h,-y+k);
}
}
////////////////////////////////////////////////////////////////////////////
///////////////////le cercle par la m‚thode trigonometrique/////////////////
////////////////////////////////////////////////////////////////////////////
void cercle_trig(int r,int h,int k)
{int x,y;
float i,p=M_PI/2000;
for(i=0 ; i<M_PI/4 ; i+=p)
{ x=(int)r*cos(i);
y=(int)r*sin(i);
pixel(x+h,y+k);
pixel(y+h,x+k);
pixel(-y+h,x+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(-y+h,-x+k);
pixel(y+h,-x+k);
pixel(x+h,-y+k);
}
}
////////////////////////////////////////////////////////////////////////////
////////////////l'ellipse par la m‚thode trigonometrique////////////////////
////////////////////////////////////////////////////////////////////////////
void ellipse_trig(int a,int b,int h,int k)
{int x,y;
float i,p=M_PI/2000;
for(i=0 ; i<M_PI/2 ; i+=p)
{ x=(int)a*cos(i);
y=(int)b*sin(i);
pixel(x+h,y+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(x+h,-y+k);
}
}
/////////////////////////////////////////////////////////////////////////////
////////////////////l'ellipse par la m‚thode de Bresenham////////////////////
/////////////////////////////////////////////////////////////////////////////
void ellipse (float a,float b,int h,int k)

{ int x,y;
float S1,S2 ;
x = 0 ;
y = b ;
S1 = 2*b*b - 2*a*a*b + a*a ;
while ( a*a*(y-1) > b*b*(x+1) )
{
if ( S1 > 0 )
{
S1 += b*b*(4*x+6) + a*a*(-4*y+4) ;
x++ ;
y-- ;

}
else
{
S1 += b*b*(4*x+6) ;
x++ ;
}
pixel(x+h,y+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(x+h,-y+k);
}
S2 = b*b*(x+1)*(x+1) + a*a*(y-1)*(y-1) - a*a*b*b ;
while ( y > 0 )
{
if (S2<0)
{
S2 += b*b*(2*x+3) + a*a*(-2*y+3) ;
y-- ;
x++ ;
}
else
{
S2 += a*a*(-2*y+3) ;
y-- ;
}
pixel(x+h,y+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(x+h,-y+k);
}
}
/////////////////////////////////////////////////////////////////////////////
//////////////////l'ellipse par la m‚thode polynomiale///////////////////////
/////////////////////////////////////////////////////////////////////////////
void ellipse_polynomiale(float a,float b,int h,int k)
{
float x,y,p=0.01;
for(x=0 ; x<a ; x+=p)
{ y=sqrt(b*b*(1-(x*x)/(a*a)));
pixel(x+h,y+k);
pixel(-x+h,y+k);
pixel(-x+h,-y+k);
pixel(x+h,-y+k);
}
}
/////////////////////////////////////////////////////////////////////////////
//////////////////////////le programme g‚n‚ral///////////////////////////////
/////////////////////////////////////////////////////////////////////////////
void main()
{
int n;
clrscr();
{textcolor(12);
cprintf(" ************************** ");
printf("\n");
cprintf("\n ***** TP:Infographie realise par ghizlane salem***** ");
printf("\n");
cprintf("\n ************************** \n\n\n\n");
printf("\n");
textcolor(11);
cprintf("Entrer ce que vous voulez tracer svp:");
printf("\n");
cprintf("-------------------------------------\n\n\n");
printf("\n");
printf("\t 1-Un segment par la m‚thode de Bresenham des 8 octants;\n\n");
printf("\t 2-Un segment par la formule g‚n‚rale de Bresenham;\n\n");
printf("\t 3-Un segment par la m‚thode polynomiale;\n\n");
printf("\t 4-Un cercle par la m‚thode de Bresenham;\n\n");
printf("\t 5-Un cercle par la m‚thode polynomiale;\n\n");
printf("\t 6-Un cercle par la m‚thode trigometrique;\n\n");
printf("\t 7-Un cercle de rayon croissant;\n\n");
printf("\t 8-Une ellipse par la m‚thode de Bresenham;\n\n");
printf("\t 9-Une ellipse par la m‚thode polynomiale;\n\n");
printf("\t10-Une ellipse par la m‚thode trigonometrique;\n\n\n");
printf("\n");
textcolor(11);
cprintf("Entrer n:");
printf("\n");
scanf("%d",&n);

switch(n)
{
case 1:
{
int xd,yd,xf,yf;
clrscr();
initgraph();
repere();
printf("Entrer xd,yd,xf et yf:\n");
scanf("%d%d%d%d",&xd,&yd,&xf,&yf);
int dx=xf-xd;
int dy=yf-yd;
int x=xd;
int y=yd;
if(y>=0)
if (x>=0)
if(dx>=dy)
ligne1(xd,yd,xf,yf) ;
else
ligne2(xd,yd,xf,yf);
else if(dy>=(-dx))
ligne3(xd,yd,xf,yf);
else
ligne4(xd,yd,xf,yf);

else if(x<=0)
if ((-dx)>=(-dy))
ligne5(xd,yd,xf,yf);
else
ligne6(xd,yd,xf,yf);
else if ((-dy)>=dx)
ligne7(xd,yd,xf,yf);
else
ligne8(xd,yd,xf,yf);
}
break;

case 2:
{
int xd,yd,xf,yf;
initgraph();
repere();
printf("donner xd,yd,xf et yf:\n");
scanf("%d%d%d%d",&xd,&yd,&xf,&yf);
ligne(xd,yd,xf,yf);
getch();
}
break;

case 3:
{
int xd,yd,xf,yf;
initgraph();
repere();
printf("entrer xd,yd,xf et yf:\n");
scanf("%d%d%d%d",&xd,&yd,&xf,&yf);
polynomiale(xd,yd,xf,yf);
}
break;

case 4:
{
int r,h,k;
clrscr();
initgraph();
repere();
printf("donner r,h et k:\n");
scanf("%d%d%d",&r,&h,&k);
cercle(r,h,k);
}
break;

case 5:
{
int r,h,k;
clrscr();
initgraph();
repere();
printf("Donner r,h et k:\n");
scanf("%d%d%d",&r,&h,&k);
cercle_polynomiale(r,h,k);
}
break;

case 6:
{
int r,h,k;
clrscr();
initgraph();
repere();
printf("donner r,h et k:\n");
scanf("%d%d%d",&r,&h,&k);
cercle_trig(r,h,k);
}
break;

case 7:
{
int r,h,k;
clrscr();
initgraph();
repere();
printf("donnez r,h,k:\n");
scanf("%d%d%d",&r,&h,&k);
while(r<=450)
{cercle(r,h,k);
delay(100);
cercle0(r,h,k);
r=r+5;}
}
break;

case 8:
{
clrscr();
float a,b;
int h,k;
initgraph();
repere();
printf("Donner a,b,h et k:\n");
scanf("%f%f%d%d",&a,&b,&h,&k);
ellipse(a,b,h,k) ;
}
break;

case 9:
{
float a,b;
int h,k;
clrscr();
initgraph();
repere();
printf("Donner a,b,h et k:\n");
scanf("%f%f%d%d",&a,&b,&h,&k);
ellipse_polynomiale(a,b,h,k);
}
break;

case 10:
{
int a,b,h,k;
clrscr();
initgraph();
repere();
printf("donner a,b,h et k:\n");
scanf("%d%d%d%d",&a,&b,&h,&k);
ellipse_trig(a,b,h,k);
}
break;

default : printf("taper un num‚ro entre 1 et 10 :\n");
}
getch();
}}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
chevalier_mounaim
Très actif
Très actif
avatar

Masculin
Nombre de messages : 190
Age : 29
Adress : narjis c fes
Emploi/loisirs : etudiant
Lieu D'etude : 3end ali
Date d'inscription : 01/11/2007

MessageSujet: Re: les 8 programmes avec switch   Dim 11 Nov - 7:53

merci walkin 7naya daba me7tajin remplissage w dakchi lakhore
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
 
les 8 programmes avec switch
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» perte de connection avec switch cisco gigabit
» L'offre de free en dégroupé
» Programmes Panoramic en ligne de commande
» les sous-programmes, les variables globales et locales
» pilotage d'aiguille avec switchpilot ESU

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Wjhoo Forum :: NEW GENERATION :: Cours :: Langage C. & Stricture des données-
Sauter vers: