Accueil > Forum > > > > initialiser les vertex dans une boucle for
initialiser les vertex dans une boucle for
lundi 11 septembre 2006 à 21:05:50 |
initialiser les vertex dans une boucle for

StrikerFred
|
salut a tous j'avance a petits pas dans la création d'un jeu 3d. je voulais faire un grand sol de plein de petits carré. Pour ca, (même technique que pour les jeux avec les tiles) je voulais utiliser deux boucles for imbriquées pour créer les vertex ca donne : VERTEX vertices[10000]; // un tableau de vertices int i,j; int nb = 0; for(i=0; i<10; i++) { for(j=0; j<10; j++) { vertices[nb].x = (je détaille pas... c'est des coordonnées basiques...) vertices[nb].y = ........ vertices[nb].z = ........ vertices[nb].color = 0xffffff00; nb++; } } et la il me dit erreur de mémoire quand je lance le programme ! on ne peut donc que faire : VERTEX vertices = {{x,y,z,color},{x,y.....}, .......}; ?? merci d'avance ! a+
|
|
lundi 11 septembre 2006 à 21:50:10 |
Re : initialiser les vertex dans une boucle for

laurent1024
|
Essaye de faire : VERTEX * vertices = malloc(sizzeof (VERTEX)* 10000). si tu est en c ou VERTEX * vertices = new VERTEX[10000]; si tu est en c++
Apres la ligne précédente, tu verifier que l'a mémoire est bien allouée if(vertex == NULL)
et a la fin un petit free(vertices); en c ou delete [] vertices. en C++
++
|
|
lundi 11 septembre 2006 à 21:54:13 |
Re : initialiser les vertex dans une boucle for

luhtor
|
Mais ton code est correct. Seul ton tableau doit faire exploser la pile.
Il faut déclarer ton tableau de la facon suivante:
VERTEX * vertices = new VERTEX[10000];
Oublie pas un delete[] quand t'as plus besoin du tableau.
Je suppose que c'est une erreur de recopiage : tes indices dans tes boucles sont de 10 au lieu de 100.
Remarque: une couleur entière, ca m'étonnerait que directx travaille avec ca par défaut.
|
|
mardi 12 septembre 2006 à 07:45:01 |
Re : initialiser les vertex dans une boucle for

StrikerFred
|
merci pour les réponses, maintenant y'a plus l'erreur de mémoire mais on ne voit plus les vertices... pourquoi ca fait ca? vous allez pas me dire que tous le monde initialise ces vertices comme ca: VERTEX vertices[] = {.....................}; y'en a bien qui font vertices[0].x =... non? [ Lien ]voilà mon code, y'a plein de truc en bleu, c'est les différents essais... voilà, si vous pouviez m'aider svp ! merci a+
|
|
mardi 12 septembre 2006 à 07:50:36 |
Re : initialiser les vertex dans une boucle for
|
mardi 12 septembre 2006 à 09:28:15 |
Re : initialiser les vertex dans une boucle for

buno
|
coucou! J'ai regardé vite fait ton code. Dans la fonction InitBuffer(), tu fais un memcpy avec un sizeof(vertices). Or, vertices est un pointeur, donc la taille sera toujours 4. Il faut faire: memcpy(buf, vertices, NB_VERTICES*sizeof(VERTEX)); Et pour info, dans ta double boucle d'init (qui, en passant, est vide), au lieu de trainer un nb de vertex, je te conseille de faire ceci, plus lisible: for (i=0; i<nbLignes; i++) { for (j=0; j<nbColonnes; j++) { vertices[i*nbColonnes+j].x=...; } } Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
mardi 12 septembre 2006 à 09:43:13 |
Re : initialiser les vertex dans une boucle for

StrikerFred
|
ok, merci pour ta réponse ! mais j'ai refait la méthode VERTEX vertices[100]; plutot que =new... et ca marche sauf qu'il faut que je mette au minimum VERTEX vertices[500]; avec moins, le programme quitte dès le démarrage, comment ca se fait? je n'ai pourtant besoin que de 100emplacements?
|
|
mardi 12 septembre 2006 à 09:44:50 |
Re : initialiser les vertex dans une boucle for
|
mardi 12 septembre 2006 à 10:35:47 |
Re : initialiser les vertex dans une boucle for

buno
|
A chaque parcours de boucle, tu appelles 6 fois la fonction add(), donc tu ajoutes 5 vertices. Or, tu le fais 10x10=100 fois donc il te faut, au minimum 500 vertices. D'ailleurs, pourquoi 6? tu ajoutes 2x les mêmes 2 sommets: (j,i) et (j+2,i+2). Essaies de faire un truc comme ceci (à vérifier dans ton système de coordonnées pour les i et les j) int nbLignes=10; int nbColonnes=10; VERTEX vertices[100]; int i=0; int j=0; for (i=0; i<nbLignes; i++) { for (j=0; j<nbColonnes; j++) { vertices[i*nbColonnes+j].x=j;
vertices[i*nbColonnes+j].y=0;
vertices[i*nbColonnes+j].z=i;
vertices[i*nbColonnes+j].color=0xffffff00;
} } Buno ---------------------------------------- L'urgent est fait, l'impossible est en cours. Pour les miracles, prévoir un délai... Le site de mon mariage
|
|
mardi 12 septembre 2006 à 13:37:24 |
Re : initialiser les vertex dans une boucle for

luhtor
|
Déclare ton tableau dans le tas:
VERTEX * vertices = new VERTEX[NB]
et non dans la pile, sauf si tu tiens absolument a voir ton programme planter quand tu augmenteras le nombre de vertex.
De toute facon, c'est n'importe quoi de déclarer des gros objets dans la pile.
|
|
Cette discussion est classée dans : for, nb, initialiser, vertex, vertices
Répondre à ce message
Sujets en rapport avec ce message
Création d'un Mesh sous Directx [ par Itsuki2 ]
Bonjour, Je cherche à créer un Mesh et non pas à en charger un à partir d'un .xComme j'ai un peu de mal avec l'anglais, et que la doc fourni dans le
initialiser un tableau avec des données aléatoires, tout en ayant des conditions [ par snakers07 ]
bonjour tout le monde, j'ai un petit problème avec mon programme. Je voudrais initialiser un tableau a deux dimension mais avec des données précises,
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
Problème d allocation dynamique [ par Beqtb0x ]
/*Bonjour a tous, je viens d'arriver sur ce site, je suis étudiant en première année d'informatique et j'ai un problème a un tp que même la prof n'est
probleme pour compiler et probleme semantique de code [ par nicolai08 ]
bonjour je suis débutant dans le c++ voila mon code pour faire un convertisseur base 10 en hexa et inversement mais je n'arrive a faire de compilati
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
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|