Esta librería se especializa en la creación de figuras geométricas complejas y patrones que van más allá de las shapes básicas. Permite generar polígonos, engranajes, banners y trayectorias lineales con grosor de forma paramétrica, facilitando la creación de elementos gráficos elaborados para fondos o efectos.
graph.polygon( n, Height, Angle, Bord, Space, Tags, Extra )Descripción: Genera un polígono regular (o una serie de polígonos concéntricos) con un número de lados, tamaño y ángulo de arco definidos. Puede ser una figura sólida o solo el borde.
Argumentos:
n (number): El número de lados del polígono. Mínimo 3.Height (number | table): La altura del polígono. También puede ser {ancho, alto}.Angle (number | table): El ángulo del arco a dibujar (de 0 a 360). Si es menor a 360, crea un polígono parcial. Si es una tabla de ángulos, crea polígonos concéntricos.Bord (number, opcional): Si se define, crea un polígono con borde de este grosor.Space (number, opcional): El espacio entre los polígonos concéntricos.Tags (table, opcional): Una tabla de tags para aplicar a cada polígono concéntrico.Extra (table, opcional): Tabla avanzada para añadir extensiones o puntas personalizadas al inicio y fin del polígono.Ejemplo de Uso:
-- Crea un pentágono de altura 80 con un borde de 5 píxeles
return graph.polygon(5, 80, nil, 5)
graph.line( Configs, Bord )Descripción: Crea una shape de una línea poligonal con un grosor definido, a partir de una secuencia de segmentos con ángulo y longitud. También puede tomar una shape existente y darle grosor.
Argumentos:
Configs (string | table): La trayectoria.
table: {{angulo1, longitud1}, {angulo2, longitud2}, ...}.string: Una shape existente cuyo contorno se usará como trayectoria.Bord (number, opcional): El grosor de la línea.Ejemplo de Uso:
-- Crea una línea en forma de "Z" con grosor de 4 píxeles
return graph.line({{0, 100}, {135, 141}, {0, 100}}, 4)
graph.banner( Width, Height, Mode, Bord )Descripción: Crea una shape de banner o cinta, con extremos personalizables.
Argumentos:
Width, Height (number): Ancho y alto del banner.Mode (string, opcional): Un string de dos caracteres que define la forma del inicio y el final. Caracteres válidos: [ ] < > / \ ( ).Bord (number, opcional): Si se define, crea un banner con borde de este grosor.Ejemplo de Uso:
-- Crea un banner de 300x50 con extremos en forma de flecha y borde de 4px
return graph.banner(300, 50, "<>", 4)
graph.gear( Radius, n, Dent, Double )Descripción: Genera una shape de engranaje.
Argumentos:
Radius (number): El radio exterior del engranaje.n (number): El número de dientes.Dent (string, opcional): Una shape que define la forma de un solo diente.Double (boolean, opcional): Si es true, crea un engranaje con un anillo interior para un aspecto más detallado.Ejemplo de Uso:
-- Crea un engranaje de 100px de radio con 12 dientes rectangulares
return graph.gear(100, 12, "m 0 0 l 100 0")
graph.cake( Radius, Angle, Bord, Space, Tags, Extra )Descripción: Crea una shape de sector circular, como un trozo de tarta o un gráfico de pastel.
Argumentos:
Radius (number): El radio del sector.Angle (number | table): El ángulo del sector en grados. Si es una tabla, crea sectores concéntricos.Bord (number, opcional): Si se define, crea un sector con borde.Space, Tags, Extra: Mismos argumentos que en graph.polygon para efectos concéntricos y personalización.Ejemplo de Uso:
-- Crea un gráfico de pastel de 270 grados (3/4 de círculo) con borde de 10px
return graph.cake(100, 270, 10)
Esta librería permite interactuar con archivos de imagen (específicamente .bmp y .png gracias a Yutils). Sus funciones principales son leer los datos de color y alpha de una imagen y convertir esa información en shapes de píxeles, ya sea generando una línea de efecto por cada píxel o creando una única shape compuesta para toda la imagen.
image.data( bmp_image, Return )Descripción: Lee un archivo de imagen y extrae sus datos de color y alpha en tablas.
Argumentos:
bmp_image (string): La ruta al archivo de imagen.Return (string, opcional): Especifica qué datos devolver.
"color": Devuelve solo la tabla de colores."alpha": Devuelve solo la tabla de alphas.colores, alphas.Ejemplo de Uso:
-- En "Variables [fx]:":
colores_de_imagen = image.data("mi_imagen.bmp", "color")
image.to_pixels( bmp_image, Size, Table )Descripción: Convierte una imagen en una serie de shapes de píxeles, creando una línea de efecto por cada píxel. El bucle loop (j) itera a través de cada píxel de la imagen de izquierda a derecha y de arriba a abajo.
Argumentos:
bmp_image (string): La ruta al archivo de imagen.Size (number, opcional): Un factor para escalar el tamaño de cada píxel. Por defecto es 1.Table (boolean, opcional): Si es true, la función devuelve una tabla con los datos brutos de los píxeles (color, alpha, ancho, alto) en lugar de generar las líneas de efecto.Ejemplo de Uso:
-- En un Template [Shape]
-- Convierte un logo en píxeles del doble de su tamaño original
return image.to_pixels("mi_logo.bmp", 2)
image.grid( Image, Lines )Descripción: Similar a image.to_pixels, pero mucho más eficiente. Genera la representación de la imagen como una única shape compuesta, usando saltos de línea (\N) para separar las filas de píxeles. Todo el resultado se emite en una sola línea de efecto.
Argumentos:
Image (string): La ruta al archivo de imagen.Lines (number | table, opcional): Si se proporciona, divide la shape de salida en múltiples líneas de efecto, donde cada línea contiene un trozo de la imagen.Ejemplo de Uso:
-- Muestra una imagen de fondo en la posición (100,100)
return "{\\pos(100,100)}" .. image.grid("fondo.bmp")