esercizi di grafica con turbo pascal 1.1 su mac
note1........su marino10.......testiTURBO ============================================================== note integrative a sommario istruzioni per TURBO PASCAL 1.1 -------------------------------------------------------------- testo4...........gestione FONT
assegnare stile caratteri in pagina grafica: textface([bold]);.....................indicare stile codificato,come BOLD,italic.. ---------------------------------------------------------------- var:stile1,stile2:style;...........definire variabili tipo style stile1:=([bold]);stile2:=([italic]); textface(stile1); textface(stile2); ---------------------------------------------------------------- var stile:array[0..2] of style; stile[0]:=[bold];stile[1]:=[italic];stile:=([underline]); textface(stile[n]);
=============================================================== testo9.........................grafica3D
pitch(Xangolo:fixed); yaw(Yangolo:fixed); skew(Zangolo:fixed); roll(Zangolo:fixed);
translate(dx,dy,dz:fixed); ==============================================================
testo1....su marino10 ....testi.TURBO =============================================================== disegnare con attivato TURTLE: =============================================================== 1....richiamare librerie (secondo la necessita'): USES memtypes,quickdraw,turtle; USES memtypes,quickdraw,osintf,toolintf,sane,turtle;
2....procedure e funzioni attivabili:cfr.UNIT turtle in TURTLE FOLDER:
area grafica:coordinate centro 0,0 ascissa negativa a sinistra,positiva a destra :massimo +250..-250 ordinata negativa in basso,positiva in alto:massimo +150.........-150
PROCEDURE: clear;.............cancella video e porta penna al centro 0,0 home;.............porta penna al centro 0,0 wrap;..............permette uscita da area con rientro penna nowrap;........non permette uscita da area grafica:tronca linea penup;...........alza la penna,non disegna=hidepen; pendown;.....abbassa la penna,disegna =showpen;
x,y.............................................variabili tipo INTEGER turtledelay(x);...............assegna pausa in millesimi secondo setheading(x);..............orienta secondo angolo assegnato setposition(x,y);..........posiziona penna relativamente al centro 0,0 turnright(x);....................ruota a destra per angolo assegnato turnleft(x);......................ruota a sinistra per angolo assegnato forwd(x);...........................sposta penna avanti per x spazi back(x);.............................sposta penna indietro per x spazi
FUNZIONI: heading;..............................ritorna orientazione corrente in gradi writeln(Heading);......stampa orientazione corrente in gradi Xcor;.....................................ritorna coordinata relativa al centro writeln(Xcor);...............stampa coordinata relativa al centro Ycor;.....................................ritorna coordinata relativa al centro writeln(Ycor);..............stampa coordinata relativa al centro ------------------------------------------------------------- NOTA:per altre funzioni normali e grafiche cfr.grafica normale e 3D -------------------------------------------------------------
testo2......su marino10......testiTURBO =============================================================== disegnare con grafica normale e grafica 3D =============================================================== 1.......richiamare librerie(secondo necessita') con : USES memtypes,quickdraw,osintf,toolintf; ---------------------------------------------------------- USES memtypes,quickdraw,osintf,toolintf,fixmath,graf3d; USES memtypes,quickdraw,osintf,toolintf; USES memtypes,quickdraw,osintf,toolintf,sane,turtle; ---------------------------------------------------------- (osintf.............necessario per Eventrecord ...se richiesto) (toolintf.........necessario per Initfonts...........se richiesto) (memtypes.....necessario per Quichdraw ) (quickdraw....necessario per comandi grafici) (turtle.............necessario se attivata grafica anche con Turtle) (fixmath.........necessario con Graf3D e altri casi con Fixed) (graf3D...........necessario se attivata grafica tridimensionale) -------------------------------------------------------- 2........TIPI variabili da usare per inizializzazione grafica: (nomi variabili a scelta...) portagrafica................:Grafport; sagoma...........................:Eventrecord; portagrafica3D...........:Port3D;
3........TIPI variabili da usare per programma
numeri.............................INTEGER,REAL,DOUBLE,FIXED.. stringhe..........................STRING caratteri.........................CHAR figure ..............................RECT tratteggi.........................PATTERN regioni.............................RGNHANDLE poligoni...........................POLYHANDLE centro..............................POINT3D booleano.........................BOOLEAN
4........AREA GRAFICA....normale:1,1 alto sinistra....500,400 basso destra (valori approssimati...)
testo3.....su marino10....testiTURBO ============================================================== 5.....INIZIALIZZAZIONE PAGINA GRAFICA: (inserire istruzioni alla fine,prima del blocco principale ) (alcune sono facoltative:se non inserite vale modo standard)
InitGraf(@theport);...............inizializza pagina grafica InitGraf3D(@theport3D)... inizializza pagina grafica 3D
OpenPort(@portagrafica);..se manca,si blocca computer.. Open3Dport(@portagrafica3D);se manca,si blocca computer..
InitFonts;......................................gestione FONTS (facoltativa) Initcursor;...................................gestione bandierina (facoltativa) Hidecursor;..................................gestione bandierina (facoltativa)
Penpat(nomecolore);.............gestione colore penna (facoltativa) Backpat(nome colore);.........gestione colore area (facoltativa)
6........ISTRUZIONI da inserire facoltativamente nel blocco principale Eraserect(portagrafica.portrect);...cancella listato con RUN Framerect(portagrafica.portrect);gestione finestra(facoltativa)
(var inretto:rect) inretto:=portagrafica.portrect;......................cfr.3D insetrect(inretto,intero,intero);...................cfr.3D eraserect(inretto);..............................................cfr.3D lookat(numero,numero,numero,numero);....cfr.3D
(var sagoma:eventrecord) REPEAT...UNTIL getosevent(mdownmask+keydownmask,sagoma); permette pausa in attesa che si prema un tasto:deve essere presente OSINTF.
WHILE NOT oseventavail(mdownmask+keydownmask,sagoma) DO;
testo4..... su marino10 ...testiTURBO ====================================================== 1..... GESTIONE FONT...DIMENSIONI CARATTERI...STILE CARATTERI (deve essere attivato TOOLINTF)
textface([nome]);...........assegna stile caratteri pagina grafica (nome:bold,italic,underline,outline,shadow,[] normale)
textsize(intero);.........assegna dimensioni caratteri (format:9..10..12..14..18..24..point)
textfont(intero);............assegna font caratteri (font:0 chicago...1 courier...2 geneva..3 helvetica...4 monaco) (5 palatino...6 sonata...7 symbol....8 tymes)
2........GESTIONE COLORE PENNA
penpat(nome);.....................assegna colore a penna backpat(nome);...................assegna colore a sfondo (nome:black,white,gray,dkgray)
3........GESTIONE SCRITTURA TESTO
moveto(colonna,riga);..posiziona su colonna,riga indicate move(intero,intero);......sposta su posiziona indicata drawstring('testo');.......stampa testo indicato drawchar('A');.....................stampa carattere indicato
4.......GESTIONE SPESSORE PENNA
pensize(intero,intero);.assegna spessore alla penna (verticale,orizzontale:interi 1..125) pennormal;.............................dimensione e colore standard
5.......GESTIONE CREAZIONE TRATTEGGI
var sfondo:pattern; stuffhex(@sfondo,'123456789123456789'); (assegna tipo tratteggio,18 numeri interi codificanti)
testo5..... su marino10 ...testiTURBO ==============================================================
6.......ASSEGNAZIONE PARAMETRI A FIGURA GEOMETRICA var vertici:rect; x1,y1,x2,y2:integer; (si assegnano a variabile VERTICI,le coordinate degli angoli) (del quadrilatero che servira' per istruzioni successive:) (colonna,riga angolo alto sinistra..angolo basso destra)
setrect(vertici,x1,y1,x2,y2);
7........DISEGNARE LINEE SEMPLICI (assegnare colore,spessore con Penpat,Pensize) (posizionare con Moveto,Move)
line(dx,dy);................................disegna segmento spostando la penna verso destra o sinistra,alto o basso: di dx,dy spazi iniziando da posizione corrente:destra,basso:valori positivi sinistra,alto:valori negativi.
lineto(colonna,riga);........disegna segmento da posizione corrente a posizione indicata. 8........GESTIONE POSIZIONAMENTO PENNA
moveto(colonna,riga);......posiziona penna su punto indicato move(dx,dy); .....................posiziona penna spostandola da punto corrente a nuovo punto(spostando dx,dy spazi a destra,sinistra,alto,basso.