Escribe a código: la cursiva transformada en JavaScript

Fuentes: Coding my Handwriting — Amy Goodchild

Este artículo de Amy Goodchild describe el proceso de codificación de su escritura cursiva utilizando JavaScript y la biblioteca p5js, siguiendo un enfoque similar al empleado previamente para crear una fuente de letras de imprenta. El proyecto surgió de una idea inicialmente descartada por su complejidad, pero que finalmente se llevó a cabo.

El proceso comienza con la creación de una herramienta personalizada dentro del editor p5js que permite definir los puntos clave de cada letra. Estos puntos se utilizan para generar una curva de Chaikin, que suaviza las líneas de la letra. Inicialmente, la definición de estos puntos era un proceso manual, pero se optimizó utilizando una herramienta que muestra una letra de ejemplo y permite al usuario ajustar los puntos clave. Se crearon múltiples opciones de caminos para cada letra, inspirándose en la escritura a mano propia, utilizando imágenes de su escritura como guía.

Un desafío importante fue la conexión de las letras cursivas. La simple concatenación de los caminos de los puntos clave a menudo resultaba en formas inusuales. Para solucionar esto, se introdujeron reglas basadas en números asignados a los puntos de inicio y fin de cada letra, indicando cómo deben conectarse a las letras vecinas (0: no conectar, 1: conexión en la línea base, 2: conexión ligeramente por encima, 3: conexión a la altura de la x). Además, se implementaron funciones de ajuste específicas para cada letra, que modifican los puntos de inicio y fin en función de las letras adyacentes, creando una adaptación dinámica a la secuencia de letras.

El resultado final es una fuente de escritura cursiva codificada, que se compara con la escritura a mano real. El archivo de código resultante es considerablemente más grande (26.1kb) que el de la fuente de letras de imprenta (9.7kb) debido a la inclusión de múltiples caminos para cada letra y las funciones de ajuste. Se mencionan posibles optimizaciones para reducir el tamaño del archivo, como el uso de un tamaño de fuente predeterminado diferente.

Este proyecto tiene como objetivo principal generar títulos, etiquetas y notas manuscritas para diagramas, y se anticipa un artículo futuro que detallará el proceso de generación de oraciones completas utilizando esta fuente.