Curva del dragón usando Python (2 / 3 paso)

Paso 2: El programa

En este paso voy a explicar cada parte del programa. Hay una versión completamente comentada en la parte inferior.

Preparación-

Para empezar debemos tener un par de cosas:

Esto importa el módulo de la tortuga, que vamos a usar para mostrar las derechas e izquierdas que generamos. Se utiliza para dibujar dando órdenes a la 'tortuga', que se mueve sobre la pantalla, dibujando una línea. Este módulo es útil para nuestros propósitos pues fácilmente puede decir la tortuga a girar a la derecha o la izquierda o seguir adelante sin tener que calcular dónde colocar las líneas.

Aquí creamos las variables r y l y asignarles sus caracteres adecuados. Este paso no es realmente necesario ya que solo puede escribir en el programa como una cadena, pero yo creo que los flujos de programa más fácilmente usando variables en lugar de cadenas.

Ambos viejos, establece que es la última iteración genera y nuevo, la iteración se genera un derecho. Viejo se ajusta a derecho ya que es la primera iteración que todos ellos se basan fuera de. Nuevo también se encuentra a derecha en caso de que la primera iteración solicitó. En ese caso, no generará nada e inmediatamente se imprima de nuevo.

Este bloque de código ocurre en todas las opciones de los usuarios, la iteración que genera (iteración), la longitud de cada segmento que hace que la curva del dragón (longitud), el color para dibujar la curva en (colorpluma) y el color de fondo de la ventana de gráficos de tortuga (bgcolor). La longitud del segmento puede ser útil al generar mayor iteraciones como el la curva se puede extender fuera de la pantalla con segmentos demasiado largo. Las dos últimas opciones, los colores, son divertidos para jugar con para hacer diseños bonitos.

Una cierta iteración se genera por cada iteración de construcción de la primera R, a través de algunos pasos para conseguir el siguiente cada vez. Esta variable contiene el ciclo actual, por lo que primero se asigna el valor de 1.

Generación-

Ahora podemos comenzar a generar el patrón de R y L para la iteración deseada:

Seguiremos generar la siguiente iteración hasta que la variable de ciclo nos dice que hemos llegado a iteración solicitada por no ser menos que él.

Este es el primer paso de generar la siguiente iteración, añadiendo a la derecha hasta el final de la última. Nos ahorrará a la nueva iteración.

Esta declaración completa el segundo paso usando una rebanada extendida para invertir el orden de los personajes de la antigua cadena de iteración. La sintaxis de esta cadena de método de corte es [comenzar: paso: final]. Dejando fuera el inicio y final y paso de ajuste-1, hace toda la cadena alrededor del interruptor.

Este bloque de código cambia todos las derechas e izquierdas en la iteración antigua invertida. Se encuentra en un bucle que funciona para cada uno de los caracteres de la cadena, la gama de la longitud de la cadena. Para cada personaje, que es llamado de la cadena y pruebas. Si es un derecho, se sustituye por una izquierda mediante la adición de la parte de la cadena antes del personaje, a la izquierda y el resto de la cadena después del carácter. De lo contrario, si es a la izquierda, el mismo método se utiliza para reemplazar el carácter de un derecho.

Esto lleva, que es el viejo original además de un derecho y agrega al invertido y cambiado viejo en el extremo. El resultado se guarda en el nuevo. Se ha generado la siguiente iteración.

Al guardar la nueva iteración en viejo, podemos usarlo el ciclo siguiente para encontrar la siguiente iteración.

Este ciclo se lleva a cabo y así avanzar en la variable del ciclo. El tiempo del lazo sigue generando la siguiente iteración hasta que es satisfecha por la variable ciclo llegando a la iteración solicitada.

Display-

Especialmente con las iteraciones mayores, la cadena de derechas e izquierdas es tanto es impracticable y desordenado imprimir. Este código permite al usuario elegir. Toma un sí o ninguna respuesta a si el usuario quiere que lo impreso y, si la respuesta es sí, imprime nuevos, que sostiene la iteración final.

Aquí hemos creado la ventana de gráficos de tortuga. Empezamos por ocultar el icono de la tortuga y la animación de apagado por lo que es más rápido. Además, aplicamos el usuario pidió a colores para el dibujo y el fondo.

Aquí le decimos a la tortuga para ir avanzando la longitud del segmento, haciendo la primera línea que todas las derechas e izquierdas de.

Este bucle for es similar a la que todas las derechas e izquierdas previamente en el programa. Comprueba cada carácter en la secuencia de derecha izquierda y hacer la tortuga gira a la derecha si es un derecho y a la izquierda si es a la izquierda. Después de cada vuelta, también pone en marcha la longitud del segmento deseado para completar el ángulo. De esta manera, se gráfica la secuencia entera.

Artículos Relacionados

Ploteo de datos en tiempo real de Arduino usando Python (matplotlib)

Ploteo de datos en tiempo real de Arduino usando Python (matplotlib)

Arduino es fantástico como un intermediario entre tu ordenador y un circuito electrónico crudo. Usando la interfaz serial, puede recuperar información de los sensores conectados a su Arduino. (También puede enviar información a través de la interfaz
Tarjeta de año nuevo para el año del dragón

Tarjeta de año nuevo para el año del dragón

tarjetas de año nuevo para el año de dragon(龍)Es el año del dragón de este año en Japón. (Tal vez en Corea, China también?)Asi que me hice una tarjeta de año nuevo que representa 龍, kanji (letra China) de dragón.Lo hice con un japonés Hagaki (postal
Papercraft de po (el Guerrero del dragón)

Papercraft de po (el Guerrero del dragón)

Skadoosh!Kung Fu Panda, en mi opinión, es una de las características mejor animadas nunca a salido de Dreamworks.  Toma todos los elementos de acción seria base de algunas de las mejores películas de Kung Fu y de alguna manera se mezcla con su propia
Barco del dragón de origami!

Barco del dragón de origami!

Este video es un fácil de comprender, paso a paso, tutorial de papiroflexia para hacer un origami de barco del dragón. Para más videos como éste, visite http://www.youtube.com/user/tommyclancygames?feature=mheeConsejos: tener cuidado de tus pliegues
El avión de papel del 'Dragón'

El avión de papel del 'Dragón'

siempre he querido conocer el verdadero mejor avión de papel, pero no tengo mucho papel de sobra...LO QUE USTED NECESITAUn par de manosUn par de ojos conectados a un cerebroUn pedazo de papel de A4 (el tamaño estándar de impresión)La versión original
Simple como enviar valores de los sensores a través de SigFox y Edison de Intel, usando Python IoT

Simple como enviar valores de los sensores a través de SigFox y Edison de Intel, usando Python IoT

Tuve la oportunidad, en un IoT Hackaton Intel lleva a cabo en Usine.io en París, al lado de una placa Intel Edison Arduino y un montón de sensores/actuadores de Grove, para también obtener la nueva Junta de Aquenio de Snootlab.Gracias a los chicos de
Experimentos en avanzada de registro de datos (usando Python)

Experimentos en avanzada de registro de datos (usando Python)

Hay un montón de registro instructables, así que cuando quise construir un proyecto de registro de mi propia miró a su alrededor en un montón de datos. Algunas eran buenas, algunas no tanto, así que me decidí a tomar algunas de las mejores ideas y ha
Algoritmo de cifrado basado en números felices usando Python 2.7

Algoritmo de cifrado basado en números felices usando Python 2.7

Hola chicos, así que vamos a realizar un algoritmo, usando una secuencia básica de matemáticas y programación un poco.Para los fundamentos, te diré lo que son números felices, los números que es individuales Plaza de dígitos agrega hasta 1.Usted pued
El pinata del huevo del dragón

El pinata del huevo del dragón

la primera piñata que hice fue para una fiesta de cumpleaños temática de Star Wars. Apenas sabía qué una piñata era, mucho menos sabían cómo debían ser hechas, pero figurado haciendo algo que podría ser roto abierto no podía ser difícil. Corte un mon
TweeToy de frambuesa pi usando Python

TweeToy de frambuesa pi usando Python

He creado un juguete que habla de alguien tweets con Raspberry Pi.Las capturas de este juguete por el sensor de distancia de objetos y luego hacen sonido (Tweet).La arquitectura es muy simple. Para obtener Tweets, usando twitter api para python. Y re
Desconcierto del tesoro abre usando twitter y energía inalámbrica

Desconcierto del tesoro abre usando twitter y energía inalámbrica

Un regalo sorprendente! Mi "víctima" se da tres cajas:Una caja muy pequeña encerrados con cadenas y un candado.Una pequeña caja cerrada con ningunos bolsas de exterior, que está cerrada y tiene una tapa superior reflexiva.Una gran pirata-y la ca
Calculadora de longitud de desarrollo de la curva del tubo

Calculadora de longitud de desarrollo de la curva del tubo

Doblatubos de concepto aplicación móvilVentajas de esta aplicación1. fácilmente findout la longitud de desarrollo de la oe del tubo 2. No caluculation Requirted 3. Ningún software costoso necesario para comprobar la longitud de desarrolloNombre de ap
Fácil automatización del hogar bricolaje (usando interruptores servo)

Fácil automatización del hogar bricolaje (usando interruptores servo)

este Instructable es todo sobre una de las acciones simples de la vida, un interruptor de luz encendido y apagado.En oomlout lo hacemos muchas veces al día, muchos de hecho llegó a un punto donde nos preguntamos "No podemos hacer un Arduino para hace
Cómo hacer el avión de papel del dragón

Cómo hacer el avión de papel del dragón

diseñado para suplantar a otros aviones de papel de crucero de miniatura, el dragón es un avión de papel miniatura con capacidades de largo alcance. Con una envergadura de sólo de 4 pulgadas, este avión es muy pequeño comparado con otros, pero aún ti