mac5

gestione grafica varia


 

 /* seno3 */
/* traccia cosinusoide  */
esegue:-
grafix,azione(180,100).
azione(N,Y):-
N>0,N1 is N-2,Rad is N1*pi/60,
Coseno is int(50*cos(Rad)),
Y1 is Y-Coseno,
add_pic(lines([(Y,N),(Y1,N)])),
azione(N1,Y).

 

\/* seno5 */
/* traccia sinusoide a punti con assi cartesiani colorati */
esegue:-
grafix,assi,azione(1,100).
assi:-
add_pic(pencol(red,lines([(100,1),(100,300)]))),
add_pic(pencol(blue,lines([(1,1),(200,1)]))).
azione(N,Y):-
N<180,N1 is N+2,Rad is N1*pi/60,
Seno is int(50*sin(Rad)),
Y1 is Y-Seno,
add_pic(lines([(Y1,N),(Y1,N)])),
azione(N1,Y).

 


 

/* seno7 */
/* traccia sinusoide a punti con assi cartesiani colorati */
/* posiziona origine assi con X e valori negativi */
/* scrive titolo disegno */
esegue:-
grafix,assi,azione(1,100).
assi:-
add_pic(textline('Geneva',12,1,-50,-50,'sinusoide')),
add_pic(pencol(red,lines([(100,-50),(100,300)]))),
add_pic(pencol(blue,lines([(1,-50),(200,-50)]))).
azione(N,Y):-
N<360,N1 is N+5,Rad is N1*pi/180,
Seno is int(50*sin(Rad)),
Y1 is Y-Seno,
X is -50+N,
add_pic(double(lines([(Y1,X),(Y1,X)]))),
azione(N1,Y).

 


 

 

/* grafo9 */
/* attivazione di vari tipi di PENNA */
esegue:-
install_menu(scelta,[pensizex,thinx,thickx,nilpenx,doublex,
solidpenx,hashpenx,fine]),grafix.
scelta(pensizex):-dpensize.
scelta(thinx):-dthin.
scelta(thickx):-dthick.
scelta(nilpenx):-dnilpen.
scelta(doublex):-ddouble.
scelta(solidpenx):-dsolidpen.
scelta(hashpenx):-dhashpen.
scelta(fine):-uscita.
cancella:-
add_pic(fillmode(erase,fillpattern(solid,fillbg(white,fillbox(-10,1,300,400))))).
dpensize:-
cancella,
add_pic(pensize(20,20,box(50,50,200,200))).
dthin:-
cancella,
add_pic(thin(box(50,50,200,200))).
dthick:-
cancella,
add_pic(thick(box(50,50,200,200))).
dnilpen:-
cancella,
add_pic(nilpen(box(50,50,200,200))).
ddouble:-
cancella,
add_pic(double(box(50,50,200,200))).
dsolidpen:-
cancella,
add_pic(solidpen(box(50,50,200,200))).
dhashpen:-
cancella,
add_pic(hashpen(box(50,50,200,200))).
uscita:-
message('premi enter per finire'),wfront(grafo2).

 


 /* gra9 su marino86 */
/* penmode(modalita)  penmode(modalita)  per penna */
ese:-
grafix,
add_pic(pencol(blue,fillbox(10,10,300,400))),
add_pic(pensize(10,10,penmode(or,box(50,50,50,50)))),
add_pic(pensize(10,10,penmode(xor,box(80,150,50,50)))),
add_pic(pensize(10,10,penmode(erase,box(100,250,50,50)))),
add_pic(pensize(10,10,penmode(nor,box(130,350,50,50)))),
add_pic(penzize(10,10,penmode(nxor,box(200,50,50,50)))),
add_pic(pensize(10,10,penmode(nerase,box(200,150,50,50)))),
add_pic(pensize(10,10,penmode(paint,box(200,250,50,50)))),
add_pic(pensize(10,10,penmode(npaint,box(200,350,50,50)))).
 
/* grafo9*/
ese:-
add_pic(pensize(10,10,penpattern(speckled,box(10,10,50,100)))),
add_pic(pensize(20,20,penpattern(diamonds,box(100,10,150,100)))).

 


 

/* grafo2 */
esegue:-
install_menu(scelta,[linea,rettangolo,smussato,ovale,
cerchio,arco,poligono,vettore,fine]),grafix.
scelta(linea):-dlinea.
scelta(rettangolo):-drettangolo.
scelta(smussato):-dsmussato.
scelta(ovale):-dovale.
scelta(cerchio):-dcerchio.
scelta(arco):-darco.
scelta(poligono):-dpoligono.
scelta(vettore):-dvettore.
scelta(fine):-uscita.
dlinea:-
add_pic(lines([(50,50),(50,150),(150,200)])).
drettangolo:-
add_pic(box(60,60,120,200)).
dsmussato:-
add_pic(box(80,80,120,200,30,30)).
dovale:-
add_pic(oval(100,100,50,100)),
add_pic(oval(100,150,100,60)).
dcerchio:-
add_pic(circle(160,160,70)).
darco:-
add_pic(arc(120,120,100,100,0,180)).
dpoligono:-
add_pic(poly([(60,60),(60,150),(150,150),(60,60)])).
dvettore:-
add_pic(pointer((50,50),(200,150),both)).
uscita:-
message('premi enter per finire'),wfront(grafo2).

/* gra2 su marino86 */
/* per MOD scrivere due interi:altezza,larghezza */
/* fillbox(Y,X,altezza,larghezza)   quadrilatero pieno o vuoto  BOX */
/* filloval(Y,X,altezza,larghezza)  ovale pieno o vuoto OVAL */
/* fillbox(Y,X,altezza,larghezza,smussaturaY,smussaturaX) smussato*/
/* arc(Y,X,altezza,larghezza,angoloinizio,angolofine) traccia ARCO */
ese:-
grafix,
add_pic(pencol(red,box(60,80,120,120))),
add_pic(pencol(red,fillbox(0,0,60,60))),
add_pic(pencol(blue,oval(100,100,60,120))),
add_pic(pencol(blue,filloval(100,100,120,60))),
add_pic(pencol(green,box(120,120,200,200,20,20))),
add_pic(pencol(green,fillbox(120,120,140,140,30,40))),
add_pic(pencol(black,arc(30,30,90,220,0,270))),
add_pic(pencol(green,arc(60,60,100,200,90,270))).
/* grafo2 */
ese:-
/* attivare EVAL-QUERY....ese */
/* fillmode(modo,pittura) */
/* modo:paint or xor erase npaint nor nxor nerase */
/* pittura:GDL descrizione pittura cfr.elenco */
/* n.30 pag.29 alpha,beta,brick,crosses,solid....*/
add_pic(fillmode(or,diamonds(fillbox(10,10,80,100)))),
add_pic(fillmode(or,waves(fillbox(10,110,80,100)))),
add_pic(fillmode(or,brick(fillbox(10,210,80,100)))).

 


 

 
 /* grafo7 */
/* figure con disegno tratteggiato con fillpattern vario  */
/* e penpattern e pensize vario */
/* colore contorno penfg  penbg */
esegue:-
install_menu(scelta,[rettangolo,smussato,ovale,
cerchio,arco,poligono,fine]),grafix.
scelta(rettangolo):-drettangolo.
scelta(smussato):-dsmussato.
scelta(ovale):-dovale.
scelta(cerchio):-dcerchio.
scelta(arco):-darco.
scelta(poligono):-dpoligono.
scelta(vettore):-dvettore.
scelta(fine):-uscita.
cancella:-
add_pic(fillmode(erase,fillpattern(solid,fillbg(white,fillbox(-10,1,300,400))))).
drettangolo:-
cancella,
add_pic(penpattern(horiz,pensize(20,20,
penfg(red,penbg(green,
fillpattern(diamonds,fillbox(60,60,120,200))))))).
dsmussato:-
cancella,
add_pic(penpattern(horiz,pensize(20,20,penfg(blue,penbg(red,
fillpattern(boxes,fillbox(80,80,120,200,30,30))))))).
dovale:-
cancella,
add_pic(penpattern(horiz,pensize(20,20,penfg(red,penbg(yellow,
fillpattern(diag,filloval(100,100,50,100))))))).
dcerchio:-
cancella,
add_pic(penpattern(horiz,pensize(10,20,penfg(red,penbg(cyan,
fillpattern(crosses,fillcircle(160,160,70))))))).
darco:-
cancella,
add_pic(penpattern(horiz,pensize(20,10,penfg(red,penbg(green,
fillpattern(hash,wedge(120,120,100,100,0,180))))))).
dpoligono:-
cancella,
add_pic(penpattern(horiz,pensize(30,30,penfg(magenta,penbg(green,
fillpattern(rdiag,fillpoly([(60,60),(60,150),(150,150),(60,60)]))))))).
uscita:-
message('premi enter per finire'),wfront(grafo2).

 


/* gra7 su marino86 */
/* penmode(modalita) per penna */
ese:-
grafix,
add_pic(box(10,10,300,400)),
add_pic(pensize(10,10,penmode(or,box(50,50,50,50)))),
add_pic(pensize(10,10,penmode(xor,box(80,150,50,50)))),
add_pic(pensize(10,10,penmode(erase,box(100,250,50,50)))),
add_pic(pensize(10,10,penmode(nor,box(130,350,50,50)))),
add_pic(penzize(10,10,penmode(nxor,box(200,50,50,50)))),
add_pic(pensize(10,10,penmode(nerase,box(200,150,50,50)))),
add_pic(pensize(10,10,penmode(paint,box(200,250,50,50)))),
add_pic(pensize(10,10,penmode(npaint,box(200,350,50,50)))).
/* grafo7*/
ese:-
add_pic(thick(penpattern(brick,diamonds(fillcircle(0,0,70))))),
add_pic(fillmode(erase,stripesthick(fillcircle(0,80,70)))).

altri listati per grafici di funzioni trigonometriche

 

 /* seno1 */
/* traccia sinusoide  */
esegue:-
grafix,azione(360,100).
azione(N,Y):-
N>0,N1 is N-5,Rad is N1*pi/180,
Seno is int(100*sin(Rad)),
Y1 is Y-Seno,
add_pic(lines([(Y,N),(Y1,N)])),
azione(N1,Y).


 /* seno2 */
/* traccia sinusoide  */
esegue:-
grafix,azione(180,100).
azione(N,Y):-
N>0,N1 is N-1,Rad is N1*pi/60,
Seno is int(50*sin(Rad)),
Y1 is Y-Seno,
add_pic(lines([(Y,N),(Y1,N)])),
azione(N1,Y).


/* seno4 */
/* traccia sinusoide a punti con assi cartesiani */
esegue:-
grafix,assi,azione(1,100).
assi:-
add_pic(lines([(100,1),(100,300)])),
add_pic(lines([(1,1),(200,1)])).
azione(N,Y):-
N<180,N1 is N+2,Rad is N1*pi/60,
Seno is int(50*sin(Rad)),
Y1 is Y-Seno,
add_pic(lines([(Y1,N),(Y1,N)])),
azione(N1,Y).

 /* seno6 */
/* traccia sinusoide a punti con assi cartesiani colorati */
/* posiziona origine assi con X e valori negativi */
esegue:-
grafix,assi,azione(1,100).
assi:-
add_pic(pencol(red,lines([(100,-50),(100,300)]))),
add_pic(pencol(blue,lines([(1,-50),(200,-50)]))).
azione(N,Y):-
N<360,N1 is N+5,Rad is N1*pi/180,
Seno is int(50*sin(Rad)),
Y1 is Y-Seno,
X is -50+N,
add_pic(double(lines([(Y1,X),(Y1,X)]))),
azione(N1,Y).