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.
math.R( Rand_i, Rand_f ) y R( Rand_i, Rand_f, Step )Descripción: 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.
Argumentos:
Rand_i, Rand_f (number): Rango mínimo y máximo.Step (number, opcional): El incremento o "paso".Rs, Rd, Rc, Rm, Rr y sus combinacionesR para necesidades comunes:
Rs (Signed): Aleatorio con signo (+/-).Rd, Rc, Rm (Decimal): Aleatorio con 1, 2 o 3 decimales.Rr (Ratio): Aleatorio escalado por el ratio de la resolución del video.Rsr, Rds, Rdrs, etc.): Mezclan las propiedades anteriores.Re( Table )math.Rfake( ... ), math.Rfake2( ... ), math.Rredefine( ... )Counter, siempre devuelven el mismo resultado. Es crucial para que los efectos no parpadeen entre fotogramas.math.picas( )Descripción: 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.
Argumentos:
Number (el intento del usuario).Ejemplo de Uso (Conceptual):
-- 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"
math.round( Number, Decimal )math.distance( px1, py1, px2, py2 )math.angle( px1, py1, px2, py2 )math.polar( angle, radius, Return )Descripción: Convierte coordenadas polares (ángulo y radio) a coordenadas cartesianas (x, y).
Argumentos:
Return (string, opcional): Puede ser "x" o "y" para devolver solo una de las coordenadas.math.intersect( x1, y1, x2, y2, x3, y3, x4, y4 )Descripción: Encuentra el punto de intersección entre dos segmentos de recta.
Argumentos:
x1...y4 (number): Las coordenadas de los cuatro puntos que definen los dos segmentos.math.circle( Shape )Descripción: Calcula el centro y el radio de un círculo a partir de los tres primeros puntos de una shape o clip.
Argumentos:
Shape (string): La shape que contiene al menos tres puntos.Devuelve: centro_x, centro_y, radio.
math.rotate( p, axis, angle )Descripción: Rota un punto 3D (p = {x,y,z}) o una shape 2D alrededor de un eje especificado.
Argumentos:
p (table | string): El punto o la shape a rotar.axis (string): El eje de rotación ("x", "y" o "z").angle (number): El ángulo de rotación en grados.math.factk( n ) y math.bernstein( i, n, t )factk calcula el factorial, y bernstein el polinomio de Bernstein, ambos necesarios para confi_bezier. Rara vez se usan directamente.math.confi_bezier( n, x, y, t, Return ) y math.bezier( Return, ... )t (de 0 a 1), devuelve la coordenada (x, y) en ese punto de la curva.math.length_bezier( ... )math.angle_bezier( points, t )math.point( c_num, ... )math.bezier2( ... ), math.movebezier( ... ), math.bezier2move( ... )shape.
bezier2: Calcula la posición y ángulo en un punto.movebezier: Genera un \move completo a lo largo de la shape.bezier2move: Genera una animación de \t en bucle a lo largo de la shape.math.shape( Shape, Length, Mode, Max_n, Accel )math.bezier2 para facilitar el posicionamiento de múltiples objetos en una trayectoria.math.matrix_sum( ... ), math.matrix_mul( ... ), math.matrix_trans( ... )math.matrix_cof( A, Return ), math.matrix_det( A ), math.matrix_adj( A ), math.matrix_inv( A )_cof: Calcula la matriz de cofactores._det: Calcula el determinante._adj: Calcula la matriz adjunta._inv: Calcula la matriz inversa (si existe).math.matrix_dis( ... ), math.matrix_rot( ... ), math.matrix_rat( ... ), math.matrix_ref( ... ), math.matrix_fil( ... )dis: Desplazamiento (Translation).rot: Rotación.rat: Escala (Ratio).ref: Reflexión (Espejo).fil: Cizallado (Inclinación).math.format( String, ... )string.format que evalúa expresiones matemáticas y variables del efecto (como line.width) antes de aplicar el formato.math.i( counter, A, B, C )"1-->A", "+,-", etc.).math.audio( Audio_wav, ... ).wav y lo convierte en una serie de valores para animar efectos.math.to16( Num )string.math.clamp( Num, Min, Max, Cycle )Descripción: Limita un número para que se mantenga dentro de un rango.
Argumentos:
Cycle (boolean, opcional): Si es true, el valor "rebota" cíclicamente dentro del rango.math.cubic( c1, c2, c3, c4 )Descripción: Calcula la(s) raíz(ces) de una ecuación cúbica.
Argumentos:
c1, c2, c3, c4 (number): Los coeficientes de la ecuación c1*x^3 + c2*x^2 + c3*x + c4 = 0.math.count( )