[C/C++] Tracer des points

Voilà,

J’ai codé un petit programme en C et je voudrais tracer une courbe (ou un nuage de points plutôt) dans une fenêtre à partir de données contenues dans un tableau. Pouvoir choisir la couleur de ces points (éventuellement leur forme/taille), et de pouvoir tracer plusieurs « courbes » successivement.

Jusqu’à présent je sauvais ces points dans un fichier .dat et je les regardais avec excell mais j’aimerai avoir un rafraichissement de la courbe en tant réel :stuck_out_tongue:

Comment faire ?

Merci pour votre aide :stuck_out_tongue:

P.S : un truc spartiate mais simple me suffirait !

A la roots :
tu tapes direct dans un bitmap en mémoire, et tu affiches le bitmap en question à l’écran via GDI

un peu moin roots :
un appel à OpenGL/DirectX qui te delestera de pas mal de calcul (surtout si tu veux faire varier la taille des points). C’est ptet sortir le tractopelle pour écrabouiller une fourmis.

classos :
Une librairie spécialisé dans le dessin de graphique, je connait pas de nom mais il doit bien exister une plétore de librairies de ce genre

bah, si tu te sens le courage, tu peux toujours te coder ton propre logiciel de visu grâce à win32 et GDI.

Sinon, je ne connais pas de solutions à ton problème, faut dire que je ne suis pas un spécialiste des programmes de matheux, mais je suis sûr qu’un autre fou de la zone va dégoter ton bonheur :stuck_out_tongue:

EDIT: grillé par TwinSidE

Ah je suis agréablement surpris de voir des gens suggérer des solutions simples, je m’attendais à du « installe .NET et VS2005 express et fais-le en C# et windows forms » :stuck_out_tongue:

Moi je pense que le plus simple ça va être de choper GLUT, et après avec GL_LINES et glPoint2D tu dessines super facilement. De plus, trouver des exemples va être très facile. Ca devrait donner un truc du genre, pour un programme qui affiche une ligne:

[code]#include <GL/glut.h>

void renderScene(void) {
glClear(GL_COLOR_BUFFER_BIT);
glBegin(GL_LINES);
glVertex2f(-0.5,-0.5);
glVertex2f(0.5,0.0);
glEnd();
glFlush();
}

void main(int argc, char **argv) {
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_DEPTH | GLUT_SINGLE | GLUT_RGBA);
glutInitWindowPosition(100,100);
glutInitWindowSize(« blablabla »);
glutDisplayFunc(renderScene);
glutMainLoop();
}[/code]

J’ai pas vérifié que ça marche, c’est du copier-coller d’un site avec deux ou trois modifs, mais ça donne l’idée.

Merci pour votre aide à tous

@Drealmer : est ce que tu pourrais me donner le lien web de ce que tu cites ? juste pour que j’approfondisse un peu ce que tu m’as dit.

En même temps, je me demande ce qui est le plus simple: apprendre à utiliser GDI, ou bien se mettre à WinForm :stuck_out_tongue:

Pour glut tu devrais essayer ces sites: http://raphaello.univ-fcomte.fr/IG/OpenGL/Glut.htm et http://wwwiutp.univ-poitiers.fr/…/glut_bases.html, y a tout ce qui te faut pour faire des points, je pense. Par contre, je sais pas pour les courbes (enfin pour faire simplement), mais bon, j’ai commencé les cours opengl et glut hier…
Sinon c’est sur qu’avec Visual c’est simple a faire… :stuck_out_tongue:

C’est clair… faire plus que un appel tout simple a une procedure « DrawLine » pour dessiner une ligne, je vois pas… (genre faire dans le OnPaint pour un panel e.Graphic.DrawLine(3,4,13,14)… et hop). Enfin si c’est plus simple de taper 50 lignes et d’apprendre comment initialiser des surface opengl ou directx pourquoi pas :stuck_out_tongue: Cela dit, meme en C/C++ autant utiliser GDI+ (pas GDI), c’est quand meme largement plus fait pour faire exactement ce genre de truc et plus simple a utiliser…

Vade retro démon du progrès ! Va me coder des rasterbars en mode x pour te purifier mon fils.