Suite fonctionnement d'un tab????

jfk20004 Messages postés 39 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 13 novembre 2004 - 27 août 2004 à 13:06
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 - 27 août 2004 à 20:04
voici la classe pour pour plus d'info:

class Champ {
public:
Champ();
~Champ();

// calcul du champ scalaire 3D
void calcule(Metaball* liste, int nombreMetas);

// triangulation avec génération de tous les cubes
void triangulation(float valeurReference);

private:
// algorithme des marching-cubes sans interpolation optimisée
bool marchingCubes(int x, int y, int z, float valeurReference);

public:
// tableaux qui stockent la géométrie de l'objet (mesh)
int nbPoints;
V3D* pointsMesh;
V3D* normalesMesh;

private:
// tableaux de stockage du champ scalaire et de son gradient
float champ[TAILLE_CHAMP][TAILLE_CHAMP][TAILLE_CHAMP];
V3D gradient[TAILLE_CHAMP][TAILLE_CHAMP][TAILLE_CHAMP];
};

#endif

//le gros prob est que je ne comprends pas les syuntaxes du style:

je n'ai pas compris la reponse magic nono:peut tu etre plus claire
et plus simple.MERCI!!!
A voir également:

5 réponses

cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
27 août 2004 à 13:35
quel synthaxe tu ne comprends pas ?
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
27 août 2004 à 18:40
ui,

plus CLAIR, C possible....

précise eactement la qu

Magic Nono: l'informagicien! 8-)
0
jfk20004 Messages postés 39 Date d'inscription mercredi 25 août 2004 Statut Membre Dernière intervention 13 novembre 2004
27 août 2004 à 19:38
j'ai rajouté la def de la classe à la demande de theidiot pour plus de clarte.je remets l'ensemble du code qui pose prob:
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!!!!
//je ne comprends pas ce à quoi sert la soustraction de 2 tabs

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;
}
}
}
}
ESt il possible d'utiliser le langage le plus basique possible ,j'essaie de programmer en dilettante alors frocement je n'ai pas votre baggage technique:
à titre indicatif j'ai lu les ouvrages de deitel&deitel, et
delannoy pour le C++ et opengl redbook de mason woo.
Si vous pouviez utiliser des thermes proche des leurs ma comprehension en sera facilitée.par ex je ne sait pas ce qu'est une agregation et un champ.MERCI!!!!
0
magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011
27 août 2004 à 20:00
aggreger = ajouter, collerun champ un emplacement pr une donnéechps

1>
pos.x
pos est apparemment une structure/classe à 3 chps : x,y & z

pos.x = acces à la variable x de 'pos'

2>
for (z = 0; z < TAILLE_CHAMP; z++) {
for (y = 0; y < TAILLE_CHAMP; y++) {
for (x = 0; x < TAILLE_CHAMP; x++) {
champ[x][y][z] = 0.0f;

initialise chacune des case de ton tableau

les bcles permettent de parcourir ts les elts

3>
à chaque val tu met la somme de ....... (cf précédent post)

4>
A pu de tps
je dois y aller
Bon WE

CT clair ???
++
Magic Nono: l'informagicien! 8-)
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_djl Messages postés 3011 Date d'inscription jeudi 26 septembre 2002 Statut Membre Dernière intervention 27 novembre 2004 7
27 août 2004 à 20:04
a ba enfin !

"ESt il possible d'utiliser le langage le plus basique possible ,j'essaie de programmer en dilettante"

non c'est impossible, si tu programme en c++ en ommetant d'avoir compris les mecanisme de bases tu cours au suicide (en admetant que ce soit possible)

bonne lecture ;)

http://cowww.epfl.ch/infmaph/doc/coursCpp/book1.html

ou va sur http://www.developpez.com/
0
Rejoignez-nous