Ce qui suit utilise l'api win32 je sais pas si tu connais....je suppose que oui pour l'instant :
Tu peux par exemple utiliser la structure BITMAPINFO dans laquel tu renseignes diverses informations taille, niveau de couleur, etc...
Ensuite tu créer un tableau de pixel qui representera ton image.
Enfin a l'aide de la fonction SetDIBitsToDevice() tu affiche cette image à l'ecran.
Voici un bout de code trouve sur cpp :
void AfficheImage(int x, int y)
{
int i, j; // Bcl
LPBYTE lpBits = new BYTE[4*320*240]; // Idem
BITMAPINFO bmpinfo; // info sur l'image
// Donne les infos sur le bitmap
bmpinfo.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
bmpinfo.bmiHeader.biWidth = 320;
bmpinfo.bmiHeader.biHeight = 240;
bmpinfo.bmiHeader.biPlanes = 1;
bmpinfo.bmiHeader.biBitCount = 32;
bmpinfo.bmiHeader.biCompression = BI_RGB;
bmpinfo.bmiHeader.biSizeImage = 0;
bmpinfo.bmiHeader.biXPelsPerMeter = 0;
bmpinfo.bmiHeader.biYPelsPerMeter = 0;
bmpinfo.bmiHeader.biClrUsed = 0;
bmpinfo.bmiHeader.biClrImportant = 0;
// Parcoure le tbl
for(i=0; i<240; i++)
for(j=0; j<320; j++)
{
lpBits[4*320*(239-i)+4*j+2] =0; // Composante rouge du Pixel
lpBits[4*320*(239-i)+4*j+1] =255; // Composante verte du Pixel
lpBits[4*320*(239-i)+4*j] =0 // Composante bleu du Pixel
}
// Affiche l'image
SetDIBitsToDevice(hDC, x, y, 320, 240, 0, 0, 0, 240, lpBits, &bmpinfo, DIB_RGB_COLORS);
// Fait le ménage
free(lpBits);
}
Cette fonction va par exemple colorier une image de 320*240 en vert et l'afficher sur la fenetre a la position x,y.
Je precise que hDC = GetDC (hwnd) ou hwnd est le handle de ta fenetre.
/////////////////
La representation de l'equa dif :
Si je comprend bien tu veux representer un systeme a deux variables qui evoluent au cours du temps (exemple une corde qui vibre ?)
Donc a chaque instant (au cours du temps donc) tu vas calculer la hauteur de chaque point qui constitue ta corde. En un point ou la corde est haute tu vas colorier le Pixel en noir. En revanche un point ou la corde est basse le point sera plutot blanc (ou l'inverse).
Donc pour chaque pas de x (chaque tranche de ton image) tu dessines l'etat de ta corde apres avoir calculer pour chaque point (les y) sa hauteur et en deduire une couleur.
Le principe :
Soit une image de largeur x et de hauteur y
Boucle sur x // j'avance au cours du temps
Boucle sur y // pour chaque pas au cours du temps
colorier (couleur, x, y) // pour chaque point de ma corde y je colorie en fonction de la hauteur de la corde en ce point
Tu devras calculer la bonne echelle :
Exemple : ton image fait A de large, B de haut et affiche 255 niveaux de gris.
Si tu veux etudier le systeme de 0s à 10s => entre deux pixel (en largeur) consecutif tu auras 10/A secondes.
Si ta corde fait 10 mètres de long => Entre deux pixels (en hauteur) tu auras 10/B metres
Si la hauteur de ta corde varies entre p metres et p' metres => la differences de deux niveaus de gris consecutifs representera |p - p'|/255 metres
/////////////////
En esperant avoir bien conpris ton probleme et t'avoir eclaire.