Ir al contenido principal

Fractal hexagonal

Escribir, usando CodeWorld, un programa para dibujar el fractal hexagonal que se muestra en la siguiente animación

Fractal hexagonal

Las 5 fases de la animación son

  • Fase 0: Fractal hexagonal
  • Fase 1: Fractal hexagonal
  • Fase 2: Fractal hexagonal
  • Fase 3: Fractal hexagonal
  • Fase 4: Fractal hexagonal

Soluciones

import CodeWorld

main :: IO()
main = animationOf (hexagono . s)

hexagono :: Int -> Picture
hexagono 0 =
  colored red $ solidPolygon [(9,0),(4.5,c),(-4.5,c),(-9,0),(-4.5,-c),(4.5,-c)]
  where c = 9 * sin (pi / 3)
hexagono n =
  pictures (hex : take 6 (iterate (rotated (pi / 3)) (translated 6 0 hex)))
  where hex = scaled (1/3) (1/3) $ hexagono (n-1)

s :: Double -> Int
s t = mod (floor t) 5