PDA

Visualizza la versione completa : [C++] Grafico istogramma con graphics.h


kaiservib
16-01-2012, 19:38
void disegnaGrafico(float arrayFrequenze[]) //FUNZIONE DISEGNA GRAFICO
{
int accumulatore = 0;
nitwindow(700,580);
line(50,20,50,520);
line(50,520,550,520);
setcolor(4);
settextstyle(10,HORIZ_DIR,1);
setlinestyle(0, 4, 3);
for(int i= 0; i<dimensione;i++)
{
accumulatore+=60;
setcolor(4); line(30+accumulatore,520,30+accumulatore,520-(arrayFrequenze[i]*5)); setcolor(6);
outtextxy(30+accumulatore,540,"Cl."); outtextxy(10,520-(arrayFrequenze[i]*5),"Fr.");
}
while(!ismouseclick(WM_LBUTTONDBLCLK));
closegraph();
}

questa funzione genera un istogramma con valori contenuti nell' array arrayFrequenze.
il problema è che non conosco l' esistenza di una funzione che nel grafico nell asse delle ordinate..accanto alla rispettiva frequenza..mi stampi il valore della frequenza....quindi sono costretto a passare alla funzione outtextxy() le coordinate e poi "Fr.", che sta per frequenza.

Infatti outtextxy(int,int,char)...restituisce 2 interi e un char.

io infatti cercavo una funzione che,
prendendo ad esempio la mia


outtextxy(10,520-(arrayFrequenze[i]*5),"Fr.");

dovrebbe fare questo un po questo


outtextxy(10,520-(arrayFrequenze[i]*5),arrayFrequenze[i]);

La domanda è: esiste una funzione che fa ciò, nella libreria graphics.h?

e se esiste qulcuno mi potrebbe spiegare come funziona?

grazie.

oregon
16-01-2012, 19:45
L'unica cosa che ho capito è che confondi un semplice file header come

graphics.h

con una libreria (che è ben altra cosa ...).

Inoltre, la outtextxy non "restituisce" affatto quei dati ma, semmai, li "accetta" come parametri (e il terzo è un puntatore a char, non un char).

Forse vuoi convertire il valore numerico di

arrayFrequenze[i]

in stringa per utilizzarla con la outtext (nell'ultimo parametro). Per farlo dovresti usare una funzione come

sprintf

e un buffer opportuno.

Ti consiglio uno studio "approfondito" con un libro del linguaggio, perché non puoi andare avanti con esempi, forum e tentativi ...

Per la sprintf leggi (anzi "studia")

http://www.cplusplus.com/reference/clibrary/cstdio/sprintf/

kaiservib
16-01-2012, 19:53
anche il tipo string non lo accetta, vuole solo char

oregon
17-01-2012, 00:45
Puntatore a char !

Un vettore di char, una stringa del C insomma ...

char stringa[100];

Non si può programmare in C senza conoscere le "stringhe" del C ovvero i vettori di char ...

Loading