Fidget Spinner utilizando Python

Prerrequisito: Programación Turtle en Python

En este artículo, vamos a crear Fidget Spinner utilizando el módulo de Turtle de Python. Es una característica de Python como un tablero de dibujo, ¡que nos permite ordenarle a una Turtle que dibuje por todas partes! Podemos usar funciones como turtle.forward() y turtle.right() que pueden mover la Turtle. 

Veamos la implementación paso a paso:

Paso 1: dibujar el fidget spinner

Aquí, en este fragmento de código, inicializaremos el estado del fidget spinner, los ángulos para girarlo en sentido horario y antihorario y crearemos los gráficos de colores necesarios para hacer el fidget spinner.

Python3

# initial state of spinner is null (stable)
state= {'turn':0 }
  
# Draw fidget spinner
def spin():
    clear()
  
    # Angle of fidget spinner
    angle = state['turn']/10
    right(angle)
  
    # move the turtle forward by specified
    # distance
    forward(100)
  
    # draw a dot with diameter 120 using colour 
    # red
    dot(120, 'red')
  
    # move the turtle backward by specified 
    # distance
    back(100)
  
    "second dot"
    right(120)
    forward(100)
    dot(120, 'blue')
    back(100)
  
    "third dot"
    right(120)
    forward(100)
    dot(120, 'green')
    back(100)
    right(120)
  
    update()

Producción:

Paso 2: Animar el fidget spinner

En este paso, llamaremos a una función animar() que animará el fidget spinner al ver si el estado es mayor que 0, luego disminuirá uno de ellos y llamará a la función de giro nuevamente. Después de eso, se instala un temporizador que volverá a llamar a la función animada después de 20 milisegundos.

Python3

# Animate fidget spinner
def animate():
    if state['turn'] > 0:
        state['turn'] -= 1
  
    spin()
    ontimer(animate, 20)

Paso 3: mover el fidget spinner, configurar la ventana y rastrear el spinner hasta su posición original

Aquí definiremos la función de movimiento que moverá el fidget spinner aumentando su estado a 40, también configuraremos una ventana y su color de fondo, usaremos un rastreador que devuelva el fidget spinner a su estado inicial después de completar su rotación y después de eso, definiremos el ancho y el color de nuestro fidget spinner y, por último, definiremos la tecla para mover el fidget spinner.

Python3

# Flick fidget spinner
def flick():
      
    # acceleration of spinner
    state['turn'] += 40
  
  
# setup window screen
setup(600, 400, 370, 0)
bgcolor("black")
  
tracer(False)
'''tracer brings back the fidget spinner into its initial state
after completing the rotation'''
  
# wing of fidget spinner
width(60)
color("orange")
  
# keyboard key for the rotation of spinner
onkey(flick, 'space')
  
listen()
animate()
done()

A continuación se muestra la implementación completa:

Python3

# import object from module turtle
from turtle import *
  
# initial state of spinner is null (stable)
state= {'turn':0 }
  
# Draw fidget spinner
def spin():
    clear()
  
    # Angle of fidget spinner
    angle = state['turn']/10
  
    # To rotate in clock wise we use right
    # for Anticlockwise rotation we use left
    right(angle)
  
    # move the turtle forward by specified distance
    forward(100)
  
    # draw a dot with diameter 120 using colour red
    dot(120, 'red')
  
    # move the turtle backward by specified distance
    back(100)
  
    "second dot"
    right(120)
    forward(100)
    dot(120, 'blue')
    back(100)
  
    "third dot"
    right(120)
    forward(100)
    dot(120, 'green')
    back(100)
    right(120)
  
    update()
  
# Animate fidget spinner
def animate():
    if state['turn']>0:
        state['turn']-=1
      
    spin()
    ontimer(animate, 20)
      
# Flick fidget spinner
def flick():
    state['turn']+=40 #acceleration of spinner
  
# setup window screen
setup(600, 400, 370, 0)
bgcolor("black")
  
tracer(False)
  
# wing of fidget spinner
width(60)
color("orange")
  
# keyboard key for the rotation of spinner
onkey(flick,'space')
  
listen()
animate()
done()

Producción:

Publicación traducida automáticamente

Artículo escrito por saranshsahgal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *