Explication du fonctionnement d'un tab

Signaler
Messages postés
39
Date d'inscription
mercredi 25 août 2004
Statut
Membre
Dernière intervention
13 novembre 2004
-
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
-
quelqu'un peut il m'expliquer ce que font exactement ici les tableaux . j'aimerais savoir si ce sont les tableaux qui passent des valeurs ou si on passe des valeurs aux tableaux.j'ai mis des nota là où il ya un prob.MERCI
j'ai mis l'ensemble de la classe pour plus de clarte:

Champ::Champ()
{
pointsMesh = new V3D[TAILLE_CHAMP * TAILLE_CHAMP * TAILLE_CHAMP * 5 * 3];
normalesMesh = new V3D[TAILLE_CHAMP * TAILLE_CHAMP * TAILLE_CHAMP * 5 * 3];


nbPoints = 0;
}

/*******************************************************************************
* Destructeur
******************************************************************************/

Champ::~Champ()
{
delete[] pointsMesh;
delete[] normalesMesh;
}

/*******************************************************************************
* Calcul du champ
******************************************************************************/

void Champ::calcule(Metaball* liste, int nombreMetas)
{
int x, y, z, i;
V3D pos;


for (z = 0; z < TAILLE_CHAMP; z++) {
for (y = 0; y < TAILLE_CHAMP; y++) {
for (x = 0; x < TAILLE_CHAMP; x++) {

//!!!!nota:que veut dire precisement la notation pos.x=x dans ce contexte et d'une maniere generale
pos.x = x;
pos.y = y;
pos.z = z;

//nota:qu'est celà que signifie :est ce qu'on passe au tab la valeur
0.0f ??a quoi servent les boucles????
champ[x][y][z] = 0.0f;

for (i = 0; i < nombreMetas; i++) {

//nota:ici que se passe t il avec le tab???incrementé par un autre
tab à qui on passe la fonction (pos)????cà veut dire quoi????

champ[x][y][z] += liste[i].fonction(pos);
}
}
}
}

for (z = 1; z < TAILLE_CHAMP - 1; z++) {
for (y = 1; y < TAILLE_CHAMP - 1; y++) {
for (x = 1; x < TAILLE_CHAMP - 1; x++) {

//nota:ici le tab recoit le param x???qui a pour param l'autre tab??
//je ne vois pas comment et pourquoi un tab recevrait un autre
tab en param!!!!
gradient[x][y][z].x = champ[x + 1][y][z] - champ[x - 1][y][z];
gradient[x][y][z].y = champ[x][y + 1][z] - champ[x][y - 1][z];
gradient[x][y][z].z = champ[x][y][

z + 1] - champ[x][y][z - 1];


gradient[x][y][z] *= 0.5;
}
}
}
}

J' AI VRAIMENT BESOIN DE QUELQU UN DE DOUE POUR M'EXPLIQUER CA CLAIREMENT PARCE QUE JE NAGE COMPLETEMENT ET JE RETROUVE CETTE "SYNTAXE" TOUT LE TEMPS DANS LE GRAPHISME.MERCI D'AVANCE!!!!!!

5 réponses

Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

heu ...je ne suis pas un expert...

Mais je crois que tu devrais nous montrer ce qui défini cette classe parce que juste avec l'objets de classe c'est dur à dire...
Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

V3D pos; //typage (d'une struct? ou d'une classe?) c'est pour ca
// que j'aimerai voir cette classe(parce que la je
//ne vois que les fonction de classe)

for (z = 1; z < TAILLE_CHAMP - 1; z++) {
for (y = 1; y < TAILLE_CHAMP - 1; y++) {
for (x = 1; x < TAILLE_CHAMP - 1; x++) {

gradient[x][y][z].x = champ[x + 1][y][z] - champ[x - 1][y][z];
gradient[x][y][z].y = champ[x][y + 1][z] - champ[x][y - 1][z];
gradient[x][y][z].z = champ[x][y][

z + 1] - champ[x][y][z - 1];

gradient[x][y][z] *= 0.5;
}
}
}
}

/*Ce que je comprend ici c'est un calcul passé ensuite en parametre qui permet de faire un degradé.

un degradé en trois dimension je supose puisque le tableau est en trois D.
Messages postés
56
Date d'inscription
lundi 16 août 2004
Statut
Membre
Dernière intervention
27 août 2005

bref montre nous tous
cela serais bien...
Messages postés
3011
Date d'inscription
jeudi 26 septembre 2002
Statut
Membre
Dernière intervention
27 novembre 2004
8
que ce soit struct ou classe c'est pareil, c'est juste une histoire d'accessibilité des attributs par defaut
Messages postés
1878
Date d'inscription
jeudi 16 octobre 2003
Statut
Membre
Dernière intervention
16 mars 2011
1
for (i = 0; i < nombreMetas; i++) {

//nota:ici que se passe t il avec le tab???incrementé par un autre
tab à qui on passe la fonction (pos)????cà veut dire quoi????

champ[x][y][z] += liste[i].fonction(pos);
}

=> à la case [x][y][z] est ajouté le retour de fonction sur le ie elt de la liste

++

Magic Nono: l'informagicien! 8-)