Bitbybit Docs
    Preparing search index...

    Class MathBitByBit

    Arithmétique, arrondis, plages, nombres aléatoires et fonctions trigonométriques sur de simples nombres. Les fonctions trigonométriques prennent et donnent des angles en radians ; degToRad et radToDeg convertissent à la frontière, parce que presque chaque angle qu'un utilisateur saisit est en degrés. Les aides d'interpolation (lerp, remap, ease, smoothstep, pingPong) sont les briques de base de l'animation et de la variation paramétrique.

    Index

    Constructors

    basics

    • Additionne deux nombres.

      Exemple : 5 et 3 -> 8, -2 et 7 -> 5

      Parameters

      Returns number

      Leur somme

      const sum = bitbybit.math.add({ first: 5, second: 3 });
      
    • Soustrait le second nombre du premier.

      Exemple : 10 et 3 -> 7, 5 et 8 -> -3

      Parameters

      • inputs: TwoNumbersDto

        Le nombre duquel soustraire et le nombre à soustraire

      Returns number

      Leur différence

      const difference = bitbybit.math.subtract({ first: 10, second: 3 });
      
    • Multiplie deux nombres.

      Exemple : 5 et 3 -> 15, -2 et 4 -> -8

      Parameters

      Returns number

      Leur produit

      const product = bitbybit.math.multiply({ first: 5, second: 3 });
      
    • Divise le premier nombre par le second.

      Diviser par 0 donne Infinity, comme en JavaScript. Exemple : 10 et 2 -> 5, 7 et 2 -> 3.5

      Parameters

      • inputs: TwoNumbersDto

        Le nombre à diviser et le nombre par lequel diviser

      Returns number

      Leur quotient

      const quotient = bitbybit.math.divide({ first: 7, second: 2 });
      
    • Élève le premier nombre à la puissance du second.

      Exemple : 2 puissance 3 -> 8, 5 puissance 2 -> 25, 10 puissance -1 -> 0.1

      Parameters

      Returns number

      La puissance

      const cube = bitbybit.math.power({ first: 2, second: 3 });
      
    • Trouve la racine carrée d'un nombre.

      Un nombre négatif donne NaN. Exemple : 9 -> 3, 2 -> 1.414

      Parameters

      Returns number

      La racine carrée

    • Supprime le signe d'un nombre, le résultat n'est donc jamais négatif.

      Exemple : -5 -> 5, 3 -> 3, 0 -> 0

      Parameters

      Returns number

      La valeur absolue

    • Arrondit un nombre à l'entier le plus proche ; les demis s'arrondissent vers le haut.

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

      Parameters

      Returns number

      Le nombre entier le plus proche

    • Arrondit un nombre vers le bas à l'entier inférieur.

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

      Parameters

      Returns number

      Le nombre entier inférieur

    • Arrondit un nombre vers le haut à l'entier supérieur.

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

      Parameters

      Returns number

      Le nombre entier supérieur

    • Inverse le signe d'un nombre.

      Exemple : 5 -> -5, -3 -> 3, 0 -> 0

      Parameters

      Returns number

      Le nombre avec le signe opposé

    • Trouve le logarithme naturel d'un nombre : la puissance à laquelle e doit être élevé pour obtenir ce nombre.

      Exemple : 2.718 -> environ 1, 1 -> 0

      Parameters

      Returns number

      Le logarithme népérien

    • Trouve le logarithme en base 10 d'un nombre : la puissance à laquelle 10 doit être élevé pour obtenir ce nombre.

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

      Parameters

      Returns number

      Le logarithme en base 10

    • Élève 10 à la puissance d'un nombre.

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

      Parameters

      Returns number

      10 à cette puissance

    • Trouve le sinus d'un angle donné en radians.

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

      Parameters

      Returns number

      Le sinus, entre -1 et 1

    • Trouve le cosinus d'un angle donné en radians.

      Exemple : 0 -> 1, pi -> -1

      Parameters

      Returns number

      Le cosinus, entre -1 et 1

    • Trouve la tangente d'un angle donné en radians.

      Exemple : 0 -> 0, pi/4 -> environ 1

      Parameters

      Returns number

      La tangente

    • Trouve l'angle, en radians, dont le sinus est le nombre donné.

      Exemple : 0 -> 0, 1 -> pi/2 (environ 1.57)

      Parameters

      Returns number

      L'angle en radians

    • Trouve l'angle, en radians, dont le cosinus est le nombre donné.

      Exemple : 1 -> 0, -1 -> pi (environ 3.14)

      Parameters

      Returns number

      L'angle en radians

    • Trouve l'angle, en radians, dont la tangente est le nombre donné.

      Exemple : 0 -> 0, 1 -> pi/4 (environ 0.785)

      Parameters

      Returns number

      L'angle en radians, entre -pi/2 et pi/2

    • Élève e, la base du logarithme naturel, à la puissance d'un nombre.

      Exemple : 0 -> 1, 1 -> environ 2.718, 2 -> environ 7.389

      Parameters

      Returns number

      e à cette puissance

    • Convertit un angle de degrés en radians.

      Exemple : 180 -> pi (environ 3.14159), 90 -> pi/2

      Parameters

      Returns number

      L'angle en radians

    • Convertit un angle de radians en degrés.

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

      Parameters

      Returns number

      L'angle en degrés

    create

    • Transmet un nombre sans changement, pour qu'une valeur puisse recevoir un nom et être réutilisée.

      Exemple : 42 -> 42

      Parameters

      Returns number

      Le même nombre

    generate

    • Donne un nombre aléatoire de 0 jusqu'à 1, non compris.

      Exemple : 0.342, 0.891 ou toute autre valeur dans cette plage

      Returns number

      Un nombre aléatoire entre 0 et 1

    • Donne un nombre aléatoire entre low et high.

      Exemple : low 0, high 10 -> 3.7, 8.2 ou toute autre valeur entre les deux

      Parameters

      Returns number

      Un nombre aléatoire dans la plage

      const value = bitbybit.math.randomNumber({ low: 0, high: 10 });
      
    • Donne une liste de nombres aléatoires entre low et high.

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

      Parameters

      • inputs: RandomNumbersDto

        Les bornes basse et haute de la plage et le nombre de nombres à produire

      Returns number[]

      Les nombres aléatoires

      const values = bitbybit.math.randomNumbers({ low: 0, high: 10, count: 3 });
      
    • Donne la constante pi, le rapport entre la circonférence d'un cercle et son diamètre.

      Exemple : 3.141592653589793

      Returns number

      Le nombre pi

    operations

    • Applique une opération arithmétique à deux nombres : addition, soustraction, multiplication, division, puissance ou modulo.

      L'opération lit first puis second : la soustraction donne first moins second, la puissance donne first à la puissance second. Exemple : 5 add 3 -> 8, 10 modulus 3 -> 1, 2 power 3 -> 8

      Parameters

      Returns number

      Le résultat de l'opération

      const result = bitbybit.math.twoNrOperation({ first: 2, second: 3, operation: Bit.Inputs.Math.mathTwoNrOperatorEnum.power });
      
    • Trouve le reste de la division d'un nombre par un autre.

      Le signe suit le premier nombre, comme en JavaScript. Exemple : 10 modulo 3 -> 1, 17 modulo 5 -> 2

      Parameters

      • inputs: ModulusDto

        Le nombre à diviser et le nombre par lequel diviser

      Returns number

      Le reste

      const remainder = bitbybit.math.modulus({ number: 17, modulus: 5 });
      
    • Arrondit un nombre à un nombre donné de décimales.

      Exemple : 1.32156 à 3 décimales -> 1.322

      Parameters

      Returns number

      Le nombre arrondi

      const rounded = bitbybit.math.roundToDecimals({ number: 1.32156, decimalPlaces: 3 });
      
    • Arrondit un nombre à un nombre donné de décimales et supprime les zéros de fin.

      En tant que nombre, le résultat ne peut de toute façon pas porter de zéros de fin ; la différence avec roundToDecimals est que le bruit en virgule flottante comme 1.320000001 est nettoyé en 1.32. Exemple : 1.32156 à 3 décimales -> 1.322, 1.320000001 -> 1.32, 1.000 -> 1

      Parameters

      Returns number

      Le nombre arrondi

      const clean = bitbybit.math.roundAndRemoveTrailingZeros({ number: 1.320000001, decimalPlaces: 3 });
      
    • Applique une opération à un seul nombre : valeur absolue, négation, racine carrée, arrondi, logarithmes, les fonctions trigonométriques et leurs inverses, exponentielle, ou une conversion entre radians et degrés.

      Les fonctions trigonométriques travaillent en radians. Exemple : sqrt de 5 -> 2.236, valeur absolue de -3 -> 3

      Parameters

      Returns number

      Le résultat de l'opération

      const root = bitbybit.math.oneNrOperation({ number: 5, operation: Bit.Inputs.Math.mathOneNrOperatorEnum.sqrt });
      
    • Projette un nombre d'une plage sur une autre, en gardant sa position relative.

      Un nombre hors de la plage source se projette proportionnellement au-delà de la plage cible. Exemple : 5 de [0,10] vers [0,100] -> 50, 0.5 de [0,1] vers [-10,10] -> 0

      Parameters

      • inputs: RemapNumberDto

        Le nombre, la plage dans laquelle il se trouve et la plage vers laquelle le projeter

      Returns number

      Le nombre à la même position relative dans la plage cible

      const percent = bitbybit.math.remap({ number: 5, fromLow: 0, fromHigh: 10, toLow: 0, toHigh: 100 });
      
    • Formate un nombre en texte avec un nombre fixe de décimales, en gardant les zéros de fin.

      Exemple : 3.14159 avec 2 décimales -> '3.14', 5 avec 3 décimales -> '5.000'

      Parameters

      • inputs: ToFixedDto

        Le nombre et le nombre de décimales à afficher

      Returns string

      Le texte formaté

      const label = bitbybit.math.toFixed({ number: 3.14159, decimalPlaces: 2 });
      
    • Projette une valeur de 0 à 1 sur la plage min à max le long d'une courbe d'accélération, de sorte que le résultat accélère ou ralentit au lieu de changer uniformément.

      Une courbe easeIn commence lentement, une courbe easeOut finit lentement, une courbe easeInOut fait les deux. Exemple : 0.5 de [0,100] avec easeInQuad -> 25

      Parameters

      • inputs: EaseDto

        La valeur entre 0 et 1, la plage cible et la courbe d'accélération

      Returns number

      La valeur avec accélération dans la plage cible

      const eased = bitbybit.math.ease({ x: 0.5, min: 0, max: 100, ease: Bit.Inputs.Math.easeEnum.easeInQuad });
      
    • Maintient un nombre dans une plage : en dessous de min il devient min, au-dessus de max il devient max.

      Exemple : 5 dans [0,3] -> 3, -1 dans [0,3] -> 0, 1.5 dans [0,3] -> 1.5

      Parameters

      • inputs: ClampDto

        Le nombre et la plage dans laquelle le maintenir

      Returns number

      Le nombre, limité à la plage

      const limited = bitbybit.math.clamp({ number: 5, min: 0, max: 3 });
      
    • Fait un mélange d'une valeur de départ à une valeur d'arrivée selon une fraction t : 0 donne le départ, 1 l'arrivée, 0.5 le point milieu.

      Un t hors de 0 à 1 extrapole au-delà des extrémités. Exemple : 0 à 100 à 0.5 -> 50, 10 à 20 à 0.25 -> 12.5

      Parameters

      • inputs: LerpDto

        La valeur de départ, la valeur d'arrivée et la fraction

      Returns number

      La valeur interpolée

      const mid = bitbybit.math.lerp({ start: 10, end: 20, t: 0.25 });
      
    • Trouve où une valeur se situe entre un début et une fin, en fraction : le t dont lerp aurait besoin pour la produire.

      Exemple : 5 dans [0,10] -> 0.5, 2.5 dans [0,10] -> 0.25

      Parameters

      • inputs: InverseLerpDto

        La valeur de départ, la valeur d'arrivée et la valeur à situer

      Returns number

      La fraction du départ à l'arrivée

      const fraction = bitbybit.math.inverseLerp({ start: 0, end: 10, value: 2.5 });
      
    • Transforme une valeur de 0 à 1 en une courbe en S lisse qui commence et finit en douceur ; la valeur est d'abord limitée à cette plage.

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

      Parameters

      Returns number

      La valeur lissée entre 0 et 1

    • Indique le signe d'un nombre : -1 quand il est négatif, 0 quand il est nul, 1 quand il est positif.

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

      Parameters

      Returns number

      -1, 0 ou 1

    • Garde la partie d'un nombre après la virgule, mesurée à partir de l'entier inférieur, le résultat va donc toujours de 0 jusqu'à 1.

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

      Parameters

      Returns number

      La partie fractionnaire, de 0 jusqu'à 1

    • Fait boucler un nombre dans une plage pour qu'il tourne en cycle : au-delà de max il revient à min, et en dessous de min il revient à max.

      Utile pour les angles et les motifs répétitifs ; contrairement à un simple modulo, il gère les nombres négatifs. Exemple : 1.5 dans [0,1) -> 0.5, -0.3 dans [0,1) -> 0.7, 370 dans [0,360) -> 10

      Parameters

      • inputs: WrapDto

        Le nombre et la plage dans laquelle le reboucler

      Returns number

      Le nombre rebouclé, de min jusqu'à max

      const angle = bitbybit.math.wrap({ number: 370, min: 0, max: 360 });
      
    • Fait rebondir une valeur entre 0 et length à mesure que t croît : jusqu'à length, puis retour à 0, et ainsi de suite.

      Exemple : length 1 à t 0.5 -> 0.5, t 1 -> 1, t 1.5 -> 0.5, t 2 -> 0

      Parameters

      • inputs: PingPongDto

        La valeur courante et la longueur dans laquelle rebondir

      Returns number

      La valeur en aller-retour entre 0 et la longueur

      const bounce = bitbybit.math.pingPong({ t: 1.5, length: 1 });
      
    • Déplace une valeur vers une cible d'au plus maxDelta, sans la dépasser.

      Exemple : 0 vers 10 de 3 -> 3, 8 vers 10 de 3 -> 10

      Parameters

      • inputs: MoveTowardsDto

        La valeur actuelle, la cible et le plus grand pas autorisé

      Returns number

      La valeur après un pas

      const next = bitbybit.math.moveTowards({ current: 8, target: 10, maxDelta: 3 });
      
    • Calcule une expression arithmétique simple écrite sous forme de texte : des nombres, +, -, le signe de multiplication, /, des parenthèses et des espaces.

      L'expression est analysée et calculée par la bibliothèque elle-même, jamais confiée au moteur JavaScript pour exécution, elle est donc sûre avec un texte saisi par un utilisateur. Exemple : '(3+2) fois 4' écrit avec le signe -> 20, '10/3' -> 3.3333

      Parameters

      Returns number

      La valeur calculée

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