Turtle en python

 

Encontré el modulo turtle en python y comencé a experimentar con una pequeña rutina.

turtle-1

for i in range(50) indica que se va a repetir el ciclo 50 veces.

bob.rt(75) nos indica que el objeto bob va a girar a la derecha un ángulo de 75°.

bob.fd(100) indica que el objeto bob va avanzar 100 pixeles.

Comencé a experimentar con el valor del ángulo de giro y se observaron algunas cosas interesantes.

Dependiendo del valor de la relación

turtle-2

Caso I. Angulo entre 0 y 180°. La Relación es un Numero Entero. Polígono.

Si la relación es un número entero, se genera un polígono con un´número de lados igual a la relación 360/ángulo y con giro hacia la derecha, tal como es indicado en la instrucción.

Angulo N° de lados del polígono 360/ang Nombre del polígono
10 36
20 18
30 12 Dodecágono
40 9 Nonágono
45 8 Octágono
60 6 Hexágono
72 5 Pentágono
90 4 Cuadrado
120 3 Triangulo
180 2 Segmento bi-direccional
360 1 Segmento unidireccional

Para un ángulo de 90, la relación es 4, por lo que el polígono generado es un cuadrado con giro a la derecha.

turtle-3

Para un ángulo de 72, la relación es 5, y es el polígono generado es un pentágono, con giro a la derecha.

turtle-4

 

Caso II. El Angulo es Menor de 90° y La Relación es un Numero Decimal. Corona.

.

Si el ángulo es menor de 90°, pero el resultado no es un número entero, sino un número decimal, la figura generada es una especie de corona, y el numero de puntas de la corona sigue la siguiente relación:

turtle-5

donde n es el número de decimales para lograr una división exacta de la relación 360/angulo.

por ejemplo si el ángulo es de 50°. 360/50 = 7.2, entonces n es igual a 1 porque es el numero de decimales para lograr división exacta.

y el numero de puntas es:

turtle-6

para un ángulo de 50° se genera una corona de 36 puntas como la que se muestra en la siguiente figura.

corona50d

 

Para un ángulo de 75°. 360/75 = 4.8 y n=1

El número de puntas de la corona es

turtle-7

Para un ángulo de 75° se genera una corona de 24 puntas como la mostrada.

corona75d

 

Caso III. El Angulo es Mayor de 90 y Menor de 180° y La Relación es un Numero Decimal. Coronas y Estrella.

Caso III-a Angulo mayor de 90 y menor de 120. Coronas.

En el intervalo de ángulos entre 90 (cuadrado) y 120 (triangulo) se forman figuras que continúan teniendo semejanza a una corona, aunque la longitud de las puntas va creciendo hasta hacerse igual al del radio de la figura cuasi circular que forma el núcleo de la corona.

Aun puede utilizarse la relación utilizada en el caso II

Para un ángulo de 100°,

turtle-8

Para un ángulo de 100° se obtiene una corona de 18 puntas.

corona100d

A medida que el ángulo se va acercando mas a 120°, la longitud desde las puntas de la corona a el circulo interno se va incrementando. y el numero de puntas va creciendo.

para un ángulo de 115° y 100 iteraciones se obtiene la figura que se muestra.

corona115d

 

Caso III-b Angulo mayor de 120 y menor de 180. Estrellas.

En el intervalo entre 120°(Triangulo) y 180° (Segmento bi-direccional) se producen unas formas geométricas en forma de estrellas.

El número de puntas de la estrella que se forma, en algunos casos sigue la relación:

turtle-9

Sin embargo en otros casos la relación no se cumple. En la siguiente figura se muestra una tabla donde se resumen los valores de los ángulos para los cuales se cumple la relación en resaltado amarillo. Los valores para los cuales no se cumplen están resaltados en azul.

turtle-10

Para los valores en azul se cumple mejor la relación

turtle-11

 

Por ejemplo para un ángulo de 135° la relación:

turtle-12

Y corresponde con el grafico de una estrella de 8 puntas.

star135-8

Pero para un ángulo de 140°

La relación 360/(180-ang)= 9

pero el número de puntas de una estrella de 140° es 18.

star140-18

Una mejor predicción se obtiene con la relación:

360/(ang-120) = 18

En un próximo articulo revisaremos que pasa para los ángulos mayores de 180°.

Anuncios

2 comentarios en “Turtle en python”

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s