Español   Ejemplos: Espirógrafos

Más espirógrafos

Este programa crea 12 modelos aleatorioss de espirógrafos.

para empezar
  repite 12
    [nuevo ruedas leyenda spir espera 200]
fin

para nuevo
# Inicializamos papel, lapiz y tortuga
  reponetodo pontamañopantalla [400 400]
  poncolorpapel negro poncolorlapiz verde subelapiz ocultatortuga
fin

para spir
  ponposicion xycurva 0 bajalapiz
  repitepara [t 0 360]
     [poncolorlapiz angcol :t ponposicion xycurva :t]
fin

para ruedas
  haz "r elige [80 90 100 110 120]
  haz "s 160-:r
  haz "a (1 + azar 9)
  haz "b (1 + azar 9)
  haz "c (1 + azar 9)
  haz "d (1 + azar 9)
fin

para leyenda
# Muestra el encabezado y pie
  poncolorlapiz blanco
  ponposicion [-190 184] rotula "Espirografo
  ponposicion [-190 -190] rotula (frase "abcd= :a :b :c :d)
  ponposicion [110 -190] rotula frase lista "rs= :r :s
fin

para angcol :theta
  haz "red abs 255 *coseno (:theta)
  haz "gre abs 255 *coseno (:theta + 120)
  haz "blu abs 255 *coseno (:theta + 240)
  devuelve frase lista :red :gre :blu
fin

para xycurva :t
  haz "x :r*(seno :a*:t) + :s*(seno :b*:t)
  haz "y :r*(coseno :c*:t) + :s*(coseno :d*:t)
  devuelve (lista :x :y)
fin


Para obtener otros modelos diferentes, cambia xycurva por:

para XYCurva :T
# Mas espirografos
  haz "X :R*(Cos :A*:T) + :S*(Sen :B*:T)
  haz "Y :R*(Sen :C*:T) + :S*(Cos :D*:T)
  devuelve lista :X :Y
fin

para XYCurve :T
# flores - fijate que C y D no se usan
  haz "X :R*(Cos :A*:T) + :S*(Sen :B*:T)
  haz "Y :R*(Sen :A*:T) + :S*(Cos :B*:T)
  devuelve lista :X :Y
fin
Probar este programa ahora

Procedimiento a ejecutar:
empezar