LOGO/Coordinate: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Nuova pagina: {{LOGO}} ==Coordinate== In logo è preferita la grafica della tartaruga che ha un riferimento intrinseco, riferito alla posizione e alla direzione di chi traccia il disegno, ma è pre...
 
Riga 10:
==Triangolo rettangolo==
 
Un primo problema che chiama l'uso di ''pos'' e ''setpos'' è il disegno di un triangolo rettangolo dati i cateti. È possibile risolverlo anche usando ''arctan'', ma oltre a dover usare una funzione goniometrica, dà alcuni errori dovuti all'approssimazione e non funziona in certi casi particolari.
 
Per disegnare un triangolo rettangolo, possiamo disegnare un cateto, memorizzare la posizione raggiunta, disegnare l'altro cateto, spostare il puntatore grafico nella posizione memorizzata precedentemente e rimettere la tartaruga dove era stata presa:
 
to trirett :c1 :c2
local "v1
forward :c1
make "v1 pos
back :c1
right 90
forward :c2
setpos :v1
left 90
back :c1
end
 
Vediamola istruzione per istruzione:
 
Dato che la procedura deve memorizzare una posizione, si crea una variabile locale:
local "v1
 
Disegna il primo cateto:
forward :c1
Associa alla parola "v1 la posizione attualmente occupata dalla tartaruga:
make "v1 pos
 
Torna indietro e disegna l'altro cateto:
back :c1
right 90
forward :c2
 
Sposta il puntatore grafico nella posizione associata alla parola "v1:
setpos :v1
 
Rimette la tartaruga dove si trovava all'inizio della procedura:
left 90
back :c1
 
Da notare che:
* Questi ultimi due comandi non possono essere sostituiti dal comando ''home'', perché non è detto che tutti i triangoli rettangoli che si vogliono disegnare inizino (e quindi debbano terminare) nel centro dello schermo.
* In questa procedura viene usato un riferimento estrinseco (il piano cartesiano), ma non mi devo preoccupare di come è effettivamente realizzato, potrebbe anche usare coordinate polari, per capire la procedura basta sapere che la tartaruga può memorizzare una posizione e può raggiungere una certa posizione.
 
==Grafico di funzioni==