× Aidez la recherche contre le COVID-19 avec votre ordi ! Rejoignez l'équipe PC Astuces Folding@home
 > Tous les forums > Forum Autres langages
 Problème avec des structures en CSujet résolu
Ajouter un message à la discussion
Page : [1] 
Page 1 sur 1
kletou
  Posté le 20/06/2006 @ 13:07 
Aller en bas de la page 
Nouvel astucien
Bonjour, J'aurais besoin d'un petit coup de pouce en C ... Voila mon pb . Dans mon header j'ai entre autres ces structures : [code]typedef struct point3D { double x; double y; double z; }Point3D; typedef struct box { struct Point3D * point1; struct Point3D * point2; struct Point3D * point3; }Box; Box * boite1;[/code] dans une fonction je fait ceci : [code]boite1 = (Box * )malloc(sizeof(Box)); Point3D * p1 = (Point3D * )malloc(sizeof(Point3D)); Point3D * p2 = (Point3D * )malloc(sizeof(Point3D)); Point3D * p3 = (Point3D * )malloc(sizeof(Point3D)); [/code] boite1 est globale mais j'en ai besoin . ensuite un peu plus loin ça : [code]p1->x = xmin; p1->y = ymin; p1->z = zmin; p2->x = xmin; p2->y = ymax; p2->z = zmax; p3->x = xmax; p3->y = ymin; p3->z = zmin;[/code] jusque la aucun problème ensuite je tente de faire ceci : [code]boite1->point1 = p1; boite1->point2 = p2; boite1->point3 = p3;[/code] gcc compile mais avec un warning, ça sent mauvais : assignement from incompatible pointer type ..... et bien évidemment quand je tente ca : [code] printf("%lf\n", boite1->point1.x);[/code] [bombe] erreur: déréférencement d'un pointeur de type incomplet donc voila j'aurais deux ou trois question : 1-Pourquoi le type de mon pointeur est incompatible ?? p1 p2 et p3 sont des pointeur sur la structure Point3D et dans la structure Box, point1 point2 point3 sont du même type . 2-Qu'est ce qu'un déréférencement d'un pointeur ?? (de type incomplet surement a cause de l'assignement du pointeur de type incomplet :) ) Merci beaucoup pour votre aide future car je ne suis pas un crack en C et la je tourne en rond bien que j'essaye de comprendre . Cette question ne vous ai pa posée apré l'essai de compilation d'un copié collé foireux lol :) @bientôt K.
Publicité
breizhbugs
 Posté le 20/06/2006 à 19:17 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Message original par kletou [code] printf("%lf\n", boite1->point1.x); [/code]
Salut, bon, pour tes warnings je sais pas, mais point1 etant un pointeur, il faut utiliser -> pour acceder a ses membres (ca doit etre ca ton histoire de dereferencement je suppose): [code] printf("%lf\n", boite1->point1->x);[/code] [/code]

Modifié par breizhbugs le 20/06/2006 19:20
kletou
 Posté le 20/06/2006 à 20:45 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Merci bcp pour ta réponse .... Dsl j'ai copié collé mon code a un moment ou je testai avec un "." mais a la base c'est bien une fleche "->" Sinon c'est pa seuelment le pb avec le printf ... En fait voila je voudrai savoir pourquoi je peu pa accedé a boite1->point1->x (ou y ou z) Merci bien en tout cas et a bientôt
breizhbugs
 Posté le 20/06/2006 à 23:08 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Re, L'ideal serait que tu poste le code en entier que l'on puisse le tester chez nous.
kletou
 Posté le 21/06/2006 à 12:32 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
OK Je poste le code : main.c : [code] #include "header.h" int main(int argc,char **argv) { printf("Start............. \n"); glutInit(&argc,argv); printf("Mise en mémoire du tableau de points et du tableau de faces ...\n"); chargement(); printf("Il y a : %d points enregistrés , %d faces enregistrées\nEntrée dans la fonction de construction de l'octree ...\n",nbv,nbf); construction_arbre(nbf,nbv); //opengl(); return 0; }[/code] import.c : [code] #include "header.h" void chargement(void) { char nbvertex[10]; char nbfaces[10]; char * nom_fichier = "cube.txt"; char c[40]; char temp[15]; int i=0,j=0,compteur_point=0,compteur_coords=0,compteur_pf=0,compteur_face=0; FILE *fichierCube = fopen(nom_fichier, "r"); fgets(&nbvertex, 10, fichierCube); fgets(&nbfaces, 10, fichierCube); nbv = atoi(&nbvertex); nbf = atoi(&nbfaces); tab_faces = malloc(nbf * sizeof(* tab_faces) ); tab_points = malloc(nbv * sizeof(* tab_points) ); while(!feof(fichierCube)) { i = 0; j = 0; fgets(c,40,fichierCube); if ( (c[i] == 'v') && (c[i+1] == ' ')) { i=2; compteur_coords = 0; while( c[i] != '\\\\\0' ) { if( (c[i]==' ' ) || (c[i] == '\ ') ) { temp[j] = '\\\\\0'; if(compteur_coords == 0) { tab_points[compteur_point].x = atof(temp); compteur_coords ++; } else if (compteur_coords == 1) { tab_points[compteur_point].y = atof(temp); compteur_coords ++; } else if (compteur_coords == 2) { tab_points[compteur_point].z = atof(temp); compteur_coords ++; } j=0; i++; } else { temp[j] = c[i]; i++; j++; } } compteur_point++; } else if(c[i]=='f') { if (compteur_face >= nbf) break; compteur_pf = 0; i = 2; while( c[i] != '\\\\\0' ) { if((c[i]==' ' ) || (c[i] == '\ ')) { temp[j] = '\\\\\0'; if(compteur_pf == 0) { tab_faces[compteur_face].a = atoi(temp); compteur_pf ++; } else if (compteur_pf == 1) { tab_faces[compteur_face].b = atoi(temp); compteur_pf ++; } else if (compteur_pf == 2) { tab_faces[compteur_face].c = atoi(temp); compteur_pf ++; } j=0; i++; } else { temp[j] = c[i]; i++; j++; } } compteur_face++; } } } [/code] octree_builder.c : [code] #include "header.h" void construction_arbre(int f,int v) { //struct octree * racine = malloc(sizeof(octree)); calc_bounding_box_init(); } void calc_bounding_box_init(void) { boite1 = (Box * )malloc(sizeof(Box)); boite1->point1 = NULL; boite1->point2 = NULL; boite1->point3 = NULL; Point3D * p1 = (Point3D * )malloc(sizeof(Point3D)); Point3D * p2 = (Point3D * )malloc(sizeof(Point3D)); Point3D * p3 = (Point3D * )malloc(sizeof(Point3D)); int a; double xmin,xmax,ymin,ymax,zmin,zmax; printf("%d\n", nbv); xmax = tab_points[0].x; for(a=0 ; a < nbv ; a++) { if (tab_points[a].x > xmax) xmax = tab_points[a].x; } xmin = tab_points[0].x; for(a=0;a<nbv;a++) { if (tab_points[a].x < xmin) xmin = tab_points[a].x; } ymax = tab_points[0].y; for(a=0;a<nbv;a++) { if (tab_points[a].y > ymax) ymax = tab_points[a].y; } ymin = tab_points[0].y; for(a=0;a<nbv;a++) { if (tab_points[a].y < ymin) ymin = tab_points[a].y; } zmax = tab_points[0].z; for(a=0;a<nbv;a++) { if (tab_points[a].z > zmax) zmax = tab_points[a].z; } zmin = tab_points[0].z; for(a=0;a<nbv;a++) { if (tab_points[a].z < zmin) zmin = tab_points[a].z; } printf("%lf %lf %lf %lf %lf %lf \n",xmax,xmin,ymax,ymin,zmax,zmin); p1->x = xmin; p1->y = ymin; p1->z = zmin; p2->x = xmin; p2->y = ymax; p2->z = zmax; p3->x = xmax; p3->y = ymin; p3->z = zmin; if(boite1->point1 == NULL) boite1->point1 = p1; printf("%lf\n", boite1->point1->x); /* boite1->point1 = p1; boite1->point2 = p2; boite1->point3 = p3; printf("%lf\n", boite1->point1.x);*/ //printf("YO : %lf %lf %lf \n",boite1->point1->x,boite1->point1->y,boite1->point1->z); } [/code] 3d.c : [code] #include "header.h" float py=0.0,pz=0.0,px=0.0,Sin[360],Cos[360],theta=45,pitch=0.2,pz1=0.0,px1=0.0,py1=0.0; int xold,yold,r=0,s=0,r1=0,alpha=0; void opengl(void) { glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowPosition(200,200); glutInitWindowSize(500,500); glutCreateWindow("Yeah........... OGL"); //glutFullScreen(); glShadeModel(GL_SMOOTH); glEnable(GL_AUTO_NORMAL); glEnable(GL_NORMALIZE); glClearColor(0.2,0.4,0.5,4.0); Perspective(); calcCosSinTable(); glutReshapeFunc(reshape); glutDisplayFunc(affichage); glutKeyboardFunc(keyboard); glutMotionFunc(MouseMotion); glutPassiveMotionFunc(MouseMotion); glutMainLoop(); } void reshape(int x,int y) { if (x<y) glViewport(0,(y-x)/2,x,x); else glViewport((x-y)/2,0,y,y); } void Perspective() { glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(theta,1.0,0.1,40.0); glMatrixMode(GL_MODELVIEW); } void affichage() { glClear ( GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT ); glClearColor(0.0,0.0,0.0,0.0); glLoadIdentity(); glEnable(GL_DEPTH_TEST) ; glRotated(r,0.0,1.0,0.0); glTranslatef(-px,-py,-pz); construire_box(boite1); int i; float ii; glBegin(GL_LINES); glColor3d(1,0,0); glVertex3f(0,0,0); glVertex3f(0,0,1000); glColor3d(0,1,0); glVertex3f(0,0,0); glVertex3f(0,1000,0); glColor3d(0,0,1); glVertex3f(0,0,0); glVertex3f(1000,0,0); glEnd(); for(ii=9;ii>-9;ii=ii-0.5) { glBegin(GL_LINES); glColor3d(1,1,0); glVertex3f(-10,-1,ii); glVertex3f(10,-1,ii); glEnd(); } for(ii=9;ii>-9;ii=ii-0.5) { glBegin(GL_LINES); glColor3d(0,1,1); glVertex3f(ii,-1,-10); glVertex3f(ii,-1,10); glEnd(); } for(ii=9;ii>-9;ii=ii-0.5) { glBegin(GL_LINES); glColor3d(1,0,1); glVertex3f(-10,4,ii); glVertex3f(10,4,ii); glEnd(); } for(ii=9;ii>-9;ii=ii-0.5) { glBegin(GL_LINES); glColor3d(1,0,0); glVertex3f(ii,4,-10); glVertex3f(ii,4,10); glEnd(); } for(i=0;i<nbf;i++) { glColor3f(1,0,0); glBegin(GL_TRIANGLES); glVertex3f(tab_points[tab_faces[i].a-1].x , tab_points[tab_faces[i].a-1].y , tab_points[tab_faces[i].a-1].z ); glVertex3f(tab_points[tab_faces[i].b-1].x , tab_points[tab_faces[i].b-1].y , tab_points[tab_faces[i].b-1].z ); glVertex3f(tab_points[tab_faces[i].c-1].x , tab_points[tab_faces[i].c-1].y , tab_points[tab_faces[i].b-1].z ); glEnd(); } glDisable(GL_DEPTH_TEST) ; glutSwapBuffers(); glutPostRedisplay(); glutWarpPointer(250,250); } void keyboard(unsigned char key,int x, int y) { switch (key) { case 'z': pz-=pitch*Cos[r]; px+=pitch*Sin[r]; glutPostRedisplay(); break; case 's': pz+=pitch*Cos[r]; px-=pitch*Sin[r]; glutPostRedisplay(); break; case 'q': pz-=pitch*Sin[r]; px-=pitch*Cos[r]; glutPostRedisplay(); break; case 'd': pz+=pitch*Sin[r]; px+=pitch*Cos[r]; glutPostRedisplay(); break; case 'w': py+=pitch; glutPostRedisplay(); break; case 'x': py-=pitch; glutPostRedisplay(); break; } } void MouseMotion(int x,int y) { if(x!=250) r=(x-250+r); if(y!=250) s=(y-250+s); if (r>=360) r-=360; if (r<0) r=360+r; if (s>=90) s=90; if (s<-90) s=-90; glutPostRedisplay(); } void calcCosSinTable() { int i; for (i=0;i<360;i++){ Sin[i]=sin(i/360.0*6.283185); Cos[i]=cos(i/360.0*6.283185); } } void construire_box(Box * boiboite) { /* glColor3d(1,0,0); glBegin(GL_LINES); glVertex3f(boiboite->point1->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point2->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point1->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point1->x,boiboite->point2->y,boiboite->point2->z); glVertex3f(boiboite->point2->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point2->x,boiboite->point2->y,boiboite->point2->z); glVertex3f(boiboite->point1->x,boiboite->point2->y,boiboite->point2->z); glVertex3f(boiboite->point2->x,boiboite->point2->y,boiboite->point2->z); glVertex3f(boiboite->point1->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point3->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point3->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point3->x,boiboite->point3->y,boiboite->point3->z); glVertex3f(boiboite->point3->x,boiboite->point3->y,boiboite->point3->z); glVertex3f(boiboite->point3->x,boiboite->point2->y,boiboite->point2->z); glVertex3f(boiboite->point3->x,boiboite->point1->y,boiboite->point1->z); glVertex3f(boiboite->point1->x,boiboite->point3->y,boiboite->point2->z); glVertex3f(boiboite->point1->x,boiboite->point3->y,boiboite->point2->z); glVertex3f(boiboite->point3->x,boiboite->point3->y,boiboite->point2->z); glVertex3f(0,0,0); glVertex3f(0,0,1000); glVertex3f(0,0,0); glVertex3f(0,1000,0); glVertex3f(0,0,0); glVertex3f(1000,0,0); glEnd(); */ }[/code] header.h : [code]#include <stdio.h> #include <stdlib.h> #include <string.h> #include <GL/glut.h> #include <GL/gl.h> #include <GL/glu.h> #include <math.h> int nbv,nbf; struct _octree { struct Box * boite_actuelle; int nbFaceContenu; int * indiceFace; struct _octree *fils[8]; }octree; typedef struct point3D { double x; double y; double z; }Point3D; typedef struct box { struct Point3D * point1; struct Point3D * point2; struct Point3D * point3; }Box; typedef struct face{ int a,b,c; }Face; Point3D * tab_points; Face * tab_faces; Box * boite1; void chargement(void); void construction_arbre(int f,int v); void calc_bounding_box_init(void); void opengl(void); void construire_box(Box * boiboite); void reshape(int x,int y); void keyboard(unsigned char key,int x, int y); void MouseMotion(int x,int y); void calcCosSinTable(); void Perspective(); void affichage(); [/code] Le Makefile : [code]all: header.h main.o import.o octree_builder.o 3d.o gcc -Wall -g -o EssaiOctree main.o import.o octree_builder.o 3d.o -L/usr/X11R6/lib -lGL -lGLU -lglut -lX11 -lXmu -lXi -lm main.o: main.c header.h gcc -Wall -g -c main.c import.o: import.c header.h gcc -Wall -g -c import.c octree_builder.o: octree_builder.c header.h gcc -Wall -g -c octree_builder.c 3d.o: 3d.c header.h gcc -Wall -g -c 3d.c [/code] Et le fichier cube.txt qui contient des coordonné de vertex et des face avec les 3 pts corespondants : [code]144 242 v -6.032793 1.861925 0.693839 v -5.939533 1.762846 0.728096 v -5.817057 1.630166 0.755444 v -5.669960 1.470903 0.775891 v -5.502838 1.292076 0.789445 v -5.320284 1.100705 0.796116 v -5.126896 0.903808 0.795910 v -4.927267 0.708405 0.788836 v -4.725995 0.521515 0.774902 v -4.527673 0.350157 0.754117 v -4.336896 0.201350 0.726489 v -4.158262 0.082113 0.692025 v -5.744280 2.013191 0.728096 v -5.652104 1.919489 0.764008 v -5.534081 1.795677 0.792662 v -5.394414 1.647956 0.814070 v -5.237292 1.482523 0.828243 v -5.066913 1.305579 0.835191 v -4.887471 1.123324 0.834924 v -4.703162 0.941958 0.827454 v -4.518185 0.767680 0.812790 v -4.336729 0.606690 0.790944 v -4.162995 0.465189 0.761926 v -4.001178 0.349374 0.725746 v -5.488233 2.128212 0.755444 v -5.396118 2.036849 0.792662 v -5.280429 1.919440 0.822343 v -5.145159 1.781350 0.844500 v -4.994307 1.627942 0.859147 v -4.831861 1.464582 0.866296 v -4.661819 1.296635 0.865961 v -4.488178 1.129465 0.858155 v -4.314937 0.968436 0.842892 v -4.146085 0.818915 0.820185 v -3.985620 0.686264 0.790047 v -3.837536 0.575849 0.752492 v -5.263236 2.211365 0.775891 v -5.170339 2.119859 0.814070 v -5.055198 2.006797 0.844500 v -4.921775 1.876704 0.867196 v -4.774029 1.734108 0.882175 v -4.615923 1.583535 0.889452 v -4.451414 1.429512 0.889044 v -4.284466 1.276565 0.880968 v -4.119039 1.129222 0.865238 v -3.959093 0.992009 0.841873 v -3.808590 0.869452 0.810887 v -3.671487 0.766078 0.772297 v -5.067879 2.267027 0.789445 v -4.973523 2.173453 0.828243 v -4.857490 2.063091 0.859147 v -4.723835 1.939638 0.882175 v -4.576617 1.806793 0.897347 v -4.419896 1.668257 0.904682 v -4.257726 1.527725 0.904200 v -4.094166 1.388898 0.895919 v -3.933273 1.255474 0.879858 v -3.779105 1.131152 0.856038 v -3.635721 1.019630 0.824476 v -3.507177 0.924607 0.785193 v -4.900744 2.299574 0.796116 v -4.804431 2.202563 0.835191 v -4.686406 2.093664 0.866296 v -4.550920 1.975769 0.889452 v -4.402225 1.851772 0.904682 v -4.244578 1.724566 0.912008 v -4.082227 1.597045 0.911452 v -3.919425 1.472102 0.903035 v -3.760425 1.352630 0.886781 v -3.609478 1.241523 0.862711 v -3.470839 1.141674 0.830848 v -3.348757 1.055976 0.791213 v -4.760422 2.313383 0.795910 v -4.661823 2.212123 0.834924 v -4.541049 2.103859 0.865961 v -4.402606 1.990716 0.889044 v -4.251007 1.874817 0.904199 v -4.090763 1.758285 0.911452 v -3.926387 1.643244 0.910825 v -3.762387 1.531817 0.902346 v -3.603274 1.426129 0.886037 v -3.453560 1.328303 0.861925 v -3.317757 1.240462 0.830034 v -3.200374 1.164730 0.790389 v -4.645495 2.312831 0.788836 v -4.544460 2.207065 0.827454 v -4.420518 2.099021 0.858155 v -4.278469 1.990098 0.880968 v -4.123114 1.881701 0.895919 v -3.959250 1.775231 0.903035 v -3.791679 1.672091 0.902345 v -3.625199 1.573682 0.893876 v -3.464609 1.481407 0.877655 v -3.314709 1.396669 0.853710 v -3.180299 1.320869 0.822067 v -3.066177 1.255410 0.782755 v -4.554554 2.302293 0.774902 v -4.451100 2.192323 0.812790 v -4.323916 2.084490 0.842892 v -4.178089 1.979534 0.865238 v -4.018700 1.878199 0.879858 v -3.850834 1.781226 0.886781 v -3.679573 1.689358 0.886037 v -3.510005 1.603336 0.877655 v -3.347210 1.523903 0.861665 v -3.196276 1.451801 0.838097 v -3.062281 1.387773 0.806979 v -2.950315 1.332561 0.768343 v -4.486180 2.286146 0.754117 v -4.380503 2.172830 0.790944 v -4.250345 2.065610 0.820185 v -4.101041 1.964643 0.841873 v -3.937920 1.870083 0.856038 v -3.766309 1.782088 0.862711 v -3.591543 1.700814 0.861925 v -3.418952 1.626417 0.853710 v -3.253865 1.559054 0.838097 v -3.101612 1.498879 0.815118 v -2.967526 1.446051 0.784803 v -2.856936 1.400724 0.747185 v -4.438963 2.268768 0.726489 v -4.331430 2.153519 0.761926 v -4.198907 2.047725 0.790047 v -4.046905 1.951042 0.810887 v -3.880925 1.863127 0.824476 v -3.706474 1.783638 0.830848 v -3.529058 1.712232 0.830034 v -3.354182 1.648566 0.822067 v -3.187352 1.592297 0.806979 v -3.034073 1.543082 0.784803 v -2.899849 1.500578 0.755571 v -2.790189 1.464443 0.719315 v -4.411489 2.254534 0.692025 v -4.302639 2.139323 0.725746 v -4.168701 2.036176 0.752492 v -4.015255 1.944350 0.772297 v -3.847870 1.863104 0.785193 v -3.672123 1.791696 0.791213 v -3.493589 1.729382 0.790389 v -3.317843 1.675421 0.782755 v -3.150459 1.629071 0.768343 v -2.997011 1.589589 0.747185 v -2.863075 1.556233 0.719315 v -2.754223 1.528260 0.684766 f 132 144 143 f 132 143 131 f 131 143 142 f 131 142 130 f 130 142 141 f 130 141 129 f 129 141 140 f 129 140 128 f 128 140 139 f 128 139 127 f 127 139 138 f 127 138 126 f 126 138 137 f 126 137 125 f 125 137 136 f 125 136 124 f 124 136 135 f 124 135 123 f 123 135 134 f 123 134 122 f 122 134 133 f 122 133 121 f 120 132 131 f 120 131 119 f 119 131 130 f 119 130 118 f 118 130 129 f 118 129 117 f 117 129 128 f 117 128 116 f 116 128 127 f 116 127 115 f 115 127 126 f 115 126 114 f 114 126 125 f 114 125 113 f 113 125 124 f 113 124 112 f 112 124 123 f 112 123 111 f 111 123 122 f 111 122 110 f 110 122 121 f 110 121 109 f 108 120 119 f 108 119 107 f 107 119 118 f 107 118 106 f 106 118 117 f 106 117 105 f 105 117 116 f 105 116 104 f 104 116 115 f 104 115 103 f 103 115 114 f 103 114 102 f 102 114 113 f 102 113 101 f 101 113 112 f 101 112 100 f 100 112 111 f 100 111 99 f 99 111 110 f 99 110 98 f 98 110 109 f 98 109 97 f 96 108 107 f 96 107 95 f 95 107 106 f 95 106 94 f 94 106 105 f 94 105 93 f 93 105 104 f 93 104 92 f 92 104 103 f 92 103 91 f 91 103 102 f 91 102 90 f 90 102 101 f 90 101 89 f 89 101 100 f 89 100 88 f 88 100 99 f 88 99 87 f 87 99 98 f 87 98 86 f 86 98 97 f 86 97 85 f 84 96 95 f 84 95 83 f 83 95 94 f 83 94 82 f 82 94 93 f 82 93 81 f 81 93 92 f 81 92 80 f 80 92 91 f 80 91 79 f 79 91 90 f 79 90 78 f 78 90 89 f 78 89 77 f 77 89 88 f 77 88 76 f 76 88 87 f 76 87 75 f 75 87 86 f 75 86 74 f 74 86 85 f 74 85 73 f 72 84 83 f 72 83 71 f 71 83 82 f 71 82 70 f 70 82 81 f 70 81 69 f 69 81 80 f 69 80 68 f 68 80 79 f 68 79 67 f 67 79 78 f 67 78 66 f 66 78 77 f 66 77 65 f 65 77 76 f 65 76 64 f 64 76 75 f 64 75 63 f 63 75 74 f 63 74 62 f 62 74 73 f 62 73 61 f 60 72 71 f 60 71 59 f 59 71 70 f 59 70 58 f 58 70 69 f 58 69 57 f 57 69 68 f 57 68 56 f 56 68 67 f 56 67 55 f 55 67 66 f 55 66 54 f 54 66 65 f 54 65 53 f 53 65 64 f 53 64 52 f 52 64 63 f 52 63 51 f 51 63 62 f 51 62 50 f 50 62 61 f 50 61 49 f 48 60 59 f 48 59 47 f 47 59 58 f 47 58 46 f 46 58 57 f 46 57 45 f 45 57 56 f 45 56 44 f 44 56 55 f 44 55 43 f 43 55 54 f 43 54 42 f 42 54 53 f 42 53 41 f 41 53 52 f 41 52 40 f 40 52 51 f 40 51 39 f 39 51 50 f 39 50 38 f 38 50 49 f 38 49 37 f 36 48 47 f 36 47 35 f 35 47 46 f 35 46 34 f 34 46 45 f 34 45 33 f 33 45 44 f 33 44 32 f 32 44 43 f 32 43 31 f 31 43 42 f 31 42 30 f 30 42 41 f 30 41 29 f 29 41 40 f 29 40 28 f 28 40 39 f 28 39 27 f 27 39 38 f 27 38 26 f 26 38 37 f 26 37 25 f 24 36 35 f 24 35 23 f 23 35 34 f 23 34 22 f 22 34 33 f 22 33 21 f 21 33 32 f 21 32 20 f 20 32 31 f 20 31 19 f 19 31 30 f 19 30 18 f 18 30 29 f 18 29 17 f 17 29 28 f 17 28 16 f 16 28 27 f 16 27 15 f 15 27 26 f 15 26 14 f 14 26 25 f 14 25 13 f 12 24 11 f 24 23 11 f 11 23 10 f 23 22 10 f 10 22 9 f 22 21 9 f 9 21 8 f 21 20 8 f 8 20 19 f 8 19 7 f 7 19 18 f 7 18 6 f 6 18 17 f 6 17 5 f 5 17 16 f 5 16 4 f 4 16 15 f 4 15 3 f 3 15 14 f 3 14 2 f 13 1 2 f 13 2 14 [/code] voici un script .sh qui permet de généré un cube.txt a partir de n importe quel fichier .obj de blender (généré le .obj avec seulement des faces triangulaire, de base blender introduit des face carré et ce n'est pas supporté) : [code]# bin/sh grep -c "^v" $2 > $1; grep -c "^f" $2 >> $1; grep "^v" $2 >> $1; grep "^f" $2 >> $1; [/code] Voila . Le fichier 3d.c tente de construire en opengl les face du fichier cube.txt en utilisant un for . Ca marche pas super mais cette méthode ne m'interesse pas je n'ai donc pas cherché plus loin car mon but est d'affiché la scène en utilisant un octree . Dans 3d.c le contenu de la fonction construire_box est commenté car le problème est ici et aussi dans octree_builder la fin du fichier est commentée pour la même raison . Tel que je le poste le code compile avec seulement 4 warning pour la fonction atoi (sans importance) chez moi . Voila merci et A bientôt . PS : Concernant la construction de l'octree rien n'est fait a part la détection de la boite de départ contenant tout les point et l'affichage d'une box pour le test (qui plante fction construire_box) Voila j'ai hate d'avancé mais cette erreur de structure m'en empèche et je ne comprend pas d'ou cela peut venir .

Modifié par kletou le 21/06/2006 12:40
kletou
 Posté le 21/06/2006 à 12:44 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Oula je constate que le forum remplace mes '\\\0' par des '\\\\\\\\0' J'ai pa tout relu dans le post donc il y a peu etre des erreurs de ce type mais au premier coup d'oeil je n'en ai pa vu d'autres .

Modifié par kletou le 21/06/2006 12:45
kletou
 Posté le 21/06/2006 à 12:48 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Bon vous avez compris ce sont des anti-slash zero caractère de fin de chaine ... Pasque je ne peut pas l'ecrire il rajoute un \ a chaque fois . Surement dû au codage du forum . @Bientôt et bonne fête de la musique si vous faites quelque chose ce soir :p :) edit : Même pb pour les anti slash N caractère de fin de ligne qui faut sauté une ligne dans le forum.....

Modifié par kletou le 21/06/2006 12:50
breizhbugs
 Posté le 21/06/2006 à 13:25 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Astucien
Salut, Bon en fait j'vais desinstaller mon compilo VSC++2002 pour installer VSC++2005express qui n'as pas toutes les entetes donc je peut pas compiler pour tester pour le moment.
Message original par kletou [code]typedef struct point3D { double x; double y; double z; }Point3D; typedef struct box { struct Point3D * point1; struct Point3D * point2; struct Point3D * point3; }Box; Box * boite1;[/code]
Tu definis boite1 comme etant "Box *". Dans box tu definis pointX comme etant "struct Point3D*". Pourquoi pas juste "Point3D *" ? (je connais pas trop le C "pur"!).
kletou
 Posté le 21/06/2006 à 13:39 
Aller en bas de la page Revenir au message précédent Revenir en haut de la page
Nouvel astucien
Merci C'est résolu grace a toi :) Je suis vraiment tro c****************************** C'est abusé ... J'ai fait un typedef donc ... Merci bien en tout cas pour ta rapidité et ta réponse A bientôt et merci encore sinon pour les en tête il faut la lib glut et opengl

Modifié par kletou le 21/06/2006 13:40
Page : [1] 
Page 1 sur 1

Vous devez être connecté pour poster des messages. Cliquez ici pour vous identifier.

Vous n'avez pas de compte ? Créez-en un gratuitement !


Les bons plans du moment PC Astuces

Tous les Bons Plans
49,49 €Disque dur Toshiba P300 2 To à 49,49 € avec le code AFFAIRE10
Valable jusqu'au 23 Octobre

Cdiscount fait une promotion sur le disque dur Toshiba P300 2 To qui passe à 49,49 € grâce au code promo AFFAIRE10On le trouve ailleurs à partir de 65 €. Ce disque dur interne de 2 To est SATA 6 Gbps, possède 64Mo de cache et dispose d'une vitesse de rotation de 7200 tpm. 


> Voir l'offre
58,99 €Kit de 16 Go (2 x 8 Go) de mémoire DDR4 Crucial Ballistix 3000 MHz à 58,99 €
Valable jusqu'au 23 Octobre

Amazon fait une promotion sur le kit de 16 Go (2x8 Go) de mémoire DDR4 Crucial Ballistix 3000 MT/s CL15 qui passe à 58,99 € livré gratuitement alors qu'on le trouve ailleurs à partir de 82 €.


> Voir l'offre
-15%-15% sur les boîtiers chez LDLC avec le code MENUB15
Valable jusqu'au 22 Octobre

LDLC propose actuellement 15% de remise immédiate sur les boîtiers PC de son catalogue. Pour profiter de l'offre, saisissez le code promo MENUB15 dans votre panier.


> Voir l'offre

Sujets relatifs
Problème avec WinPython - Spyder
Problème avec les espaces C++
problème avec un parametre de requete preparée MVC
Problème Access avec 2 inner join
////// Probléme avec Idman 6.50 \\\
problème avec JTextField
probleme de requete avec le Jframe
probleme avec mkdir()
probleme avec emu8086
Problème avec logiciel de généalogie
Plus de sujets relatifs à Problème avec des structures en C
 > Tous les forums > Forum Autres langages