Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

Sujet : espace openGL [ Archives / OpenGL ] (sebrs1)

vendredi 4 février 2005 à 23:14:23 | espace openGL

sebrs1

j'ai une petite question, voila je debute en openGL, mais je voudrais avoir un pti renseignement, est-ce que dans openGL, chaque axe de l'espace ne depasse pas l'interval [-1.0;1.0].  Moi mon but est de faire une map, donc pour l'instant j'apprend mais bon c pour la suite que je voudrais savoir ça. sinon pour la camera, avec glulookat,  j'ai fait un programme qui est censé faire tourner une camera autour d'un triangle plat (2D) seulement apparemment le triangle fait un cercle  mais devant la camera .

voici mon prog

/* inclusion des fichiers d'en-tete Glut */

#include <glut.h>
#include <math.h>
#include <stdio.h>

void affichage();
void clavier(unsigned char touche,int x,int y);

double anglescamera[80][2];
int angle;

int main(int argc,char **argv)
{
  int i;

  angle = 0;

  /* initialisation de glut et creation
     de la fenetre */
  glutInit(&argc,argv);
  glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE);
  glutInitWindowPosition(10,10);
  glutInitWindowSize(800,600);
  glutCreateWindow("principale");

  for (i=0;i<=79;i++){
    anglescamera[i][0] = cos(((3.1415927*2.0)/360.0)*4.5*(float)i);
    anglescamera[i][1] = sin(((3.1415927*2.0)/360.0)*4.5*(float)i);
    //printf ("x=%f et z=%f ",anglescamera[i][0],anglescamera[i][1]);
  }

  /* Initialisation d'OpenGL */
  glClearColor(0.0,0.0,0.0,0.0);
  glColor3f(1.0,1.0,1.0);
  glPointSize(2.0);

  /* enregistrement des fonctions de rappel */
  glutDisplayFunc(affichage);
  glutKeyboardFunc(clavier);


  /* Entree dans la boucle principale glut */
  glutMainLoop();
  return 0;
}

void affichage()
{
  /* effacement de l'image avec la couleur de fond */
  glClear(GL_COLOR_BUFFER_BIT);

  glLoadIdentity();

  gluLookAt(anglescamera[angle][0],0.5,anglescamera[angle][1],0.0,0.0,10.0,0.0,0.1,0.0);

  /* Dessin du polygone */
  glBegin(GL_TRIANGLES);
  glColor3f(1.0,0.0,0.0);
  glVertex3f(0.0,1.0,0.0);
  glColor3f(0.0,1.0,0.0);
  glVertex3f(0.5,0.0,0.0);
  glColor3f(0.0,0.0,1.0);
  glVertex3f(-0.5,0.0,0.0);
  glEnd();

  glFlush();
  /* on force l'affichage du resultat */

  glutSwapBuffers();
}

void clavier(unsigned char touche,int x,int y)
{
  switch (touche)
    {
    case 'p': /* affichage du carre plein */
      glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
      glutPostRedisplay();
      angle +=1;
      if (angle > 79) angle -=80;
      printf ("x=%f et z=%f \n",anglescamera[angle][0],anglescamera[angle][1]);

      break;
    case 'f': /* affichage en mode fil de fer */
      glPolygonMode(GL_FRONT_AND_BACK,GL_LINE);
      glutPostRedisplay();
      break;
    case 's' : /* Affichage en mode sommets seuls */
      glPolygonMode(GL_FRONT_AND_BACK,GL_POINT);
      glutPostRedisplay();
      break;
    case 'q' : /*la touche 'q' permet de quitter le programme */
      exit(0);
    }
}



pouvez vous m'aider??


@+
Sebrs1

PS (qui ne signifie pas playstation :-)) : visitez mon site qui fait ses début svp
http://universal-glandeur.fr.st

samedi 5 février 2005 à 21:20:23 | Re : espace openGL

Arnaud16022

Membre Club
"chaque axe de l'espace ne depasse pas l'interval [-1.0;1.0]."
??????
???
qui t'a raconté une connerie comme ca?

sinon:
a quoi set ca:
for (i=0;i<=79;i++){
    anglescamera[i][0] = cos(((3.1415927*2.0)/360.0)*4.5*(float)i);
    anglescamera[i][1] = sin(((3.1415927*2.0)/360.0)*4.5*(float)i);
  }
tu précalcules toutes les positions de la caméra c'est ca? absolument inutile, t'imagine s'ils devaient faire ca dans gta?
c'est d'ailleur beaucoup plus pratique sans:
case 'p': /* affichage du carre plein */
      glPolygonMode(GL_FRONT_AND_BACK,GL_FILL);
      //glutPostRedisplay();
      angle +=0.01;
      //if (angle > 79) angle -=80;
      camera_X=
cos(((PI)/360.0)*angle);
// idem pour cam_Y

     break;

je crois que tes
glutPostRedisplay();
sont inutiles itou

si ca affiche un cercle je pense que c'est pasque ca tourne trop vite.
pas besoin de 2 buffers pour un rtuc comme ca
évite glut ( enfin ca c'est avis perso)
glPointSize(1.0);

c'est tout je crois...
va sur gametutorials.com, rubrique prog->openGL->page 2 (je crois) -> time-based movement
ou sur glinfrench (connais pas bien mais doit y avoir)

++
ad
_______________________
Omnia vincit labor improbus



Cette discussion est classé dans : int, affichage, gl, angle, anglescamera


Répondre à ce message

Sujets en rapport avec ce message

Problème d'affichage, couleurs, faces visibles/cachées [ par Tibabou ] Bonjour/soir, Avec le code ci-dessous, j'obtiens une sphère "bizarre", j'ai le même problème avec des cubes, on voit le fond à certains endroits:<IMG Fenetre MS DOS derrière ma fenêtre opengl [ par nisaloncaje ] ReBonjour, j'utilise dev c++ et lorsque je compile le projet fourni dans le tutorial : http://www.linuxgraphic.org/section3d/openGL/disponible ici :<A [opengl] glGenTextures et new [ par gillescpp ] Voila, J'ai un probleme avec opengl. J'explique rapidement : apres un appel de glGenTextures, il m'est impossible d'allouer de la mémoire dynamiquemen Affichage correct d'une sphère et de sa texture [ par mikey84 ] bonjour jai un gros problème que je n'arrive pas a résoudre et la je sais plus quoi faire! je m'explique : j'affiche une shpère à l'écran et je la pla Snake tsssssssssss aidez moiiiiiiii [ par AmK ] Salut ,Je suis en train de coder un snake et la je crois avoir bien compris le principe de l'algo mais niveau code ça foire je sais pas pourquoi voila [C et Ncurses] Déplacement de curseur et Insertion de texte [ par gulix ] Dans le cadre d'un projet, je dois développer un éditeur de texte de type Vi. Pour cela, j'utilise la bibliothèque ncurses. J'arrive ainsi à gérer san les sous fenetres en glut n'en font qu'a leurs tetes [ par whikie ] Bonjour,je voudrais comprendre le placement des glutSubWindow.Voici les infos que j'ai :glutCreateSubWindow La fonction glutCreateSubWindow crée une TEXTURE SUR UNE SPHERE TOURNANTE [ par Batman60 ] bonsoirj'ai un problème de texture sur une spherela texture ne  tourne pas et ne prend pas la forme de la sphere ,mais la sphere tournevoic Affichage de int dans une CString [ par ekinox17 ] voila j'aimerai afficher l'heure dans mon prog MFC : bon je l'ai fait sa marche mais ya un truc que je sais pas faire : mon affichage donne ceci 11:9: Problème avec TGA Loader [ par psykocrash ] Bonjour, J'ai commencé depuis peut la programmation avec OpenGL/GLut et j'ai trouvé la classe TGA Loader de Funto66 mais je n'arrive pas à afficher le


Nos sponsors

Sondage...

CalendriCode

Juillet 2009
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :

Comparez les prix Nouvelle version

Photothèque Nouveau !



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
Temps d'éxécution de la page : 0,437 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.