Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Pascal - Libreria Graph con il free-pascal
Forum - Pascal - Libreria Graph con il free-pascal

Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 9:26
Martedì, 13/07/2010
finalmente sono riuscito a compilare il mio pac-man col freepascal....
tuttavia ho qualche problema con la grafica...
sembra che la risoluzione sia aumentata di molto e quindi diventa tutto sfasato...ad esempio il primo programma floodfill mi riempie tuto lo schermo di quel colore perchè sembra che non punti a una figura circoscritta....come posso fare? in teoria non dovrebbe funzionare lo stesso?

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 21:43
Martedì, 13/07/2010
La modalità grafica del free pascal consente di utilizzare tutti i punti dello schermo. Di conseguenza, la risoluzione cambia da computer a computer.
Per conoscere quanti pixel si hanno a disposizione, ci sono le funzioni GetMaxX e GetMaxY.

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 23:31
Martedì, 13/07/2010
si lo so che basta usare quelle funzione...e di fatti le ho usate....ma niente da fare....mi si colora lo schermo dei vari colori che ho assegnato a delle figure circoscritte...

PM Quote
Avatar
Poggi Marco (Member)
Guru


Messaggi: 969
Iscritto: 05/01/2010

Segnala al moderatore
Postato alle 23:59
Martedì, 13/07/2010
Molto strano!

Probabilmente le figure non sono definite da una linea perfettamente chiusa.

Ti funziona questo programma?

Codice sorgente - presumibilmente Delphi

  1. program ProvaDiRiempimento;
  2. uses graph;
  3.  
  4. function inizio_graf:boolean;
  5. var sg,ng,ec:smallint;
  6.     ch:boolean;
  7. begin
  8.  sg:=detect;
  9.  initgraph(sg,ng,' ');
  10.  ec:=graphresult;
  11.  if ec=grok then  ch:=true
  12.  else
  13.  begin
  14.   ch:=false;
  15.   write('Errore grafico: ',grapherrormsg(ec));
  16.   repeat until keypressed;
  17.   writeln(' ',readkey);
  18.  end;
  19.  inizio_graf:=ch;
  20. end;
  21.  
  22. begin
  23.  if inizio_graf then
  24.  begin
  25.   SetColor(green);
  26.   SetFillStyle(1, red);
  27.   circle(300, 300, 120);
  28.   FloodFill(300, 300, green);
  29.   readln;
  30.   closegraph;
  31.  end;
  32. end.


PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 15:51
Mercoledì, 14/07/2010
mi funziona... (usando anche la unit crt che forse avevi dimenticato...)





poi un'altra cosa....i comandi li accetta però dalla finestra dos...che deve essere in primo piano...se no sulla finestra dove c'è il cerchio non va....

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 23:53
Mercoledì, 14/07/2010
Testo quotato

Postato originariamente da Alex:
poi un'altra cosa....i comandi li accetta però dalla finestra dos...che deve essere in primo piano...se no sulla finestra dove c'è il cerchio non va....



"purtroppo" come ho fatto io dovrai passare alla wincrt e alla wingraph...io mi ci sono trovato meglio rispetto alla graph e alla crt.. http://math.ubbcluj.ro/~sberinde/wingraph/ ;)

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 11:09
Giovedì, 15/07/2010
ho provato anche con la wingraph già da tempo ma niente da fare....:d

PM Quote
Avatar
()
Newbie


Messaggi:
Iscritto:

Segnala al moderatore
Postato alle 21:41
Giovedì, 15/07/2010
La utilizzi insieme alla wincrt?

PM Quote
Avatar
Alex (Ex-Member)
Expert


Messaggi: 441
Iscritto: 15/08/2005

Segnala al moderatore
Postato alle 21:50
Giovedì, 15/07/2010
no adesdso provo...


credevo che la wincrt servisse per il discorso della finestra dos in background che non accetta comandi...

PM Quote