BryPlot y el triángulo de Sierpinski

Esta vez vamos a ver como usar una pequeña librería que he creado para poder dibujar en el canvas de HTML5 usando python (vía Brython).

La librería la podéis encontrar en este repo alojado en bitbucket. Solo voy a usar el módulo base y para no complicar el tema lo voy a pegar como código directamente aquí y así no habrá que importarlo.
Pero primero algunos apuntes:

¿Para qué otra librería para dibujar?

Por varios motivos:

  • Porque encontré algo de tiempo.
  • Porque me da la gana 😛
  • Para aprender a usar canvas.
  • Para aprender sobre el DOM, eventos,…
  • Para aprender.

Preparativos antes de empezar.

Para poder usar este engendro dentro del notebook de IPython vamos a usar una extensión creada para ello. La extensión se llama brythonmagic (¡qué derroche de creatividad!) y permite usar brython internamente en el notebook de IPython.
Para instalarla solo tenéis que hacer:

Y para poder usarla hacemos:

Además, hemos de cargar la librería javascript brython.

Cargamos el módulo base directamente en el notebook.

Una vez listo para empezar a usar brython en el notebook vamos a meter en la siguiente celda el módulo base, citado anteriormente, y que contiene una serie de clases para poder dibujar texto y formas simples (círculos, cuadrados, polilíneas,…) en el canvas.

Básicamente, el módulo que acabamos de cargar nos permite usar el canvas de HTML5 a un nivel más alto que usando la API oficial y con una sintaxis pythónica.
Para ver todas las posibilidades actuales de la librería podéis usar este notebook que está en el mismo repo de la librería.

Ejemplo de uso, el triángulo de Sierpinski.

El triángulo de Sierpinski es un fractal y es lo que vamos a dibujar para ver las ¿capacidades? de Bryplot.

Primero hemos de crear el elemento HTML donde vamos a dibujar y que posteriormente le pasaremos al script Brython para que lo use.

Y ahora vamos a crear simplemente la figura, que es donde pintaremos todo lo que queramos, con un fondo negro:

Ahora vamos a dar un pequeño paso más y vamos a dibujar un triángulo usando la clase Polygon. A esta clase le hemos de pasar el contexto del canvas que, dicho de forma muy simplificada, es lo que nos permite realmente dibujar en el canvas. Además, le hemos de pasar los puntos que delimitan el polígono y luego podemos pasarle diferentes valores opcionales.

Como he comentado anteriormente, tenéis más clases y con un poco de maña podéis crear vuestras propias figuras como las que tenéis en el README del repo.

Por último, vamos a dibujar un fractal usando recursión. No voy a explicar el ejemplo y si os hace falta alguna explicación podéis preguntar en los comentarios del blog puesto que este notebook se convertirá en post.

Y eso es todo por hoy.
¿Nos vemos en la PyConES?
P.D.: Cómo siempre, tenéis el notebook aquí.

2 pensamientos sobre “BryPlot y el triángulo de Sierpinski”

Deja una respuesta

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

eighty − = seventy two