prolo5y
/* ellisse1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna ellisse verticale con Line */
domains intero= integer
Predicates disegna(Intero,Intero,Intero) assi fine Goal graphics(1,7,1),attribute(2), /* prova 1,2,3,4,5 per primo parametro */
write("\t\tEllisse verticale\n\n"), assi, disegna(16000,1000,360), fine. Clauses assi:- RH1=16000,CH1=1000,RH2=16000,CH2=32000, RV1=1000,CV1=16000,RV2=30000,CV2=16000, line(RH1,CH1,RH2,CH2,7), line(RV1,CV1,RV2,CV2,7).
disegna(Riga1,Colonna1,N):- N>0,!, Colore1=2, R=16000, C=16000, Scalax=9000,Scalay=5000, Seno=R+round(Scalax*sin(N*3.14/180)), Coseno=R+round(Scalay*cos(N*3.14/180)), line(R,C,Seno,Coseno,Colore1), N2=N-1, disegna(Riga1,Colonna1,N2). disegna(_,_,_). fine:- sound(100,500), cursor(19,2).
/* ellisse2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna ellisse orizzontale con Line */
domains intero= integer
Predicates disegna(Intero,Intero,Intero) assi fine Goal graphics(1,7,1),attribute(2), /* prova 1,2,3,4,5 per primo parametro */
write("\tEllisse orizzontale\n\n"), assi, disegna(16000,1000,360), fine. Clauses assi:- RH1=16000,CH1=1000,RH2=16000,CH2=32000, RV1=1000,CV1=16000,RV2=30000,CV2=16000, line(RH1,CH1,RH2,CH2,7), line(RV1,CV1,RV2,CV2,7).
disegna(Riga1,Colonna1,N):- N>0,!, Colore1=2, R=16000, C=16000, Scalax=5000,Scalay=9000, Seno=R+round(Scalax*sin(N*3.14/180)), Coseno=R+round(Scalay*cos(N*3.14/180)), line(R,C,Seno,Coseno,Colore1), N2=N-1, disegna(Riga1,Colonna1,N2). disegna(_,_,_). fine:- sound(100,500), cursor(19,2).
/* grafi1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna linee varie */ /* formattazione testo con t\t....\n\n */ domains intero = integer Predicates crealinea cornice(Intero,Intero,Intero) /* posizione inizio linee,numero righe */ Goal graphics(1,7,1),attribute(1),crealinea.
Clauses crealinea :- cursor(0,0), write("\t\tPROVA RIGHE\n\n"), cornice(1000,1000,75).
cornice(Riga1,Colo1,N) :- N>0,!, /* esegue per N>n.righe*/ Colon2=Colo1+400, N2=N-1, line(Riga1,Colo1,30000,30000,N), Riga2=32000-Riga1, Colo2=32000-Colo1, line(Riga2,Colo1,Riga1,Colo2,N), cornice(Riga1,Colon2,N2). cornice(_,_,0).
/* grafi2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna linee varie */ /* formattazione testo con t\t....\n\n */ domains intero = integer Predicates crealinea cornice(Intero,Intero,Intero) /* posizione inizio linee,numero righe */ Goal graphics(1,7,1),attribute(1),crealinea.
Clauses crealinea :- cursor(0,0), write("\t\t\tPROVA RIGHE\n\n\n"), cornice(1000,1000,75). /* t ...tabulazione....n interlinea...*/
cornice(Riga1,Colo1,N) :- N>0,!, /* esegue per N>n.righe*/ Colon2=Colo1+400, N2=N-1, line(Riga1,Colo1,30000,30000,N), Riga2=32000-Riga1, Colo2=32000-Colo1, line(Riga2,Colo1,Riga1,Colo2,N), cornice(Riga1,Colon2,N2). cornice(_,_,0).
/* grafi3.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna linee parallele */ /* formattazione testo con t\t....\n\n */
domains intero = integer X= integer Y = integer Predicates crealinea cornice(Intero,Intero,Intero) /* posizione inizio linee,numero righe */ Goal graphics(1,7,1),attribute(3),crealinea.
Clauses crealinea :- cursor(0,0), write("\n\n\t\t\tPROVA RIGHE\n\n\n"), cornice(1000,1000,50). /* t ...tabulazione....n interlinea...*/
cornice(Riga1,Colo1,N) :- N>0,!, /* esegue per N>n.righe*/ X=1000,Y=20000, line(Riga1,X,Riga1,Y,N), line(X,Colo1,Y,Colo1,N), Riga2=Riga1+400, Colo2=Colo1+400, N2=N-1, /* decremento contatore*/ /* passo 1 */ cornice(Riga2,Colo2,N2). cornice(_,_,0):-sound(100,500), cursor(18,2).
/* grafi4.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* attivazione grafica con TURTLE */
domains intero= integer angolo= integer Predicates disegna(Intero,Intero,Intero,intero) /* inizio linee,numero disegni,angolo */ Goal graphics(1,7,1),attribute(1), disegna(100,100,1000,10).
Clauses disegna(Riga1,Colonna1,Contatore,Angolo) :- Contatore>0,!, pendown, penpos(Riga1,Colonna1,Angolo), pencolor(5), right(Angolo), forward(500), Colonna2=Colonna1+20, Riga2=Riga1+20, Angolo2=Angolo+20, Contatore2=Contatore-1, disegna(Riga2,Colonna2,Contatore2,Angolo2). Disegna(_,_,0,0) :-sound(100,500),cursor(18,2).