Spiral seeds

Spirals and sunflowers. Common words when someone wants to show an example of how mathematics is deeply embedded in nature. But, how that really works? What’s the role of the Fibonacci series and the golden ratio in this?

Of course, there are some other examples of Fibonacci spirals in nature. But, what advantages do these spirals offer?

Read more...

Punteros y listas enlazadas

Recientemente, en una entrada anterior, usamos listas enlazadas para animar un sistema de partículas. Aunque la implementación en Javascript en esa entrada funciona correctamente, existen formas de mejorarla.

En esta entrada hablaré sobre listas enlazadas y su implementación en C. La inspiración para este post es un video en Computerphile con el Profesor Braisfold. Usando bloques de Lego el profesor logra comunicar de manera simple las ideas detrás de esto.

Esta entrada abordará las mismas ideas, enfocándonos más en el código que en las analogías.

Read more...

Sistemas de partículas (NC6)

Un sistema de partículas es un conjunto de pequeños objetos que juntos representan un objeto más grande. Esta entrada trata precisamente sobre sistemas de partículas, y corresponde al capítulo 4 del libro «The Nature of Code» de Daniel Shiffman.

El origen de los sistemas de partículas es interesante. El término se acuñó durante la creación de una animación para Star Trek II: The Wrath of Khan. El primer sistema se creó para animar la terraformación creada por un Genesis Device.

Read more...

Osciladores (NC5)

Esta es la quinta entrada sobre el libro The Nature of Code de Daniel Shiffman. Hablaremos sobre trigonometría y movimientos armónicos. Este es el tema del capítulo 3.

Este capítulo estudia movimientos oscilatorios y su implementación. Es simplemente una aplicación directa de algunos conceptos básicos de trigonometría.

Las ideas que se presentan en el libro cubren los aspectos más relevantes del tema y en este caso no añadiré demasiados comentarios al respecto, con excepción del código traducido a Javascript en vez de Java (Processing).

Read more...

Fricción y arrastre (NC4)

Esta es la cuarta entrada sobre el libro The Nature of Code de Daniel Shiffman. Es una continuación sobre el capítulo de fuerzas.

En la entrada anterior hablamos sobre como modelar fuerzas en general, teniendo en cuenta la masa de un objeto para hacer que las cosas más ligeras se muevan más rápido. Luego nos concentramos en la gravedad, que a diferencia de otras fuerzas, hace que todos los objetos caigan a la misma velocidad.

En esta entrada nos enfocaremos en un par de fuerzas adicionales que al agregarlas a nuestra animación la harán verse mucho más natural: la fricción y la inercia.

Read more...

Las leyes de Newton (NC3)

Ésta es la tercera entrada en la serie sobre el libro The Nature of Code. En esta entrada hablaré sobre cómo simular las leyes de Newton en una animación. Por supuesto que no estamos hablando de una simulación de física, sino de una animación que actúe de forma relativamente natural, y que nos permita manipular objetos en pantalla de forma sencilla aplicando fuerzas.

Read more...

Vectores, Velocidad, y Aceleración (NC2)

Esta es la segunda entrada en la serie de artículos sobre el libro The Nature of Code. No es una traducción, sino una discusión breve sobre las ideas y una reimplementación de los algoritmos. En vez de usar Java usaré Javsascript con la librería p5.js.

El primer capítulo trata sobre vectores y cómo utilizarlos en animaciones. Normalmente uno representa por medio de vectores la posición, velocidad, y aceleración de un objeto.

Read more...

Caminantes Aleatorios (NC1)

Desde hace unos años he tenido la intención de leer el libro The nature of code escrito por Daniel Shiffman. Es un libro que se enfoca en crear animaciones para simular de forma aproximada cosas como movimiento, inercia y fuerzas actuando sobre un cuerpo. Lo que más me gusta del libro es lo gratificante que resulta el ver tu código «vivo» en la pantalla.

En esta serie de artículos hablaré un sobre las ideas presentadas en el libro conforme lo vaya leyendo. Implementaré los ejercicios y ejemplos en Javascript, por medio de p5.js. En el libro Shiffman trabaja con Processing, un dialecto de Java que corre en su propio interprete.

En esta entrada revisaré la introducción del libro, que trata sobre caminantes aleatorios y distribuciones de probabilidad.

Read more...

Semillas en espirales

Uno de los ejemplos más populares en matemática divulgativa es el crecimiento en espiral de algunos elementos en la naturaleza. Las semillas de girasol son tal vez el caso más común. Se nos dice que la espiral de alguna manera está relacionada con la razón dorada y la sucesión de Fibonacci.

Por supuesto hay muchos otros ejemplo de plantas y hojas que crecen en un patrón similar. Pero, ¿por qué?.

Read more...

FizzBuzz recursivo

El problema de FizzBuzz es un problema clásico que se usa como pregunta en entrevistas para programadores. Por la naturaleza del problema, aún cuando un programador tenga algo de experiencia escribiendo código puede ser que se le complique implementar la solución correctamente.

El problema es muy simple, se basa en un ejercicio de aritmética elemental que ayuda a los niños a practicar la división.

La idea básica es decir (o imprimir) los números del 1 al 100 excepto en tres casos:

  • Cuando alguno de los números sea divisible entre 3 debes decir la palabra «Fizz».
  • Cuando el número sea múltiplo de 5, debes decir la palabra «Buzz».
  • Finalmente, cuando el número es múltiplo de ambos, 5 y 3, debes decir la palabra «FizzBuzz».

Read more...