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).