prolo5x
/* cerchio1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna Cerchio con DOT */
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\tCERCHIO\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, Scalax=8000,Scalay=6000, Seno=R+round(Scalax*sin(N*3.14/180)), Coseno=R+round(Scalay*cos(N*3.14/180)), dot(Seno,Coseno,Colore1), N2=N-1, disegna(Riga1,Colonna1,N2). disegna(_,_,_). fine:- sound(100,500), cursor(19,2).
/* cerchio2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna Cerchio 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\tCERCHIO\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=8000,Scalay=6000, 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).
/* coseno1.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna COSINUSOIDE con LINE e DOT */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), line(16000,1000,16000,32000,7), disegna(16000,1000,1440). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, dot(Riga1,Colonna1,Colore), Riga2=Riga1+100*cos(N*3.14/180), Colonna2=Colonna1+20, N2=N-1, disegna(Riga2,Colonna2,N2).
/* coseno2.pro */ /* Questo programma richiede una scheda EGA o CGA */ /* Non supportata la scheda Hercules! */ /* disegna COSINUSOIDE piena con LINE */
domains intero= integer Predicates disegna(Intero,Intero,Intero) Goal graphics(1,7,1),attribute(1), write("\t\tCosinusoide\n\n"), line(16000,1000,16000,32000,7), line(1000,1000,30000,1000,7), disegna(16000,1000,1440). Clauses disegna(Riga1,Colonna1,N):- N>0,!, Colore=2, line(16000,Colonna1,Riga1,Colonna1,Colore), Riga2=Riga1+100*cos(N*3.14/180), Colonna2=Colonna1+20, N2=N-1, disegna(Riga2,Colonna2,N2). disegna(_,_,_).
tipo frattale
/* curve.pro modifica di originale D_curve */
check_determ /* Questo un programma di grafica, che richiede una scheda colore CGA o EGA. */ database radice2(real)
predicates drago(real, integer, integer) int_real(integer, real)
goal R = sqrt(2.0), assertz(radice2(R)), graphics(1,2,112), penpos(4500, 18000, 180), drago(900.0, 0, -1). /* modificare originale 15000.0 con numero minore per rendere piu' ridotto e veloce disegno */ clauses drago(L, A, Segno) :- /* modificare originale 150.0 con altro numero come 15.0 */ L > 20.0, radice2(R),!, L1 = L / R, A1 = A + 45 * Segno, A2 = A - 45 * Segno, !,drago(L1, A1, 1),!,drago(L1, A2, -1). drago(L, A, _) :- penpos(X, Y, _), penpos(X, Y, A), random(CR), C=CR*7+1, int_real(Co,C), pencolor(Co), int_real(Len, L), forward(Len).
int_real(I, R) :- I=R.