Bonsoir,
comment faire pour qu'openGL lise un fichier de données numériques et en fasse un plot, c'est à dire une representation graphique ?
Bonsoir,
comment faire pour qu'openGL lise un fichier de données numériques et en fasse un plot, c'est à dire une representation graphique ?
Cela dépend du fichiers de données. C'est ton boulot de lire les données, les mettre en mémoire et après l'affiche.
Il y a deux problèmes :
- Lire le fichier et le mettre dans une structure de données appropriée
- Lire cette structure pour faire ton plot.
Pour la première partie, voir le forum spécifique...
Pour la deuxième partie, il faudra être plus précis sur ce que tu veux...
Jc
bon, je précise encore : disons qu'on a un fichier texte ou autre qui contient sur deux colonnes des nombres ( abscisses et ordonnées ) comment faire pour les afficher dans openGL sous forme de graphiques ? voilà c'est clair ?
Tu n'as pas vraiment répondu à la question. Qu'est-ce qui te pose problème, la lecture du fichier ou l'affichage ? Qu'est-ce que tu as déjà essayé ? Tu bloques sur quoi ?
C'est très clair, ton problème se divise toujours de la même façon :Envoyé par germanium
Ne pense pas que je ne veux pas aider. Je veux juste que tu prennes conscience qu'il y a un premier problème (chargement du fichier en mémoire sous forme de structure de données) qui est indépendant à OpenGL et donc la résolution de ce problème ne se fera pas ici mais dans le forum spécifique au langage que tu souhaites utiliser.- Lire le fichier et le mettre dans une structure de données appropriée
- Lire cette structure pour faire ton plot.
La façon d'expliquer à OpenGL comment gérer ces points dépendra de comment ils sont mis en mémoire... Le deuxième problème, tristement, ne peut donc que se résoudre après que tu aies décider comment tu souhaites résoudre le premier problème.
Finalement, tu dis que tu as 2 colonnes, donc OpenGL n'est peut-être pas la meilleure solution pour afficher du 2D sauf si c'est déjà inclu dans un programme 3D, est-ce la cas?
Car sinon, le programme gnuplot fait très bien ce boulot, encore faut-il que tu sois sous le bon système d'exploitation...
Voilà pourquoi je dis qu'il faut être plus précis dans les questions posées...
Jc
j'utilise déjà gnuplot depuis longtemps, mais j'ai besoin d'afficher de la 3d avec opengl à partir des nombres calculés avec du c++ sur compilateur vc++
Donc tu as soit 2 colonnes et ton programme calcule la troisième dimension, soit ton fichier a 3 dimensions...Envoyé par germanium
Pour afficher un ensemble de points, il faudra que tu décides de la structures de données qui contient tous les points que tu veux afficher, est-ce déjà fait?
Jc
deux colonnes de nombres pour la 2D ou trois colonnes pour la 3D, c'est évident non ? ces nombres doivent etre introduits dans openGL pour qu'il en fasse des "vertices" ou des points ayant pour coordonnées ces nombres;
je pose la question autrement : comment dessiner des centaines de points ou de vertex ? on ne va pas s'amuser à introduire leurs coordonnées à la main;non ?
Pour la 3ème fois :
Voici l'algorithme :
- Lire le fichier et remplir un tableau de coordonnées 2D/3D
- Parcourir le tableau pour dessiner les points 2D/3D
Jc
oui d'accord, mais concrètement quelles sont les fonctions d'openGL qui permettent de traduire ces deux étapes là ?
Ok, pour la 4ème fois :Envoyé par germanium
Aucune fonction OpenGL n'est nécessaire. Est-ce assez clair ?- Lire le fichier et remplir un tableau de coordonnées 2D/3D
Si tu sais lire un fichier et le mettre dans un tableau dans ton langage de prédilection, alors c'est dans ce langage que tu feras cette mise en place.
Si tu ne sais pas le faire, c'est une question pour le forum spécialisé...
Comment faire pour afficher des points?- Parcourir le tableau pour dessiner les points 2D/3D
Mais ceci suppose que :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 glBegin(GL_POINTS); /* Parcourir ton tableau et afficher chaque point */ Pour chaque point p de ton tableau messuperpoints Faire glVertex3f(p.x,p.y,p.z); //ou glVertex2f(p.x,p.y) Fin Pour glEnd();
- Ta fenêtre a été correctement créé ce qui n'est pas fait par OpenGL mais par SDL/Glut/Win API ou une autre bibliothéque...
- Tu as mis en place la vue correctement avec gluLookAt par exemple
Jc
Partager