Gráficos vectoriales en Lil: del trazo a las transformaciones afines

Fuentes: Vector Graphics in Lil

El módulo hershey del entorno Decker se apoya en las tipografías digitales creadas por Allen Vincent Hershey en 1967, definidas como secuencias de segmentos rectos. Sobre esa base, el lenguaje de scripting Lil —de orientación afín a APL— ofrece un conjunto de primitivas para representar y manipular gráficos bidimensionales. En Lil, un punto es un par (x, y) de números; un trazo (stroke) es una lista de puntos que describe N-1 líneas conectadas, y un camino (path) es una lista de trazos capaz de representar desde una letra hasta un texto completo. La función hershey.textpath[] convierte una cadena en un camino usando los glifos de una fuente, que el widget de canvas de Decker puede dibujar con canvas.line[].

El artículo desarrolla después una colección de idioms para transformar caminos. La multiplicación escalar uniforme escala puntos, trazos y caminos de forma recursiva. Para escalas no uniformes, traslaciones y cizallamientos se aprovecha la conformación implícita de Lil y el operador @, que permite “empujar” primitivas como last o first a través de estructuras anidadas. Para rotaciones se recurre a las primitivas mag, heading y unit, que descomponen coordenadas rectangulares en polares y permiten girar un camino completo sumando un ángulo a los headings. Combinando espejo y transposición (rev @ @ p) se obtiene un giro de 90 grados. El texto cierra con un generador de polígonos regulares basado en unit y range, y queda truncado antes de abordar la siguiente sección sobre centrado de caminos.