예제 #1
0
파일: main.c 프로젝트: quentinrinaldi/test2
void creation_BD () {
    Meta_relation **meta_relations;
    schema_BD = (Schema_BD *) malloc(sizeof(Schema_BD));
    meta_relations = (Meta_relation **) malloc (sizeof (Meta_relation) * 8);
    
    int cpt_r = 0;
    
    
    printf("\nEntrez le nom de la base de données : ");
    scanf("%s", nom_BD);
    
    //Création d'une relation
    while (cpt_r<8) {
        
        ajouter_relation(meta_relations, cpt_r);
        cpt_r++;
        
        printf("\nVoulez-vous ajouter une relation supplémentaire ? o/n");
        scanf("%s", saisie_utilisateur);
        if (strcmp (saisie_utilisateur, "o") != 0)
            break;
    }
    strcpy(schema_BD->nom_BD, nom_BD);
    schema_BD->nb_relations=cpt_r;
    schema_BD->relations = meta_relations;
    
    sauvegarder_schema_BD(schema_BD);
    printf("\nLa base de données a été enregistrée en mémoire persistante et chargée en mémoire vive\n\n");
    menu_manipulation_BD();
}
예제 #2
0
파일: prog.c 프로젝트: Korbenik/Moteur3D2
int main(int argc,char** argv)
{
  t_surface *surface=NULL;
  int cpt = 0;
  int timestart;
  char buf[50];

#ifdef T2D
  t_point2d *p1 = definirPoint2d(10,50), *p2 = definirPoint2d(100,240), *p3 = definirPoint2d(50,300);
  t_triangle2d *t1 = definirTriangle2d(p1, p2, p3);
#endif
#ifdef T3D
  t_point3d *p10 = definirPoint3d(100,50,80), *p20 = definirPoint3d(100,240,100), *p30 = definirPoint3d(50,300,100);
  t_triangle3d *t10 = definirTriangle3d(p10, p20, p30);
  t_point3d *v10 = definirVecteur3d(1,1,1);
#endif
#ifdef O3D

  t_point3d *origine = definirPoint3d(0,0,0), *vecteur;
    
  t_objet3d *camorigine=camera();

  t_objet3d *soleil=sphere(80,12,12,ROUGEC,ROUGEF);

  t_objet3d *saturne=sphere(30,10,10,MARRON1,MARRON2);
  t_point3d *centreSaturne=definirPoint3d(0,0,0);
  //translationObjet3d(saturne,centreSaturne);

  t_objet3d *uranus=sphere(30,10,10,BLEUC,BLEUC);
  t_point3d *centreUranus=definirPoint3d(0,0,0);
  //translationObjet3d(uranus,centreUranus);

  t_objet3d *terre=sphere(15,8,8,BLEUC,BLEUF);
  t_point3d *centreTerre=definirPoint3d(0,0,0);
  //translationObjet3d(terre,centreTerre);

  t_objet3d *lune=sphere(6,6,6,GRISC,GRISF);
  t_point3d *centreLune=definirPoint3d(0,0,0);
  //translationObjet3d(lune,centreLune);

  t_objet3d *anneauS=tore(40,3,3,16);

  //translationObjet3d(anneauS,centreSaturne);

  t_objet3d *anneauU=tore(40,2,3,16);

  //translationObjet3d(anneauU,centreUranus);


  t_scene3d *scene = definirScene3d(camorigine);

  t_point3d* centreSoleil=origine;

  t_scene3d *scsol = ajouter_relation(scene,soleil);
  t_scene3d *scsat = ajouter_relation(scsol,saturne);
  t_scene3d *scanneau1 = ajouter_relation(scsat, anneauS);
  t_scene3d *scura = ajouter_relation(scsol,uranus);
  t_scene3d *scanneauU=ajouter_relation(scura,anneauU);
  t_scene3d *scterre=ajouter_relation(scsol,terre);
  t_scene3d *sclune=ajouter_relation(scterre,lune);


  vecteur=definirPoint3d(150,0,0);
  translationScene3d(scterre,vecteur);
  free(vecteur);

  vecteur=definirPoint3d(250,0,0);
  translationScene3d(scsat,vecteur);
  free(vecteur);

  vecteur=definirPoint3d(320,0,0);
  translationScene3d(scura,vecteur);
  free(vecteur);

  vecteur=definirPoint3d(40,0,0);
  translationScene3d(sclune,vecteur);
  free(vecteur);


  rotationScene3d(scanneauU,centreUranus,0,0,90);
  





  t_bool quit=false;
  SDL_Event event; //variable event
  float dx=0;
  float dy=0;
  float dz=0;
  float drx=0;
  float dry=0;
  float drz=0;

#endif

  int i=0;

  surface=creerFenetre(RX,RY);
  timestart = SDL_GetTicks();


  while(i<50*10000 && !quit)
    {
      effacerFenetre(surface, 0);

#ifdef T2D
      /*
       * etape 1 : ce n'est qu'un exemple... il faut desactiver le define T2D pour la suite
       */
      remplirTriangle2d(surface, t1, echelle_de_couleur(30*i));
      SDL_Delay(500);

#endif
#ifdef T3D
      /*
       * etape 2 : ecrire le corps des fonctions de lib_mat.c et lib_3d.c
       * - commencer par definirTriangle3d et rotationTriangle3d
       * - tester en activant le define T3D
       * - terminer avec les autres fonctions
       */

      translationTriangle3d(t10,v10);

      rotationTriangle3d(t10, p10, 0, 10, 0); // rotation d'axe Y
	

      remplirTriangle3d(surface, t10, echelle_de_couleur(30*i));
      SDL_Delay(25);
	
#endif
#ifdef O3D
      /*
       * etape 3 : ecrire le corps des fonctions de lib_objet3d.c
       * - commencer par la definition d'un objet simple (parallelepipede) et l'affichage,
       * - continuer par les transformations
       * - finir par le tri des faces d'un objet et la composition des objets
       */


      // Outil SDL Benoit !

      //rotationObjet3d(soleil,origine,0,1,0);
      //dessinerObjet3d(surface,soleil);
      //printf("coucou\n");
      dessinerScene3d(surface,scene);

      SDL_PollEvent(&event); //récupère la dernière entré système(souris, clavier etc...

      
      switch(event.type){
      case SDL_KEYDOWN:
	switch(event.key.keysym.sym){    
	case SDLK_KP9:
	  dy++;
	  break;
	case SDLK_KP3:
	  dy--;
	  break;
	case SDLK_KP6:
	  dx--;
	  break;
	case SDLK_KP4:
	  dx++;
	  break;
	case SDLK_KP8:
	  dz++;
	  break;
	case SDLK_KP2:
	  dz--;
	  break;
	case SDLK_a:
	  drz++;
	  break;
	case SDLK_e:
	  drz--;
	  break;
	case SDLK_q:
	  dry--;
	  break;
	case SDLK_d:
	  dry++;
	  break;
	case SDLK_z:
	  drx++;
	  break;
	case SDLK_s:
	  drx--;
	  break;      
	case SDLK_SPACE:
	  dx=0;
	  dy=0;
	  dz=0;
	  drx=0;
	  dry=0;
	  drz=0;
	  break;
	case SDLK_ESCAPE:
	  quit=true;
	}
	break;
      }    
      
      t_point3d *translation=definirPoint3d(dx,dy,dz);
      translationScene3d(scene->pt_fils,translation);      
      free(translation);

      if(drx<0)
	{    
	  rotationScene3d(scene,origine,-1,0,0);
	}
      if(dry<0)
	{
	  rotationScene3d(scene,origine,0,-1,0);
	}
      if(drz<0)
	{
	  rotationScene3d(scene,origine,0,0,-1);
	}
      if(drx>0)
	{
	  rotationScene3d(scene,origine,1,0,0);
	}
      if(dry>0)
	{
	  rotationScene3d(scene,origine,0,1,0);
	}
      if(drz>0)
	{
	  rotationScene3d(scene,origine,0,0,1);
	  }
      
      multiplicationVecteur3d(centreSaturne,origine,scsat->descendant);
      multiplicationVecteur3d(centreUranus,origine,scura->descendant);
      multiplicationVecteur3d(centreTerre,origine,scterre->descendant);
      multiplicationVecteur3d(centreLune,origine,sclune->descendant);
      
      
      rotationScene3d(scsol,origine,0,0.2,0);
      rotationScene3d(scsat,origine,0,0.5,0);
      rotationScene3d(scterre,origine,0,1,0);
      rotationScene3d(sclune,centreLune,0,-3,0);
      rotationScene3d(scanneauU,origine,5,0,0);
      rotationScene3d(scura,origine,0,0.3,0);
      
      /*
      rotationScene3d(sclune,origine,0,-3,0);      
      rotationScene3d(scterre,centreTerre,0,1,0);
      rotationScene3d(scsat,centreSaturne,0,0.5,0);
      rotationScene3d(scura,centreUranus,0,0.3,0);
      */
      
      

      
      SDL_Delay(25);
#endif

      majEcran(surface);

      i += 1;

      cpt++;
      sprintf(buf,"%d FPS",(int)(cpt*1000.0/(SDL_GetTicks()-timestart)));
      SDL_WM_SetCaption(buf,NULL);
    }
  SDL_Quit();
  return 0;
}