begin process at 2012 05 29 16:47:55
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

prob de tableau lié aux metaballs


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

prob de tableau lié aux metaballs

vendredi 27 août 2004 à 13:15:41 | prob de tableau lié aux metaballs

jfk20004


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:

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


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
vendredi 27 août 2004 à 13:44:56 | Re : prob de tableau lié aux metaballs

djl


//!!!!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;

ca veut dire que pos, qui est de type V3D (vertex 3d) est une aggregation de 3 int (x,y,z)
en faisant pos.x = x;
on affecte au champ x de pos la valeur de la variable x (qui n'a rien à voir avec le champ x mem si c'est le meme "nom")


champ[x][y][z] = 0.0f;
ca ve dire qu'on affecte à l'element indexé par [x][y][z] du tableau champ la valeur 0 (en c++, 0.0f <=> 0)


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

ces boucles servent à parcourir tous les elements du tableau qui est indexé selon 3 dimensions

vendredi 27 août 2004 à 13:46:23 | Re : prob de tableau lié aux metaballs

djl

qu'est ce que tu cherche à faire ?


Cette discussion est classée dans : taille, int, champ, for, pos


Répondre à ce message

Sujets en rapport avec ce message

explication du fonctionnement d'un tab [ par jfk20004 ] 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 pa C ANSI allocation dynamique de tableau [ par pedu ] Ce petit pro beug en sortie, pourquoi et que faire ?#include #include int (*pi)[1][1]; /* pointeur sur un tableau d'entiers */void main(void){ unsi suite fonctionnement d'un tab???? [ par jfk20004 ] voici la classe pour pour plus d'info:class Champ {public: Champ(); ~Champ(); // calcul du champ scalaire 3D void calcule(Metaball* liste, int nombr creation de plusieur tableau [ par foxwar ] Bonjour, j'aimerai cree un programme ki permet de cree plusieur tableau du different taille et les afficher g ecirt ce programme mai je c pa ce k'il besoin d'aide dans programme en c [ par houda986 ] salut; je suis un débutante en programmation et j'ai besoin d'aide pour la résolution d'un programme en C,c'est un programme de tri par base ... j'ai c++ [ par yesoun1 ] je serai reconnaissant de votre aide ;) et merci d'avance[^^happy10] quel est le rôle de "*" ?? for(unsigned int i=0; i < hauteur; i++) { for motus en C [ par amine124 ] Bonjour, Je veux créer un petit jeu "motus" qui lit un mot et la comparer par le mot d'or (à trouver); si le joueur trouve qqes lettres, on les affi [clos] Affectation des objets a des conteneurs [ par mlahbib ] Bonsoir j'ai écrit mon programme sous IBM ILOG CPLEX Optimization Studio qui affecte a un nombre minimum de conteneur un ensemble donnée d'objet dont Problème générateur de grille de sudoku en C [ par Dovah ] Bonjour, je suis débutant en programmation, et pour m'entraîner j'ai décidé de créer un programme qui génère aléatoirement une grille de sudoku en C


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,546 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales