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.