Librería (math)
¿Para qué sirve?
Section titled “¿Para qué sirve?”Esta librería es el motor matemático de Kara Effector. Proporciona un amplio conjunto de funciones que van desde la generación de números aleatorios y cálculos geométricos hasta la manipulación compleja de curvas Bézier y transformaciones matriciales. Es la base para crear cualquier tipo de movimiento, animación o deformación en los efectos.
Funciones
Section titled “Funciones”Funciones de generación de números aleatorios
Section titled “Funciones de generación de números aleatorios”Generan un número aleatorio. math.R es para enteros. R (mayúscula) es la versión mejorada que permite decimales a través de un Step.
Rand_i: number: Rango mínimo.Rand_f: number: Rango máximo.Step?: number, opcional: El incremento o “paso”. Solo para la funciónR.
Variaciones de R para necesidades comunes.
Rs(Signed): Aleatorio con signo (+/-).Rd,Rc,Rm(Decimal): Aleatorio con 1, 2 o 3 decimales.Rr(Ratio): Aleatorio escalado por elratiode la resolución del video.- Combinaciones (
Rsr,Rds,Rdrs, etc.): Mezclan las propiedades anteriores.
Random element. Devuelve un elemento aleatorio de una tabla.
Table: tabla: La tabla de la que devolver el elemento.
Generan números “pseudo-aleatorios”. Parecen aleatorios, pero para el mismo Counter siempre devuelven el mismo resultado. Es crucial para que los efectos no parpadeen entre fotogramas.
No es una función para efectos visuales, sino un pequeño juego de lógica implementado por los desarrolladores llamado “Picas y Fijas”. La primera vez que se llama, genera un número secreto de 4 dígitos. Las llamadas posteriores devuelven una función que permite al usuario intentar adivinar el número.
- La primera llamada no tiene argumentos.
- La función devuelta toma un
Number(el intento del usuario).
Ejemplo
Section titled “Ejemplo”-- En "Variables [fx]", se inicializa el juego.numero_secreto, adivinar = math.picas()
-- En "Return [fx]", el usuario podría "jugar"-- return adivinar(1234) --> Devuelve "1234 --> 1 pica y 0 fijas"Funciones geométricas y de coordenadas
Section titled “Funciones geométricas y de coordenadas”Redondea un número a una cantidad específica de decimales.
Calcula la distancia euclidiana entre dos puntos en un plano 2D.
Calcula el ángulo en grados entre dos puntos, usando el sistema de coordenadas de ASS.
Convierte coordenadas polares (ángulo y radio) a coordenadas cartesianas (X, Y).
Return?: string, opcional: Puede ser"x"o"y"para devolver solo una de las coordenadas.
Encuentra el punto de intersección entre dos segmentos de recta.
x1...y4: number: Las coordenadas de los cuatro puntos que definen los dos segmentos.
Calcula el centro y el radio de un círculo a partir de los tres primeros puntos de un shape o clip.
Shape: string: Lashapeque contiene al menos tres puntos.
Esta función devuelve centro_x, centro_y y radio.
Rota un punto 3D (p = {x,y,z}) o un shape 2D alrededor de un eje especificado.
p: table | string: El punto o lashapea rotar.axis: string: El eje de rotación ("x","y"o"z").angle: number: El ángulo de rotación en grados.
Funciones de curvas Bézier y trayectorias
Section titled “Funciones de curvas Bézier y trayectorias”Funciones matemáticas base para el cálculo de curvas. factk calcula el factorial, y bernstein el polinomio de Bernstein, ambos necesarios para confi_bezier. Rara vez se usan directamente.
El núcleo del cálculo de curvas Bézier. Dada una serie de puntos de control y un porcentaje t (de 0 a 1), devuelve la coordenada (x, y) en ese punto de la curva.
Calcula la longitud total de una curva Bézier.
Calcula el ángulo de la tangente (la dirección) en un punto específico de una curva Bézier.
Genera una serie de puntos aleatorios para ser usados como puntos de control en una curva Bézier.
Funciones de alto nivel para posicionar y animar objetos a lo largo de una shape.
bezier2: Calcula la posición y ángulo en un punto.movebezier: Genera un\movecompleto a lo largo de lashape.bezier2move: Genera una animación de\ten bucle a lo largo de lashape.
Una función de conveniencia que llama a math.bezier2 para facilitar el posicionamiento de múltiples objetos en una trayectoria.
Funciones de matrices (para transformaciones 3D)
Section titled “Funciones de matrices (para transformaciones 3D)”Realizan operaciones básicas de matrices: suma, multiplicación y transposición.
Funciones de álgebra lineal para matrices 3x3.
_cof: Calcula la matriz de cofactores._det: Calcula el determinante._adj: Calcula la matriz adjunta._inv: Calcula la matriz inversa (si existe).
Funciones que crean matrices de transformación 3x3 para:
dis: Desplazamiento (Translation).rot: Rotación.rat: Escala (Ratio).ref: Reflexión (Espejo).fil: Cizallado (Inclinación).
Funciones de utilidad y generación
Section titled “Funciones de utilidad y generación”Una versión mejorada de string.format que evalúa expresiones matemáticas y variables del efecto (como line.width) antes de aplicar el formato.
Generador de secuencias numéricas. Produce patrones predecibles y repetitivos. Es una tabla de algoritmos a la que se accede por índice o por nombre ("1-->A", "+,-", etc.).
Analiza un archivo de audio .wav y lo convierte en una serie de valores para animar efectos.
Convierte un número decimal a su representación hexadecimal en formato string.
Limita un número para que se mantenga dentro de un rango.
Cycle(boolean, opcional): Si estrue, el valor “rebota” cíclicamente dentro del rango.
Calcula la(s) raíz(ces) de una ecuación cúbica.
c1, c2, c3, c4(number): Los coeficientes de la ecuaciónc1*x^3 + c2*x^2 + c3*x + c4 = 0.
Crea y devuelve una función que actúa como un contador independiente.
