Librería (graph & image)
¿Para qué sirve?
Section titled “¿Para qué sirve?”Esta librería se especializa en la creación de figuras geométricas complejas y patrones que van más allá de los shapes básicos. 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.
Funciones
Section titled “Funciones”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.
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 (de0a360). 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
Section titled “Ejemplo”-- Crea un pentágono de altura 80 con un borde de 5 píxelesreturn graph.polygon(5, 80, nil, 5)Crea un 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 un shape existente y darle grosor.
Configs: string | table: La trayectoria.table:{{angulo1, longitud1}, {angulo2, longitud2}, ...}.string: Unshapeexistente cuyo contorno se usará como trayectoria.
Bord?: number, opcional: El grosor de la línea.
Ejemplo
Section titled “Ejemplo”-- Crea una línea en forma de "Z" con grosor de 4 píxelesreturn graph.line({{0, 100}, {135, 141}, {0, 100}}, 4)Crea un shape de banner o cinta, con extremos personalizables.
Width, Height: number: Ancho y alto del banner.Mode?: string, opcional: Una cadena 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
Section titled “Ejemplo”-- Crea un banner de 300x50 con extremos en forma de flecha y borde de 4pxreturn graph.banner(300, 50, "<>", 4)Genera un shape de engranaje.
Radius: number: El radio exterior del engranaje.n: number: El número de dientes.Dent?: string, opcional: Unshapeque define la forma de un solo diente.Double?: boolean, opcional: Si estrue, crea un engranaje con un anillo interior para un aspecto más detallado.
Ejemplo
Section titled “Ejemplo”-- Crea un engranaje de 100px de radio con 12 dientes rectangularesreturn graph.gear(100, 12, "m 0 0 l 100 0")Crea un shape de sector circular, como un trozo de tarta o un gráfico de pastel.
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 engraph.polygonpara efectos concéntricos y personalización.
Ejemplo
Section titled “Ejemplo”-- Crea un gráfico de pastel de 270 grados (3/4 de círculo) con borde de 10pxreturn graph.cake(100, 270, 10)¿Para qué sirve?
Section titled “¿Para qué sirve?”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 un único shape compuesto para toda la imagen.
Funciones
Section titled “Funciones”Lee un archivo de imagen y extrae sus datos de color y alfa en tablas.
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 alfas.- Si se omite, devuelve ambas tablas:
color, alpha.
Ejemplo
Section titled “Ejemplo”-- En "Variables [fx]:":colores_de_imagen = image.data("mi_imagen.bmp", "color")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.
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 es1.Table?: boolean, opcional: Si estrue, la función devuelve una tabla con los datos brutos de los píxeles (color, alfa, ancho, alto) en lugar de generar las líneas de efecto.
Ejemplo
Section titled “Ejemplo”-- En un Template [Shape]-- Convierte un logo en píxeles del doble de su tamaño originalreturn image.to_pixels("mi_logo.bmp", 2)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.
Image: string: La ruta al archivo de imagen.Lines?: number|table, opcional: Si se proporciona, divide elshapede salida en múltiples líneas de efecto, donde cada línea contiene un trozo de la imagen.
Ejemplo
Section titled “Ejemplo”-- Muestra una imagen de fondo en la posición (100,100)return "{\\pos(100,100)}" .. image.grid("fondo.bmp")