/* trigono1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non è supportata la scheda Hercules! */ /* disegna COSINUSOIDE e sinusoide con DOT */ domains intero= integer Predicates disegna(Intero,Intero,Intero) assi Goal graphics(1,7,1),attribute(1), write("\tCosinusoide-Sinusoide\n\n"), assi, disegna(16000,1000,1440). Clauses assi:- RH1=16000,CH1=1000,RH2=16000,CH2=32000, RV1=1000,CV1=1000,RV2=30000,CV2=1000, line(RH1,CH1,RH2,CH2,7), line(RV1,CV1,RV2,CV2,7). disegna(Riga1,Colonna1,N):- N>0,!, Colore1=2, Colore2=7, R=16000, Scala=5000, Riga2=R+round(Scala*sin(N*3.14/180)), Riga3=R+round(Scala*cos(N*3.14/180)), dot(Riga3,Colonna1,Colore1), dot(Riga2,Colonna1,Colore2), Colonna2=Colonna1+20, N2=N-1, disegna(Riga1,Colonna2,N2). disegna(_,_,_).
/* 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).