Bitbybit Docs
    Preparing search index...

    Class MathBitByBit

    Aritmética, redondeo, rangos, números aleatorios y las funciones trigonométricas sobre números simples. Las funciones trigonométricas toman y dan ángulos en radianes; degToRad y radToDeg convierten en la frontera, porque casi todos los ángulos que escribe un usuario están en grados. Los ayudantes de interpolación (lerp, remap, ease, smoothstep, pingPong) son los bloques de construcción de la animación y la variación paramétrica.

    Index

    Constructors

    basics

    • Suma dos números.

      Ejemplo: 5 y 3 -> 8, -2 y 7 -> 5

      Parameters

      Returns number

      Su suma

      const sum = bitbybit.math.add({ first: 5, second: 3 });
      
    • Resta el segundo número del primero.

      Ejemplo: 10 y 3 -> 7, 5 y 8 -> -3

      Parameters

      • inputs: TwoNumbersDto

        El número del que restar y el número que restar

      Returns number

      Su diferencia

      const difference = bitbybit.math.subtract({ first: 10, second: 3 });
      
    • Multiplica dos números.

      Ejemplo: 5 y 3 -> 15, -2 y 4 -> -8

      Parameters

      Returns number

      Su producto

      const product = bitbybit.math.multiply({ first: 5, second: 3 });
      
    • Divide el primer número entre el segundo.

      Dividir entre 0 da Infinity, como en JavaScript. Ejemplo: 10 y 2 -> 5, 7 y 2 -> 3.5

      Parameters

      • inputs: TwoNumbersDto

        El número que dividir y el número por el que dividir

      Returns number

      Su cociente

      const quotient = bitbybit.math.divide({ first: 7, second: 2 });
      
    • Eleva el primer número a la potencia del segundo.

      Ejemplo: 2 elevado a 3 -> 8, 5 elevado a 2 -> 25, 10 elevado a -1 -> 0.1

      Parameters

      Returns number

      La potencia

      const cube = bitbybit.math.power({ first: 2, second: 3 });
      
    • Encuentra la raíz cuadrada de un número.

      Un número negativo da NaN. Ejemplo: 9 -> 3, 2 -> 1.414

      Parameters

      Returns number

      La raíz cuadrada

    • Quita el signo de un número, de modo que el resultado nunca es negativo.

      Ejemplo: -5 -> 5, 3 -> 3, 0 -> 0

      Parameters

      Returns number

      El valor absoluto

    • Redondea un número al entero más cercano; las mitades se redondean hacia arriba.

      Ejemplo: 3.7 -> 4, 2.3 -> 2, 5.5 -> 6

      Parameters

      Returns number

      El número entero más cercano

    • Redondea un número hacia abajo al entero inferior.

      Ejemplo: 3.7 -> 3, -2.3 -> -3, 5 -> 5

      Parameters

      Returns number

      El número entero inferior

    • Redondea un número hacia arriba al entero superior.

      Ejemplo: 3.2 -> 4, -2.8 -> -2, 5 -> 5

      Parameters

      Returns number

      El número entero superior

    • Invierte el signo de un número.

      Ejemplo: 5 -> -5, -3 -> 3, 0 -> 0

      Parameters

      Returns number

      El número con el signo contrario

    • Encuentra el logaritmo natural de un número: la potencia a la que hay que elevar e para obtener ese número.

      Ejemplo: 2.718 -> aproximadamente 1, 1 -> 0

      Parameters

      Returns number

      El logaritmo natural

    • Encuentra el logaritmo en base 10 de un número: la potencia a la que hay que elevar 10 para obtener ese número.

      Ejemplo: 100 -> 2, 1000 -> 3, 10 -> 1

      Parameters

      Returns number

      El logaritmo en base 10

    • Eleva 10 a la potencia de un número.

      Ejemplo: 2 -> 100, 3 -> 1000, -1 -> 0.1

      Parameters

      Returns number

      10 elevado a esa potencia

    • Encuentra el seno de un ángulo dado en radianes.

      Ejemplo: 0 -> 0, pi/2 -> 1

      Parameters

      Returns number

      El seno, entre -1 y 1

    • Encuentra el coseno de un ángulo dado en radianes.

      Ejemplo: 0 -> 1, pi -> -1

      Parameters

      Returns number

      El coseno, entre -1 y 1

    • Encuentra la tangente de un ángulo dado en radianes.

      Ejemplo: 0 -> 0, pi/4 -> aproximadamente 1

      Parameters

      Returns number

      La tangente

    • Encuentra el ángulo, en radianes, cuyo seno es el número dado.

      Ejemplo: 0 -> 0, 1 -> pi/2 (aproximadamente 1.57)

      Parameters

      Returns number

      El ángulo en radianes

    • Encuentra el ángulo, en radianes, cuyo coseno es el número dado.

      Ejemplo: 1 -> 0, -1 -> pi (aproximadamente 3.14)

      Parameters

      Returns number

      El ángulo en radianes

    • Encuentra el ángulo, en radianes, cuya tangente es el número dado.

      Ejemplo: 0 -> 0, 1 -> pi/4 (aproximadamente 0.785)

      Parameters

      Returns number

      El ángulo en radianes, entre -pi/2 y pi/2

    • Eleva e, la base del logaritmo natural, a la potencia de un número.

      Ejemplo: 0 -> 1, 1 -> aproximadamente 2.718, 2 -> aproximadamente 7.389

      Parameters

      Returns number

      e elevado a esa potencia

    • Convierte un ángulo de grados a radianes.

      Ejemplo: 180 -> pi (aproximadamente 3.14159), 90 -> pi/2

      Parameters

      Returns number

      El ángulo en radianes

    • Convierte un ángulo de radianes a grados.

      Ejemplo: pi -> 180, pi/2 -> 90

      Parameters

      Returns number

      El ángulo en grados

    create

    • Deja pasar un número sin cambios, de modo que a un valor se le puede dar un nombre y reutilizarlo.

      Ejemplo: 42 -> 42

      Parameters

      Returns number

      El mismo número

    generate

    • Da un número aleatorio desde 0 hasta 1, sin incluirlo.

      Ejemplo: 0.342, 0.891 o cualquier otro valor en ese rango

      Returns number

      Un número aleatorio entre 0 y 1

    • Da un número aleatorio entre low y high.

      Ejemplo: low 0, high 10 -> 3.7, 8.2 o cualquier otro valor entre ellos

      Parameters

      Returns number

      Un número aleatorio dentro del rango

      const value = bitbybit.math.randomNumber({ low: 0, high: 10 });
      
    • Da una lista de números aleatorios entre low y high.

      Ejemplo: low 0, high 10, count 3 -> [2.5, 7.1, 4.8]

      Parameters

      • inputs: RandomNumbersDto

        Los extremos inferior y superior del rango y cuántos números generar

      Returns number[]

      Los números aleatorios

      const values = bitbybit.math.randomNumbers({ low: 0, high: 10, count: 3 });
      
    • Da la constante pi, la razón entre la circunferencia de un círculo y su diámetro.

      Ejemplo: 3.141592653589793

      Returns number

      El número pi

    operations

    • Aplica una operación aritmética a dos números: sumar, restar, multiplicar, dividir, potencia o módulo.

      La operación lee first y luego second: restar da first menos second, potencia da first elevado a second. Ejemplo: 5 sumar 3 -> 8, 10 módulo 3 -> 1, 2 potencia 3 -> 8

      Parameters

      Returns number

      El resultado de la operación

      const result = bitbybit.math.twoNrOperation({ first: 2, second: 3, operation: Bit.Inputs.Math.mathTwoNrOperatorEnum.power });
      
    • Encuentra el resto tras dividir un número entre otro.

      El signo sigue al primer número, como ocurre en JavaScript. Ejemplo: 10 módulo 3 -> 1, 17 módulo 5 -> 2

      Parameters

      • inputs: ModulusDto

        El número que dividir y el número por el que dividir

      Returns number

      El resto

      const remainder = bitbybit.math.modulus({ number: 17, modulus: 5 });
      
    • Redondea un número a un número dado de decimales.

      Ejemplo: 1.32156 a 3 decimales -> 1.322

      Parameters

      Returns number

      El número redondeado

      const rounded = bitbybit.math.roundToDecimals({ number: 1.32156, decimalPlaces: 3 });
      
    • Redondea un número a un número dado de decimales y descarta los ceros del final.

      Como número el resultado no puede llevar ceros finales de todos modos; la diferencia con roundToDecimals es que el ruido de coma flotante como 1.320000001 se limpia a 1.32. Ejemplo: 1.32156 a 3 decimales -> 1.322, 1.320000001 -> 1.32, 1.000 -> 1

      Parameters

      Returns number

      El número redondeado

      const clean = bitbybit.math.roundAndRemoveTrailingZeros({ number: 1.320000001, decimalPlaces: 3 });
      
    • Aplica una operación a un solo número: valor absoluto, negar, raíz cuadrada, redondeo, logaritmos, las funciones trigonométricas y sus inversas, exponencial, o una conversión entre radianes y grados.

      Las funciones trigonométricas trabajan en radianes. Ejemplo: sqrt de 5 -> 2.236, valor absoluto de -3 -> 3

      Parameters

      Returns number

      El resultado de la operación

      const root = bitbybit.math.oneNrOperation({ number: 5, operation: Bit.Inputs.Math.mathOneNrOperatorEnum.sqrt });
      
    • Reasigna un número de un rango a otro, conservando su posición relativa.

      Un número fuera del rango de origen se reasigna proporcionalmente más allá del rango de destino. Ejemplo: 5 de [0,10] a [0,100] -> 50, 0.5 de [0,1] a [-10,10] -> 0

      Parameters

      • inputs: RemapNumberDto

        El número, el rango en el que está y el rango al que asignarlo

      Returns number

      El número en la misma posición relativa dentro del rango de destino

      const percent = bitbybit.math.remap({ number: 5, fromLow: 0, fromHigh: 10, toLow: 0, toHigh: 100 });
      
    • Formatea un número como texto con un número fijo de decimales, conservando los ceros finales.

      Ejemplo: 3.14159 con 2 decimales -> '3.14', 5 con 3 decimales -> '5.000'

      Parameters

      • inputs: ToFixedDto

        El número y cuántos decimales mostrar

      Returns string

      El texto formateado

      const label = bitbybit.math.toFixed({ number: 3.14159, decimalPlaces: 2 });
      
    • Asigna un valor de 0 a 1 al rango de min a max a lo largo de una curva de suavizado, de modo que el resultado acelera o frena en lugar de cambiar uniformemente.

      Una curva easeIn empieza despacio, una curva easeOut termina despacio, una curva easeInOut hace ambas cosas. Ejemplo: 0.5 de [0,100] con easeInQuad -> 25

      Parameters

      • inputs: EaseDto

        El valor entre 0 y 1, el rango de destino y la curva de suavizado

      Returns number

      El valor suavizado dentro del rango de destino

      const eased = bitbybit.math.ease({ x: 0.5, min: 0, max: 100, ease: Bit.Inputs.Math.easeEnum.easeInQuad });
      
    • Mantiene un número dentro de un rango: por debajo de min se convierte en min, por encima de max se convierte en max.

      Ejemplo: 5 en [0,3] -> 3, -1 en [0,3] -> 0, 1.5 en [0,3] -> 1.5

      Parameters

      • inputs: ClampDto

        El número y el rango en el que mantenerlo

      Returns number

      El número, limitado al rango

      const limited = bitbybit.math.clamp({ number: 5, min: 0, max: 3 });
      
    • Interpola de un valor inicial a un valor final según una fracción t: 0 da el inicio, 1 el final, 0.5 el punto medio.

      Una t fuera de 0 a 1 extrapola más allá de los extremos. Ejemplo: 0 a 100 en 0.5 -> 50, 10 a 20 en 0.25 -> 12.5

      Parameters

      • inputs: LerpDto

        El valor inicial, el valor final y la fracción

      Returns number

      El valor mezclado

      const mid = bitbybit.math.lerp({ start: 10, end: 20, t: 0.25 });
      
    • Encuentra dónde se sitúa un valor entre un inicio y un final, como fracción: la t que lerp necesitaría para producirlo.

      Ejemplo: 5 en [0,10] -> 0.5, 2.5 en [0,10] -> 0.25

      Parameters

      • inputs: InverseLerpDto

        El valor inicial, el valor final y el valor que localizar

      Returns number

      La fracción del inicio al final

      const fraction = bitbybit.math.inverseLerp({ start: 0, end: 10, value: 2.5 });
      
    • Convierte un valor de 0 a 1 en una curva en S suave que empieza y termina con suavidad; el valor se limita primero a ese rango.

      Ejemplo: 0 -> 0, 0.5 -> 0.5, 0.25 -> 0.156

      Parameters

      Returns number

      El valor suavizado entre 0 y 1

    • Indica el signo de un número: -1 cuando es negativo, 0 cuando es cero, 1 cuando es positivo.

      Ejemplo: -5 -> -1, 0 -> 0, 3.14 -> 1

      Parameters

      Returns number

      1, 0 o 1

    • Conserva la parte de un número después de la coma decimal, medida hacia arriba desde el entero inferior, de modo que el resultado siempre va de 0 hasta 1.

      Ejemplo: 3.14 -> 0.14, -2.3 -> 0.7

      Parameters

      Returns number

      La parte fraccionaria, desde 0 hasta 1

    • Envuelve un número dentro de un rango para que cicle: pasado max vuelve a entrar por min, y por debajo de min vuelve a entrar por max.

      Útil para ángulos y patrones repetitivos; a diferencia de un módulo simple maneja los números negativos. Ejemplo: 1.5 en [0,1) -> 0.5, -0.3 en [0,1) -> 0.7, 370 en [0,360) -> 10

      Parameters

      • inputs: WrapDto

        El número y el rango en el que envolverlo

      Returns number

      El número envuelto, desde min hasta max

      const angle = bitbybit.math.wrap({ number: 370, min: 0, max: 360 });
      
    • Hace rebotar un valor de ida y vuelta entre 0 y length a medida que t crece: sube hasta length, vuelve a bajar a 0, y otra vez.

      Ejemplo: length 1 en t 0.5 -> 0.5, t 1 -> 1, t 1.5 -> 0.5, t 2 -> 0

      Parameters

      • inputs: PingPongDto

        El valor en curso y la longitud dentro de la que rebotar

      Returns number

      El valor rebotado entre 0 y la longitud

      const bounce = bitbybit.math.pingPong({ t: 1.5, length: 1 });
      
    • Mueve un valor hacia un objetivo como máximo maxDelta, sin sobrepasarlo.

      Ejemplo: 0 hacia 10 de 3 en 3 -> 3, 8 hacia 10 de 3 en 3 -> 10

      Parameters

      • inputs: MoveTowardsDto

        El valor actual, el objetivo y el paso máximo permitido

      Returns number

      El valor tras un paso

      const next = bitbybit.math.moveTowards({ current: 8, target: 10, maxDelta: 3 });
      
    • Calcula una expresión aritmética simple escrita como texto: números, +, -, el signo de multiplicación, /, paréntesis y espacios.

      La expresión la analiza y calcula la propia biblioteca, nunca se entrega al motor de JavaScript para ejecutarla, así que es segura con texto escrito por un usuario. Ejemplo: '(3+2) por 4' escrito con el signo -> 20, '10/3' -> 3.3333

      Parameters

      Returns number

      El valor calculado

      const value = bitbybit.math.evalArithmetic({ expression: "(3 + 2) * 4" });