Oppure

Loading
12/04/11 15:54
luca95
Ho un problema... non so fare ad usare la grafica in pascal... non ho capito niente dalla guida perché mi da sempre errore quando eseguo il programma quindi qualcuno molto gentilmente potrebbe spiegarmi le basi come tracciare due linee e disegnare dei punti? perché volevo fare un programma modi piano cartesiano :)
aaa
12/04/11 16:47
Poggi Marco
Ciao!

Cosa non hai capito, esattamente?
Che IDE usi?
Posta un codice d' esempio.
aaa
13/04/11 12:01
luca95
il fatto è che non so proprio da dove partire... volevo tracciare due linee che facciano da piani cartesiani e poi inseriti tre punti calcolare la distanza e altre cose... la parte sui punti e tutto il resto l'ho già fatta mi manca solo la parte grafica... e cos'è l'IDE? e tra l'altro ho scoperto eseguendo un programma già fatto con tanto di grafica che non ho l'unità grafica tra le varie unit che si possono usare... dove la posso trovare?
Ultima modifica effettuata da luca95 13/04/11 15:04
aaa
13/04/11 17:44
Phi
L'IDE è l'ambiente di sviluppo che usi. Ad esempio Free Pascal IDE, Lazarus, Dev Pascal, Turbo Pascal, Delphi eccetera.
Se cerchi su internet "unit wingraph" trovi una unit per compilatori Free Pascal che permette di usare la grafica: math.ubbcluj.ro/~sberinde/wingraph/.


Trovi anche vari esempi.
aaa
24/04/11 21:11
Il_Bomba
Ciao,
ciò che ti serve è la libreria Graph.

posto un piccolo esempio di come puoi creare gli assi cartesiani:

program assi;
uses graph; (*Importo la Graph*)
var
scheda:integer;
modo:integer;
i:integer;
xx:integer;
yy:integer;
begin
scheda:=detect;(*Leggo il numero del modello della scheda grafica*)
initgraph(scheda,modo,'C:\FPC');(*Inizializzo la modalità grafica*)
line(20,220,420,220);(*Creo l'asse x, una linea orizzontale*)
line(220,20,220,420);(*creo l'asse y, una linea verticale*)
for i:=1 to 400 do begin (*eseguo le seguenti istruzioni per 400 volte*)
xx:=xx+1;
yy:=yy+1;
putpixel(xx,yy,red); (*Creo ogni volta un punto rosso di coordinate ogni volta incrementate di 1*) 
end;
readln;
closegraph;(*Chiudo la modalità grafica*)
end.


Nell'esempio qui sopra, ho dovuto prima di tutto leggere il numero identificativo della scheda grafica con la funzione "detect". Successivamente ho inizializzato la modalità grafica con la funzione "initgraph", alla quale ho passato le variabili "scheda"(contenente il numero identificativo della scheda grafica), la variabile "modo"(che può anche essere vuota) e il percorso nel quale ho installato il compilatore. Ho poi creato due linee: la prima che va dal punto di coordinate 20;220 al punto 420;220 (linea orizzontale, asse x), la seconda che va dal punto di coordinate 220;20 al punto 220;420 (linea verticale, asse y).
Per creare grafici devi utilizzare i cicli (for,while,repeat...) combinati alla funzione "putpixel" o "line". In questo caso, ogni volta, il ciclo "for" incrementa di 1 le variabili xx e yy e crea un punto rosso di coordinate xx;yy per 400 volte.
Il "readln" dopo di questo serve a non far chiudere subito le finestra con il grafico.
Infine, con "closegraph", ho chiuso il grafico.

Una volta capito questo, ti consiglio di dare un'occhiata ad un mio programma nel quale ho utilizzato la Graph per il tuo stesso motivo (creare grafici):pierotofy.it/pages/sorgenti/dettagli/18852-Linear_Motion_v2dot0/
Ultima modifica effettuata da Il_Bomba 24/04/11 21:14
aaa
28/04/11 16:02
Phi
Se il tuo problema è solo questo ti allego i file della unit graph.
Non so se siano esattamente quelli attuali, ho scaricato il sorgente al tempo della versione 2.2.2 di FreePascal e ho apportato delle piccole modifiche. Ad ogni modo con il tuo programma funziona.
Allego anche la unit wingraph.
aaa