Bitbybit Docs
    Bereite Suchindex vor...

    Klasse MathBitByBit

    Arithmetik, Runden, Bereiche, Zufallszahlen und die trigonometrischen Funktionen auf einfachen Zahlen. Die trigonometrischen Funktionen nehmen und geben Winkel in Radiant; degToRad und radToDeg wandeln an der Grenze um, weil fast jeder Winkel, den ein Benutzer eingibt, in Grad ist. Die Interpolationshelfer (lerp, remap, ease, smoothstep, pingPong) sind die Bausteine von Animation und parametrischer Variation.

    Index

    Konstruktoren

    basics

    • Addiert zwei Zahlen.

      Beispiel: 5 und 3 -> 8, -2 und 7 -> 5

      Parameter

      Rückgabewert number

      Ihre Summe

      const sum = bitbybit.math.add({ first: 5, second: 3 });
      
    • Zieht die zweite Zahl von der ersten ab.

      Beispiel: 10 und 3 -> 7, 5 und 8 -> -3

      Parameter

      • inputs: TwoNumbersDto

        Die Zahl, von der subtrahiert wird, und die Zahl, die subtrahiert wird

      Rückgabewert number

      Ihre Differenz

      const difference = bitbybit.math.subtract({ first: 10, second: 3 });
      
    • Multipliziert zwei Zahlen.

      Beispiel: 5 und 3 -> 15, -2 und 4 -> -8

      Parameter

      Rückgabewert number

      Ihr Produkt

      const product = bitbybit.math.multiply({ first: 5, second: 3 });
      
    • Teilt die erste Zahl durch die zweite.

      Die Division durch 0 ergibt Infinity, wie in JavaScript. Beispiel: 10 und 2 -> 5, 7 und 2 -> 3.5

      Parameter

      • inputs: TwoNumbersDto

        Die zu teilende Zahl und die Zahl, durch die geteilt wird

      Rückgabewert number

      Ihr Quotient

      const quotient = bitbybit.math.divide({ first: 7, second: 2 });
      
    • Erhebt die erste Zahl in die Potenz der zweiten.

      Beispiel: 2 hoch 3 -> 8, 5 hoch 2 -> 25, 10 hoch -1 -> 0.1

      Parameter

      Rückgabewert number

      Die Potenz

      const cube = bitbybit.math.power({ first: 2, second: 3 });
      
    • Ermittelt die Quadratwurzel einer Zahl.

      Eine negative Zahl ergibt NaN. Beispiel: 9 -> 3, 2 -> 1.414

      Parameter

      Rückgabewert number

      Die Quadratwurzel

    • Lässt das Vorzeichen einer Zahl weg, sodass das Ergebnis nie negativ ist.

      Beispiel: -5 -> 5, 3 -> 3, 0 -> 0

      Parameter

      Rückgabewert number

      Der Absolutwert

    • Rundet eine Zahl auf die nächste ganze Zahl; Hälften werden aufgerundet.

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

      Parameter

      Rückgabewert number

      Die nächste ganze Zahl

    • Rundet eine Zahl auf die ganze Zahl darunter ab.

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

      Parameter

      Rückgabewert number

      Die ganze Zahl darunter

    • Rundet eine Zahl auf die ganze Zahl darüber auf.

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

      Parameter

      Rückgabewert number

      Die ganze Zahl darüber

    • Kehrt das Vorzeichen einer Zahl um.

      Beispiel: 5 -> -5, -3 -> 3, 0 -> 0

      Parameter

      Rückgabewert number

      Die Zahl mit dem entgegengesetzten Vorzeichen

    • Ermittelt den natürlichen Logarithmus einer Zahl: die Potenz, in die e für diese Zahl erhoben werden muss.

      Beispiel: 2.718 -> etwa 1, 1 -> 0

      Parameter

      Rückgabewert number

      Der natürliche Logarithmus

    • Ermittelt den Zehnerlogarithmus einer Zahl: die Potenz, in die 10 für diese Zahl erhoben werden muss.

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

      Parameter

      Rückgabewert number

      Der Logarithmus zur Basis 10

    • Erhebt 10 in die Potenz einer Zahl.

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

      Parameter

      Rückgabewert number

      10 hoch diese Potenz

    • Ermittelt den Sinus eines in Radiant gegebenen Winkels.

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

      Parameter

      Rückgabewert number

      Der Sinus, zwischen -1 und 1

    • Ermittelt den Kosinus eines in Radiant gegebenen Winkels.

      Beispiel: 0 -> 1, pi -> -1

      Parameter

      Rückgabewert number

      Der Kosinus, zwischen -1 und 1

    • Ermittelt den Tangens eines in Radiant gegebenen Winkels.

      Beispiel: 0 -> 0, pi/4 -> etwa 1

      Parameter

      Rückgabewert number

      Der Tangens

    • Ermittelt den Winkel, in Radiant, dessen Sinus die gegebene Zahl ist.

      Beispiel: 0 -> 0, 1 -> pi/2 (etwa 1.57)

      Parameter

      • inputs: NumberDto

        Eine Zahl zwischen -1 und 1

      Rückgabewert number

      Der Winkel in Radiant

    • Ermittelt den Winkel, in Radiant, dessen Kosinus die gegebene Zahl ist.

      Beispiel: 1 -> 0, -1 -> pi (etwa 3.14)

      Parameter

      • inputs: NumberDto

        Eine Zahl zwischen -1 und 1

      Rückgabewert number

      Der Winkel in Radiant

    • Ermittelt den Winkel, in Radiant, dessen Tangens die gegebene Zahl ist.

      Beispiel: 0 -> 0, 1 -> pi/4 (etwa 0.785)

      Parameter

      Rückgabewert number

      Der Winkel in Radiant, zwischen -pi/2 und pi/2

    • Erhebt e, die Basis des natürlichen Logarithmus, in die Potenz einer Zahl.

      Beispiel: 0 -> 1, 1 -> etwa 2.718, 2 -> etwa 7.389

      Parameter

      Rückgabewert number

      e hoch diese Potenz

    • Rechnet einen Winkel von Grad in Radiant um.

      Beispiel: 180 -> pi (etwa 3.14159), 90 -> pi/2

      Parameter

      Rückgabewert number

      Der Winkel in Radiant

    • Rechnet einen Winkel von Radiant in Grad um.

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

      Parameter

      Rückgabewert number

      Der Winkel in Grad

    create

    • Reicht eine Zahl unverändert durch, sodass ein Wert einen Namen erhalten und wiederverwendet werden kann.

      Beispiel: 42 -> 42

      Parameter

      Rückgabewert number

      Dieselbe Zahl

    generate

    • Liefert eine Zufallszahl von 0 bis, aber ohne, 1.

      Beispiel: 0.342, 0.891 oder ein beliebiger anderer Wert in diesem Bereich

      Rückgabewert number

      Eine Zufallszahl zwischen 0 und 1

    • Liefert eine Zufallszahl zwischen low und high.

      Beispiel: low 0, high 10 -> 3.7, 8.2 oder ein beliebiger anderer Wert dazwischen

      Parameter

      Rückgabewert number

      Eine Zufallszahl im Bereich

      const value = bitbybit.math.randomNumber({ low: 0, high: 10 });
      
    • Liefert eine Liste von Zufallszahlen zwischen low und high.

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

      Parameter

      • inputs: RandomNumbersDto

        Das untere und das obere Ende des Bereichs und wie viele Zahlen erzeugt werden

      Rückgabewert number[]

      Die Zufallszahlen

      const values = bitbybit.math.randomNumbers({ low: 0, high: 10, count: 3 });
      
    • Liefert die Konstante Pi, das Verhältnis des Umfangs eines Kreises zu seinem Durchmesser.

      Beispiel: 3.141592653589793

      Rückgabewert number

      Die Zahl Pi

    operations

    • Wendet eine arithmetische Operation auf zwei Zahlen an: addieren, subtrahieren, multiplizieren, dividieren, potenzieren oder Modulo.

      Die Operation liest first, dann second: subtrahieren ergibt first minus second, potenzieren ergibt first hoch second. Beispiel: 5 add 3 -> 8, 10 modulus 3 -> 1, 2 power 3 -> 8

      Parameter

      Rückgabewert number

      Das Ergebnis der Operation

      const result = bitbybit.math.twoNrOperation({ first: 2, second: 3, operation: Bit.Inputs.Math.mathTwoNrOperatorEnum.power });
      
    • Ermittelt den Rest nach der Division einer Zahl durch eine andere.

      Das Vorzeichen folgt der ersten Zahl, wie in JavaScript. Beispiel: 10 modulo 3 -> 1, 17 modulo 5 -> 2

      Parameter

      • inputs: ModulusDto

        Die zu teilende Zahl und die Zahl, durch die geteilt wird

      Rückgabewert number

      Der Rest

      const remainder = bitbybit.math.modulus({ number: 17, modulus: 5 });
      
    • Rundet eine Zahl auf eine gegebene Anzahl von Nachkommastellen.

      Beispiel: 1.32156 auf 3 Stellen -> 1.322

      Parameter

      Rückgabewert number

      Die gerundete Zahl

      const rounded = bitbybit.math.roundToDecimals({ number: 1.32156, decimalPlaces: 3 });
      
    • Rundet eine Zahl auf eine gegebene Anzahl von Nachkommastellen und lässt die Nullen am Ende weg.

      Als Zahl kann das Ergebnis ohnehin keine nachgestellten Nullen tragen; der Unterschied zu roundToDecimals ist, dass Gleitkommarauschen wie 1.320000001 zu 1.32 bereinigt wird. Beispiel: 1.32156 auf 3 Stellen -> 1.322, 1.320000001 -> 1.32, 1.000 -> 1

      Parameter

      Rückgabewert number

      Die gerundete Zahl

      const clean = bitbybit.math.roundAndRemoveTrailingZeros({ number: 1.320000001, decimalPlaces: 3 });
      
    • Wendet eine Operation auf eine einzelne Zahl an: Betrag, Negation, Quadratwurzel, Rundung, Logarithmen, die trigonometrischen Funktionen und ihre Umkehrungen, Exponentialfunktion oder eine Umrechnung zwischen Radiant und Grad.

      Die trigonometrischen Funktionen arbeiten in Radiant. Beispiel: sqrt von 5 -> 2.236, Betrag von -3 -> 3

      Parameter

      Rückgabewert number

      Das Ergebnis der Operation

      const root = bitbybit.math.oneNrOperation({ number: 5, operation: Bit.Inputs.Math.mathOneNrOperatorEnum.sqrt });
      
    • Bildet eine Zahl von einem Bereich auf einen anderen ab und behält ihre relative Position.

      Eine Zahl außerhalb des Quellbereichs wird proportional über den Zielbereich hinaus abgebildet. Beispiel: 5 von [0,10] nach [0,100] -> 50, 0.5 von [0,1] nach [-10,10] -> 0

      Parameter

      • inputs: RemapNumberDto

        Die Zahl, der Bereich, in dem sie liegt, und der Bereich, auf den sie abgebildet wird

      Rückgabewert number

      Die Zahl an derselben relativen Position im Zielbereich

      const percent = bitbybit.math.remap({ number: 5, fromLow: 0, fromHigh: 10, toLow: 0, toHigh: 100 });
      
    • Formatiert eine Zahl als Text mit einer festen Anzahl von Nachkommastellen und behält nachgestellte Nullen.

      Beispiel: 3.14159 mit 2 Stellen -> '3.14', 5 mit 3 Stellen -> '5.000'

      Parameter

      • inputs: ToFixedDto

        Die Zahl und wie viele Dezimalstellen angezeigt werden

      Rückgabewert string

      Der formatierte Text

      const label = bitbybit.math.toFixed({ number: 3.14159, decimalPlaces: 2 });
      
    • Bildet einen Wert von 0 bis 1 entlang einer Easing-Kurve auf den Bereich min bis max ab, sodass das Ergebnis beschleunigt oder verlangsamt, statt sich gleichmäßig zu ändern.

      Eine easeIn-Kurve beginnt langsam, eine easeOut-Kurve endet langsam, eine easeInOut-Kurve tut beides. Beispiel: 0.5 von [0,100] mit easeInQuad -> 25

      Parameter

      • inputs: EaseDto

        Der Wert zwischen 0 und 1, der Zielbereich und die Easing-Kurve

      Rückgabewert number

      Der abgeflachte Wert im Zielbereich

      const eased = bitbybit.math.ease({ x: 0.5, min: 0, max: 100, ease: Bit.Inputs.Math.easeEnum.easeInQuad });
      
    • Hält eine Zahl innerhalb eines Bereichs: unter min wird zu min, über max wird zu max.

      Beispiel: 5 in [0,3] -> 3, -1 in [0,3] -> 0, 1.5 in [0,3] -> 1.5

      Parameter

      • inputs: ClampDto

        Die Zahl und der Bereich, in dem sie gehalten wird

      Rückgabewert number

      Die Zahl, auf den Bereich begrenzt

      const limited = bitbybit.math.clamp({ number: 5, min: 0, max: 3 });
      
    • Blendet von einem Startwert zu einem Endwert um einen Anteil t über: 0 ergibt den Start, 1 das Ende, 0.5 den Mittelpunkt.

      Ein t außerhalb von 0 bis 1 extrapoliert über die Enden hinaus. Beispiel: 0 bis 100 bei 0.5 -> 50, 10 bis 20 bei 0.25 -> 12.5

      Parameter

      • inputs: LerpDto

        Der Startwert, der Endwert und der Anteil

      Rückgabewert number

      Der gemischte Wert

      const mid = bitbybit.math.lerp({ start: 10, end: 20, t: 0.25 });
      
    • Ermittelt, wo ein Wert zwischen einem Anfang und einem Ende liegt, als Anteil: das t, das lerp bräuchte, um ihn zu erzeugen.

      Beispiel: 5 in [0,10] -> 0.5, 2.5 in [0,10] -> 0.25

      Parameter

      • inputs: InverseLerpDto

        Der Startwert, der Endwert und der zu verortende Wert

      Rückgabewert number

      Der Anteil von Start bis Ende

      const fraction = bitbybit.math.inverseLerp({ start: 0, end: 10, value: 2.5 });
      
    • Verwandelt einen Wert von 0 bis 1 in eine glatte S-Kurve, die sanft beginnt und endet; der Wert wird zuerst auf diesen Bereich begrenzt.

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

      Parameter

      Rückgabewert number

      Der geglättete Wert zwischen 0 und 1

    • Sagt das Vorzeichen einer Zahl: -1 bei negativ, 0 bei null, 1 bei positiv.

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

      Parameter

      Rückgabewert number

      1, 0 oder 1

    • Behält den Teil einer Zahl nach dem Dezimalpunkt, gemessen von der ganzen Zahl darunter nach oben, sodass das Ergebnis immer von 0 bis unter 1 liegt.

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

      Parameter

      Rückgabewert number

      Der Nachkommateil, von 0 bis unter 1

    • Ordnet eine Zahl zyklisch in einen Bereich ein, sodass sie umläuft: über max kommt sie bei min wieder herein, und unter min kommt sie bei max wieder herein.

      Nützlich für Winkel und sich wiederholende Muster; anders als ein einfacher Modulo behandelt es negative Zahlen. Beispiel: 1.5 in [0,1) -> 0.5, -0.3 in [0,1) -> 0.7, 370 in [0,360) -> 10

      Parameter

      • inputs: WrapDto

        Die Zahl und der Bereich, in den sie umgebrochen wird

      Rückgabewert number

      Die umgebrochene Zahl, von min bis unter max

      const angle = bitbybit.math.wrap({ number: 370, min: 0, max: 360 });
      
    • Lässt einen Wert zwischen 0 und length hin und her springen, während t wächst: hinauf bis length, zurück hinunter auf 0, und wieder.

      Beispiel: length 1 bei t 0.5 -> 0.5, t 1 -> 1, t 1.5 -> 0.5, t 2 -> 0

      Parameter

      • inputs: PingPongDto

        Der laufende Wert und die Länge, innerhalb der er hin- und herläuft

      Rückgabewert number

      Der hin- und herlaufende Wert zwischen 0 und length

      const bounce = bitbybit.math.pingPong({ t: 1.5, length: 1 });
      
    • Bewegt einen Wert um höchstens maxDelta auf ein Ziel zu, ohne es zu überschreiten.

      Beispiel: 0 Richtung 10 um 3 -> 3, 8 Richtung 10 um 3 -> 10

      Parameter

      • inputs: MoveTowardsDto

        Der aktuelle Wert, das Ziel und der größte erlaubte Schritt

      Rückgabewert number

      Der Wert nach einem Schritt

      const next = bitbybit.math.moveTowards({ current: 8, target: 10, maxDelta: 3 });
      
    • Berechnet einen einfachen arithmetischen Ausdruck, der als Text geschrieben ist: Zahlen, +, -, das Multiplikations- zeichen, /, Klammern und Leerzeichen.

      Der Ausdruck wird von der Bibliothek selbst geparst und berechnet, nie zur Ausführung an die JavaScript- Engine übergeben, daher ist er mit Text sicher, den ein Benutzer getippt hat. Beispiel: '(3+2) mal 4' mit dem Zeichen geschrieben -> 20, '10/3' -> 3.3333

      Parameter

      Rückgabewert number

      Der berechnete Wert

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