Español   Ejemplos: Animaciones.

Un cubo que gira.

Las 3 coordenadas (x, y, z) que indican la nueva posición se determinan con ayuda de la posición inicial.
x designa la componente horizontal, y la vertical y z la profundidad. Aquí, z se utiliza también para fijar el tamaño de los círculos (mayor para dar la impresión de proximidad, más pequeña para simular un alejamiento).

# Comando de Inicio: empezar
para empezar
# inicializamos la pantalla, el lapiz, la tortuga, ...
  reponetodo pontamañopantalla [400 400] ocultatortuga
  poncolorpapel negro poncolorlapiz verde subelapiz animacion
# Forma del cubo
  haz "formax [80 -80 -80 80 80 -80 -80 80]
  haz "formay [80 80 -80 -80 -80 -80 80 80]
  haz "formaz [80 80 80 80 -80 -80 -80 -80]
  haz "color [1 1 2 2 3 3 6 6]
# Inicializamos los angulos. Globales, no locales
  haz "angulox 0
  haz "anguloy 0
  haz "anguloz 0
  haz "m cuenta :color
#
  dibuja
  detieneanimacion
fin

para dibuja
  mientras [cierto]
   [ haz "n 1
     haz "angulox :angulox+5
     haz "anguloy :anguloy+7
     haz "anguloz :anguloz+3
     repite :m
       [ haz "xd elemento :n :formax
         haz "yd elemento :n :formay
         haz "zd elemento :n :formaz
         haz "zx :xd*(cos :anguloz) - :yd*(sen :anguloz) - :xd
         haz "zy :xd*(sen :anguloz) + :yd*(cos :anguloz) - :yd
         haz "yx (:xd+:zx)*(cos :anguloy) - :zd*(sen :anguloy) - (:xd+:zx)
         haz "yz (:xd+:zx)*(sen :anguloy) + :zd*(cos :anguloy) - :zd
         haz "xy (:yd+:zy)*(cos :angulox) - (:zd+:yz)*(sen :angulox) - (:yd+:zy)
         haz "xz (:yd+:zy)*(sen :angulox) + (:zd+:yz)*(cos :angulox) - (:zd+:yz)
        haz "z :zd + (:xz+:yz)
        haz "x (:xd + (:yx+:zx))*((:z+300)/295)
        haz "y (:yd + (:zy+:xy))*((:z+300)/295)
       ponposicion lista :x :y
       poncolorlapiz elemento :n :color
       circulo 4+(:z+200)/50 haz "n :n+1]
    refresca limpia espera 15]
fin



¡Se pueden probar otros sólidos! ¿Te atreves a inventar otros?
Probar este programa ahora

Procedimiento a ejecutar:
empezar