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 | 
 

 voila le programme de 3d dans l'infographie dans .h

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


Nombre de messages : 21
Date d'inscription : 02/11/2007

MessageSujet: voila le programme de 3d dans l'infographie dans .h   Ven 16 Nov - 12:20

/****************************************************************************
* *
* PROGRAMMATION 3D *
* *
*****************************************************************************/
#include<graphics.h>
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<math.h>
#include<mem.h>

typedef float Matrice[4][4];
typedef float Cube[8][4];
Cube Unity={0,0,0,100,100,0,0,100,100,100,0,100,0,100,0,100,0,
100,100,100,0,0,100,100,100,0,100,100,100,100,100,100};


/********************************************************************
* GRAPHICS INTERFACE *
*********************************************************************/

int Initial_graph(void)
{
int gdriver = DETECT, gmode, errorcode;
initgraph(&gdriver, &gmode, "c:\\langages\\tc\\bgi");
errorcode = graphresult();
if (errorcode != grOk)
{

printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1); /* terminate with an error code */
}
return 0;
}
/************************ Matrice Identité **************************/

void MatriceIdentity(Matrice I4)
{
memset(I4,NULL,sizeof(Matrice));//zero partout ds la matrice
I4[0][0]=1;
I4[1][1]=1;
I4[2][2]=1;
I4[3][3]=1;
}
/********************* Multiplication de matrices ********************/

void MultiMatrice(Cube m1,Matrice m2,Cube Produit)
{
int i,j,k;
for(i=0;i<8;i++)
for(j=0;j<4;j++)
{
Produit[i][j]=0;
for(k=0;k<4;k++)
Produit[i][j] += m1[i][k]*m2[k][j] ;
}
}

/*********************** Copie des matrices **********************/

void CopierCube(Cube Source,Cube Destination)
{
/* int i,j;
for(i=0;i<8;i++)
for(j=0;j<4;j++)
Destination[i][j]=Source[i][j];*/
memcpy(Destination,Source,sizeof(Cube));
}

/***************************** Echelle *******************************/
void Echelle(Cube m,float x,float y,float z)
{
Matrice EchelleMat; //matrice d'echelle
Cube m1;
MatriceIdentity(EchelleMat);
EchelleMat[0][0]=x;
EchelleMat[1][1]=y;
EchelleMat[2][2]=z;
MultiMatrice(m,EchelleMat,m1);
CopierCube(m1,m);
}

/****************************************************************************
* *
* Projection *
*****************************************************************************/

/********************* Projecations Perspective ***********************/
/*********** Z=0 ************/
void ProjPersp(Matrice m,float r)
{
Matrice PerspMatZ;
Cube m1;
MatriceIdentity(PerspMatZ);
PerspMatZ[2][3]=r;
PerspMatZ[2][2]=0;
MultiMatrice(m,PerspMatZ,m1);
for(int i=0;i<8;i++)
for(int j=0;j<4;j++)
m1[i][j]/=m1[i][3];
CopierCube(m1,m);

}

/**************************** Projection oblique ****************************/

void ProjOblique(Cube m,float Theta,float f)
{
Cube m1;
Matrice ObliqMat;
MatriceIdentity(ObliqMat);
ObliqMat[2][0]=f*cos(Theta*M_PI/180);
ObliqMat[2][1]=f*sin(Theta*M_PI/180);
ObliqMat[2][2]=0;
MultiMatrice(m,ObliqMat,m1);
CopierCube(m1,m);
}

/************************* Affichage des matrices ********************/
/**********************************************************************************************/
void AfficheCube(Cube M)
{
void Affiche(Cube);
int x;
int e=getmaxx()/2;
int f=getmaxy()/2;
cleardevice();
printf("Projection 2D!");
printf("\n\nQuel type de projection?");
printf("\n\n\t1-Oblique\n");
printf("\n\t2-Perspective");
printf("\n\n\n\n\n\n\n\n\n\n");
printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\tQuel est votre choix:");
scanf("%d",&x);
switch(x)
{
case 1: cleardevice();
float a,b;
printf("\nSpecifier l'angle de Projection(45ø Cavaliere):");
scanf("%f",&a);
printf("\nSpecifiez le rapport de r‚duction(1 Cavaliere):");
scanf("%f",&b);
ProjOblique(M,a,b);
break;
case 2:cleardevice();
float d;
printf("\nDonner le rapport de projection perspective:");
scanf("%f",&d);
Echelle(M,100,100,100);
ProjPersp(M,d);
break;
default :cleardevice();
printf("Erreur 1 ou 2 svp!");
break;
}
cleardevice();
setcolor(15);
line(e,0,e,getmaxy());
line(0,f,getmaxx(),f);
Affiche(Unity);
setcolor(7);
line(M[0][0]+e,-M[0][1]+f,M[1][0]+e,-M[1][1]+f);
line(M[1][0]+e,-M[1][1]+f,M[2][0]+e,-M[2][1]+f);
line(M[2][0]+e,-M[2][1]+f,M[3][0]+e,-M[3][1]+f);
line(M[0][0]+e,-M[0][1]+f,M[3][0]+e,-M[3][1]+f);
line(M[5][0]+e,-M[5][1]+f,M[6][0]+e,-M[6][1]+f);
line(M[6][0]+e,-M[6][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[4][0]+e,-M[4][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[4][0]+e,-M[4][1]+f,M[5][0]+e,-M[5][1]+f);
line(M[3][0]+e,-M[3][1]+f,M[4][0]+e,-M[4][1]+f);
line(M[2][0]+e,-M[2][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[3][0]+e,-M[3][1]+f,M[4][0]+e,-M[4][1]+f);
line(M[1][0]+e,-M[1][1]+f,M[6][0]+e,-M[6][1]+f);
line(M[0][0]+e,-M[0][1]+f,M[5][0]+e,-M[5][1]+f);
/* int i,j;
printf("\n\n");
for(i=0;i<8;i++)
{
for(j=0;j<4;j++)
printf("%2.2f\t",M[i][j]);
printf("\n");*/
getch();cleardevice();
}
/****************************************************************************/
void Affiche(Cube M)
{
int e=getmaxx()/2;
int f=getmaxy()/2;
ProjOblique(M,30,0.5);
cleardevice();
setcolor(2);
settextstyle(4,0,5);
outtextxy(10,10,"Cube Unit‚");
setcolor(3);
settextstyle(0,0,0);
outtextxy(10,60,"Projection Oblique d'angle 30ø");
outtextxy(10,70,"Rapport de projection = 0.5");
line(e,0,e,getmaxy());
line(0,f,getmaxx(),f);
setcolor(14);
line(M[0][0]+e,-M[0][1]+f,M[1][0]+e,-M[1][1]+f);
line(M[1][0]+e,-M[1][1]+f,M[2][0]+e,-M[2][1]+f);
line(M[2][0]+e,-M[2][1]+f,M[3][0]+e,-M[3][1]+f);
line(M[0][0]+e,-M[0][1]+f,M[3][0]+e,-M[3][1]+f);
line(M[5][0]+e,-M[5][1]+f,M[6][0]+e,-M[6][1]+f);
line(M[6][0]+e,-M[6][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[4][0]+e,-M[4][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[4][0]+e,-M[4][1]+f,M[5][0]+e,-M[5][1]+f);
line(M[3][0]+e,-M[3][1]+f,M[4][0]+e,-M[4][1]+f);
line(M[2][0]+e,-M[2][1]+f,M[7][0]+e,-M[7][1]+f);
line(M[3][0]+e,-M[3][1]+f,M[4][0]+e,-M[4][1]+f);
line(M[1][0]+e,-M[1][1]+f,M[6][0]+e,-M[6][1]+f);
line(M[0][0]+e,-M[0][1]+f,M[5][0]+e,-M[5][1]+f);
}

/****************************************************************************
* *
* TRANSFORMATIONS *
* *
*****************************************************************************/

/***************************** Translation ****************************/

void Translation(Cube m,float x,float y,float z)
{
Cube m1;
Matrice TranslMat; //matrice de translation
MatriceIdentity(TranslMat);
TranslMat[3][0]=x;
TranslMat[3][1]=y;
TranslMat[3][2]=z;
MultiMatrice(m,TranslMat,m1);
CopierCube(m1,m);
}
/****************************************************************************
* Rotations *
*****************************************************************************/

/***** par rapport … l'axe X *****/

void RotationX(Cube m,int Theta)
{
Matrice XMatrice;
Cube m1;
MatriceIdentity(XMatrice);
XMatrice[1][1]=cos(Theta*M_PI/180);
XMatrice[1][2]=sin(Theta*M_PI/180);
XMatrice[2][1]=-sin(Theta*M_PI/180);
XMatrice[2][2]=cos(Theta*M_PI/180);
MultiMatrice(m,XMatrice,m1);
CopierCube(m1,m);
}
/***** par rapport … l'axe Y *****/
void RotationY(Cube m,int Phi)
{
Matrice YMatrice;
Cube m1;
MatriceIdentity(YMatrice);
YMatrice[0][0]=cos(Phi*M_PI/180);
YMatrice[0][2]=-sin(Phi*M_PI/180);
YMatrice[2][0]=sin(Phi*M_PI/180);
YMatrice[2][2]=cos(Phi*M_PI/180);
MultiMatrice(m,YMatrice,m1);
CopierCube(m1,m);
}
/***** par rapport … l'axe Z *****/
void RotationZ(Cube m,int Psi)
{
Matrice ZMatrice;
Cube m1;
MatriceIdentity(ZMatrice);
ZMatrice[0][0]=cos(Psi*M_PI/180);
ZMatrice[0][1]=sin(Psi*M_PI/180);
ZMatrice[1][0]=-sin(Psi*M_PI/180);
ZMatrice[1][1]=cos(Psi*M_PI/180);
MultiMatrice(m,ZMatrice,m1);
CopierCube(m1,m);
}
/************ AXE Quelconque***********/
//en cours....
/****************************** Symetrie *******************************/
/******* Per rapport au Plan XY *********/
void SymetrieXY(Cube m)
{
Cube m1;
Matrice SymetXY;
MatriceIdentity(SymetXY);
SymetXY[2][2]=-1;
MultiMatrice(m,SymetXY,m1);
CopierCube(m1,m);
}
/******* Per rapport au Plan XZ *********/
void SymetrieXZ(Cube m)
{
Cube m1;
Matrice SymetXZ;
MatriceIdentity(SymetXZ);
SymetXZ[1][1]=-1;
MultiMatrice(m,SymetXZ,m1);
CopierCube(m1,m);
}
/******* Per rapport au Plan YZ *********/
void SymetrieYZ(Cube m)
{
Cube m1;
Matrice SymetYZ;
MatriceIdentity(SymetYZ);
SymetYZ[0][0]=-1;
MultiMatrice(m,SymetYZ,m1);
CopierCube(m1,m);
}
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hmiza1986
GooD
GooD


Nombre de messages : 21
Date d'inscription : 02/11/2007

MessageSujet: Re: voila le programme de 3d dans l'infographie dans .h   Ven 16 Nov - 12:27

svp hada programme dyali khodo mno chi information bach twriwhe lsatori
machi koulou
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
zoom
Developper
Developper


Masculin
Nombre de messages : 465
Age : 27
Adress : fes
Emploi/loisirs : eudiant/informatique & foot & blagues hahahahaha...
Lieu D'etude : je vais pas vs dire!!!!!!
Date d'inscription : 02/11/2007

MessageSujet: Re: voila le programme de 3d dans l'infographie dans .h   Sam 17 Nov - 9:11

ok mais il parait que ca marche pas pk? y a une erreur dans Affiche

_________________

*******************
*******************
*******************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
hmiza1986
GooD
GooD


Nombre de messages : 21
Date d'inscription : 02/11/2007

MessageSujet: Re: voila le programme de 3d dans l'infographie dans .h   Ven 23 Nov - 11:34

kayne chi programme dans cpp hadak rir demi programme dans .h ama demi programme kayne dans cpp
a lundi w nzloukameel f cpp
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
zoom
Developper
Developper


Masculin
Nombre de messages : 465
Age : 27
Adress : fes
Emploi/loisirs : eudiant/informatique & foot & blagues hahahahaha...
Lieu D'etude : je vais pas vs dire!!!!!!
Date d'inscription : 02/11/2007

MessageSujet: Re: voila le programme de 3d dans l'infographie dans .h   Dim 25 Nov - 12:05

Mr sqalli merci bcp pour le prog enfin je l'ai réglé mais de façon a juste me donner le cube unité avec une projection obique de 30 degré et un rapport 0.5

_________________

*******************
*******************
*******************
Revenir en haut Aller en bas
Voir le profil de l'utilisateur
Contenu sponsorisé




MessageSujet: Re: voila le programme de 3d dans l'infographie dans .h   

Revenir en haut Aller en bas
 
voila le programme de 3d dans l'infographie dans .h
Voir le sujet précédent Voir le sujet suivant Revenir en haut 
Page 1 sur 1
 Sujets similaires
-
» Bannière visible dans profil, pas dans message
» Enlever " Il y a X messages dans X sujets dans ce forum "
» Autre logiciel à la "Game Maker"
» désinstaller supprimer Bonjour mDNSresponder.exe
» Diaporama : changer l'image des vignettes

Permission de ce forum:Vous ne pouvez pas répondre aux sujets dans ce forum
Wjhoo Forum :: NEW GENERATION :: Cours :: Infographie-
Sauter vers: