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

 

ritorna