Bitbybit Docs
    Preparing search index...

    Class MathBitByBit

    Aritmética, arredondamento, intervalos, números aleatórios e as funções trigonométricas sobre números simples. As funções trigonométricas recebem e dão ângulos em radianos; degToRad e radToDeg convertem na fronteira, porque quase todos os ângulos que um utilizador escreve estão em graus. Os auxiliares de interpolação (lerp, remap, ease, smoothstep, pingPong) são os blocos de construção da animação e da variação paramétrica.

    Index

    Constructors

    basics

    • Soma dois números.

      Exemplo: 5 e 3 -> 8, -2 e 7 -> 5

      Parameters

      Returns number

      A sua soma

      const sum = bitbybit.math.add({ first: 5, second: 3 });
      
    • Subtrai o segundo número ao primeiro.

      Exemplo: 10 e 3 -> 7, 5 e 8 -> -3

      Parameters

      • inputs: TwoNumbersDto

        O número do qual subtrair e o número a subtrair

      Returns number

      A sua diferença

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

      Exemplo: 5 e 3 -> 15, -2 e 4 -> -8

      Parameters

      Returns number

      O seu produto

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

      Dividir por 0 dá Infinity, como em JavaScript. Exemplo: 10 e 2 -> 5, 7 e 2 -> 3.5

      Parameters

      • inputs: TwoNumbersDto

        O número a dividir e o número pelo qual dividir

      Returns number

      O seu quociente

      const quotient = bitbybit.math.divide({ first: 7, second: 2 });
      
    • Eleva o primeiro número à potência do segundo.

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

      Parameters

      Returns number

      A potência

      const cube = bitbybit.math.power({ first: 2, second: 3 });
      
    • Encontra a raiz quadrada de um número.

      Um número negativo dá NaN. Exemplo: 9 -> 3, 2 -> 1.414

      Parameters

      Returns number

      A raiz quadrada

    • Retira o sinal de um número, de modo que o resultado nunca é negativo.

      Exemplo: -5 -> 5, 3 -> 3, 0 -> 0

      Parameters

      Returns number

      O valor absoluto

    • Arredonda um número ao número inteiro mais próximo; as metades arredondam para cima.

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

      Parameters

      Returns number

      O número inteiro mais próximo

    • Arredonda um número para baixo até ao número inteiro abaixo dele.

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

      Parameters

      Returns number

      O número inteiro abaixo

    • Arredonda um número para cima até ao número inteiro acima dele.

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

      Parameters

      Returns number

      O número inteiro acima

    • Inverte o sinal de um número.

      Exemplo: 5 -> -5, -3 -> 3, 0 -> 0

      Parameters

      Returns number

      O número com o sinal oposto

    • Encontra o logaritmo natural de um número: a potência a que e tem de ser elevado para dar esse número.

      Exemplo: 2.718 -> cerca de 1, 1 -> 0

      Parameters

      Returns number

      O logaritmo natural

    • Encontra o logaritmo de base 10 de um número: a potência a que 10 tem de ser elevado para dar esse número.

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

      Parameters

      Returns number

      O logaritmo de base 10

    • Eleva 10 à potência de um número.

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

      Parameters

      Returns number

      10 elevado a essa potência

    • Encontra o seno de um ângulo dado em radianos.

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

      Parameters

      Returns number

      O seno, entre -1 e 1

    • Encontra o cosseno de um ângulo dado em radianos.

      Exemplo: 0 -> 1, pi -> -1

      Parameters

      Returns number

      O cosseno, entre -1 e 1

    • Encontra a tangente de um ângulo dado em radianos.

      Exemplo: 0 -> 0, pi/4 -> cerca de 1

      Parameters

      Returns number

      A tangente

    • Encontra o ângulo, em radianos, cujo seno é o número dado.

      Exemplo: 0 -> 0, 1 -> pi/2 (cerca de 1.57)

      Parameters

      Returns number

      O ângulo em radianos

    • Encontra o ângulo, em radianos, cujo cosseno é o número dado.

      Exemplo: 1 -> 0, -1 -> pi (cerca de 3.14)

      Parameters

      Returns number

      O ângulo em radianos

    • Encontra o ângulo, em radianos, cuja tangente é o número dado.

      Exemplo: 0 -> 0, 1 -> pi/4 (cerca de 0.785)

      Parameters

      Returns number

      O ângulo em radianos, entre -pi/2 e pi/2

    • Eleva e, a base do logaritmo natural, à potência de um número.

      Exemplo: 0 -> 1, 1 -> cerca de 2.718, 2 -> cerca de 7.389

      Parameters

      Returns number

      e elevado a essa potência

    • Converte um ângulo de graus para radianos.

      Exemplo: 180 -> pi (cerca de 3.14159), 90 -> pi/2

      Parameters

      Returns number

      O ângulo em radianos

    • Converte um ângulo de radianos para graus.

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

      Parameters

      Returns number

      O ângulo em graus

    create

    • Passa um número adiante sem alteração, para que um valor possa receber um nome e ser reutilizado.

      Exemplo: 42 -> 42

      Parameters

      Returns number

      O mesmo número

    generate

    • Dá um número aleatório de 0 até, mas não incluindo, 1.

      Exemplo: 0.342, 0.891 ou qualquer outro valor nesse intervalo

      Returns number

      Um número aleatório entre 0 e 1

    • Dá um número aleatório entre low e high.

      Exemplo: low 0, high 10 -> 3.7, 8.2 ou qualquer outro valor entre eles

      Parameters

      Returns number

      Um número aleatório no intervalo

      const value = bitbybit.math.randomNumber({ low: 0, high: 10 });
      
    • Dá uma lista de números aleatórios entre low e high.

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

      Parameters

      • inputs: RandomNumbersDto

        Os extremos inferior e superior do intervalo e quantos números gerar

      Returns number[]

      Os números aleatórios

      const values = bitbybit.math.randomNumbers({ low: 0, high: 10, count: 3 });
      
    • Dá a constante pi, a razão entre o perímetro de um círculo e o seu diâmetro.

      Exemplo: 3.141592653589793

      Returns number

      O número pi

    operations

    • Aplica uma operação aritmética a dois números: somar, subtrair, multiplicar, dividir, potência ou módulo.

      A operação lê first e depois second: subtrair dá primeiro menos segundo, potência dá primeiro elevado ao segundo. Exemplo: 5 somar 3 -> 8, 10 módulo 3 -> 1, 2 potência 3 -> 8

      Parameters

      Returns number

      O resultado da operação

      const result = bitbybit.math.twoNrOperation({ first: 2, second: 3, operation: Bit.Inputs.Math.mathTwoNrOperatorEnum.power });
      
    • Encontra o resto depois de dividir um número por outro.

      O sinal segue o primeiro número, como acontece em JavaScript. Exemplo: 10 módulo 3 -> 1, 17 módulo 5 -> 2

      Parameters

      • inputs: ModulusDto

        O número a dividir e o número pelo qual dividir

      Returns number

      O resto

      const remainder = bitbybit.math.modulus({ number: 17, modulus: 5 });
      
    • Arredonda um número a um dado número de casas decimais.

      Exemplo: 1.32156 a 3 casas -> 1.322

      Parameters

      Returns number

      O número arredondado

      const rounded = bitbybit.math.roundToDecimals({ number: 1.32156, decimalPlaces: 3 });
      
    • Arredonda um número a um dado número de casas decimais e retira os zeros no fim.

      Como número o resultado não pode de qualquer modo transportar zeros finais; a diferença em relação a roundToDecimals é que o ruído de vírgula flutuante como 1.320000001 é limpo para 1.32. Exemplo: 1.32156 a 3 casas -> 1.322, 1.320000001 -> 1.32, 1.000 -> 1

      Parameters

      Returns number

      O número arredondado

      const clean = bitbybit.math.roundAndRemoveTrailingZeros({ number: 1.320000001, decimalPlaces: 3 });
      
    • Aplica uma operação a um único número: valor absoluto, negação, raiz quadrada, arredondamento, logaritmos, as funções trigonométricas e as suas inversas, exponencial, ou uma conversão entre radianos e graus.

      As funções trigonométricas trabalham em radianos. Exemplo: sqrt de 5 -> 2.236, valor absoluto de -3 -> 3

      Parameters

      Returns number

      O resultado da operação

      const root = bitbybit.math.oneNrOperation({ number: 5, operation: Bit.Inputs.Math.mathOneNrOperatorEnum.sqrt });
      
    • Mapeia um número de um intervalo para outro, mantendo a sua posição relativa.

      Um número fora do intervalo de origem mapeia proporcionalmente para lá do intervalo de destino. Exemplo: 5 de [0,10] para [0,100] -> 50, 0.5 de [0,1] para [-10,10] -> 0

      Parameters

      • inputs: RemapNumberDto

        O número, o intervalo em que está e o intervalo para o qual o mapear

      Returns number

      O número na mesma posição relativa no intervalo de destino

      const percent = bitbybit.math.remap({ number: 5, fromLow: 0, fromHigh: 10, toLow: 0, toHigh: 100 });
      
    • Formata um número como texto com um número fixo de casas decimais, mantendo os zeros finais.

      Exemplo: 3.14159 com 2 casas -> '3.14', 5 com 3 casas -> '5.000'

      Parameters

      • inputs: ToFixedDto

        O número e quantas casas decimais mostrar

      Returns string

      O texto formatado

      const label = bitbybit.math.toFixed({ number: 3.14159, decimalPlaces: 2 });
      
    • Mapeia um valor de 0 a 1 sobre o intervalo min a max ao longo de uma curva de suavização, de modo que o resultado acelera ou abranda em vez de mudar uniformemente.

      Uma curva easeIn começa devagar, uma curva easeOut termina devagar, uma curva easeInOut faz ambos. Exemplo: 0.5 de [0,100] com easeInQuad -> 25

      Parameters

      • inputs: EaseDto

        O valor entre 0 e 1, o intervalo de destino e a curva de suavização

      Returns number

      O valor suavizado no intervalo de destino

      const eased = bitbybit.math.ease({ x: 0.5, min: 0, max: 100, ease: Bit.Inputs.Math.easeEnum.easeInQuad });
      
    • Mantém um número dentro de um intervalo: abaixo de min passa a min, acima de max passa a max.

      Exemplo: 5 em [0,3] -> 3, -1 em [0,3] -> 0, 1.5 em [0,3] -> 1.5

      Parameters

      • inputs: ClampDto

        O número e o intervalo em que o manter

      Returns number

      O número, limitado ao intervalo

      const limited = bitbybit.math.clamp({ number: 5, min: 0, max: 3 });
      
    • Interpola de um valor inicial para um valor final por uma fração t: 0 dá o início, 1 o fim, 0.5 o ponto médio.

      Um t fora de 0 a 1 extrapola para lá das extremidades. Exemplo: 0 a 100 em 0.5 -> 50, 10 a 20 em 0.25 -> 12.5

      Parameters

      • inputs: LerpDto

        O valor inicial, o valor final e a fração

      Returns number

      O valor interpolado

      const mid = bitbybit.math.lerp({ start: 10, end: 20, t: 0.25 });
      
    • Encontra onde um valor fica entre um início e um fim, como uma fração: o t de que lerp precisaria para o produzir.

      Exemplo: 5 em [0,10] -> 0.5, 2.5 em [0,10] -> 0.25

      Parameters

      • inputs: InverseLerpDto

        O valor inicial, o valor final e o valor a localizar

      Returns number

      A fração do início ao fim

      const fraction = bitbybit.math.inverseLerp({ start: 0, end: 10, value: 2.5 });
      
    • Transforma um valor de 0 a 1 numa curva em S suave que começa e termina suavemente; o valor é primeiro limitado a esse intervalo.

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

      Parameters

      Returns number

      O valor suavizado entre 0 e 1

    • Indica o sinal de um número: -1 quando negativo, 0 quando zero, 1 quando positivo.

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

      Parameters

      Returns number

      1, 0 ou 1

    • Mantém a parte de um número depois do ponto decimal, medida a partir do número inteiro abaixo dele, de modo que o resultado vai sempre de 0 até 1.

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

      Parameters

      Returns number

      A parte fracionária, de 0 até 1

    • Enrola um número num intervalo para que cicle: para lá de max volta a entrar em min, e abaixo de min volta a entrar em max.

      Útil para ângulos e padrões repetidos; ao contrário de um módulo simples lida com números negativos. Exemplo: 1.5 em [0,1) -> 0.5, -0.3 em [0,1) -> 0.7, 370 em [0,360) -> 10

      Parameters

      • inputs: WrapDto

        O número e o intervalo em que o enrolar

      Returns number

      O número enrolado, de min até max

      const angle = bitbybit.math.wrap({ number: 370, min: 0, max: 360 });
      
    • Faz um valor saltar para trás e para a frente entre 0 e length à medida que t cresce: até length, de volta a 0, e outra vez.

      Exemplo: length 1 em t 0.5 -> 0.5, t 1 -> 1, t 1.5 -> 0.5, t 2 -> 0

      Parameters

      • inputs: PingPongDto

        O valor corrente e o comprimento dentro do qual refletir

      Returns number

      O valor refletido entre 0 e o comprimento

      const bounce = bitbybit.math.pingPong({ t: 1.5, length: 1 });
      
    • Move um valor em direção a um alvo no máximo maxDelta, sem o ultrapassar.

      Exemplo: 0 em direção a 10 por 3 -> 3, 8 em direção a 10 por 3 -> 10

      Parameters

      • inputs: MoveTowardsDto

        O valor atual, o alvo e o maior passo permitido

      Returns number

      O valor após um passo

      const next = bitbybit.math.moveTowards({ current: 8, target: 10, maxDelta: 3 });
      
    • Calcula uma expressão aritmética simples escrita como texto: números, +, -, o sinal de multiplicação, /, parênteses e espaços.

      A expressão é analisada e calculada pela própria biblioteca, nunca entregue ao motor de JavaScript para executar, por isso é segura com texto que um utilizador escreveu. Exemplo: '(3+2) vezes 4' escrito com o sinal -> 20, '10/3' -> 3.3333

      Parameters

      Returns number

      O valor calculado

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