Círculos

La tortuga puede hacer líneas curvas, moviéndose hacia adelante una pequeña distancia fija, girando un pequeño ángulo fijo y repitiendo el paso y el giro muchas veces. Se dibujará un círculo completo cuando la tortuga haya girado 360 grados.

para círculo
repite 360 [adelante 1 derecha 1]
fin

Por supuesto que no se trata de un círculo en el sentido geométrico estricto: el procedimiento círculo en realidad dibuja un polígono de 360 lados. Podemos hacer una pequeña concesión para que la tortuga dibuje el círculo más rápidamente.

para círculo
repite 36 [adelante 10 derecha 10]
fin

Este círculo es menos perfecto: se trata de un polígono de 36 lados. Se han cambiado las entradas, tanto de adelante como de derecha. Si cambiamos el procedimiento para añadir una entrada para adelante, tendremos un procedimiento que dibuja círculos de varios tamaños.

para círculo :paso
repite 36 [adelante :paso derecha 10]
fin

círculo 1

círculo 5

círculo 10

El tamaño del círculo cambia en proporción a su entrada. Cuanto más grande es el número de entrada, mayor es el círculo. Esto no es sorprendente porque dentro de cada círculo existe la misma cantidad de adelantes. La distancia de adelante determina la longitud de la circunsferencia.

Más útil todavía sería tener un procedimiento con una entrada que determine el radio. Para hacer esto se debe utilizar el siguiente razonamiento:

La operación 2pr, donde p es el valor de pi y r es el radio, calcula la circunsferencia de un círculo. La circunsferencia de nuestro círculo tiene 36 adelantes. Esto lleva al siguiente cálculo:

36 * :paso = 2 * pi * : radio

o

:paso = 2 * pi * :radio / 36 Esta expresión muestra la relación entre el valor de :paso y el radio del círculo.

En Logo se puede hacer que esta operación aritmética complicada sea una entrada de círculo, convirtiendo a círculo en un subprocedimiento:

to circrad :radio
círculo 2 * pi * :radio / 36
fin

circrad 30
circrad 60

Observe cómo las operaciones aritméticas pueden utilizarse como entradas de un procedimiento. Logo lee la entrada de círculo:

2 * pi * :radio / 36

de la siguiente forma:

Logo calcula 2 multiplicado por pi

Logo sabe que pi es una primitiva que devuelve 3.14159265359

El resultado de este cálculo se multiplica por el radio dividido por 36.