math_util¶
Quelle: base/tealdef/scripts/math_util.d.tl
Hinweise
Typen der skalaren Mathe-Helfer in /scripts/mathutil.lua (MathUtil): Interpolation, Begrenzen auf
einen Bereich, Umrechnen zwischen Bereichen und Hermite-Kurven. Wenn die Datei geladen wird, trägt sie
dieselben Funktionen auch in Luas globale Tabelle math ein (math.clamp, math.lerp,
math.mapClamp, ...).
MathUtil¶
record global base/tealdef/scripts/math_util.d.tl:3
global record MathUtil
Hinweise
Skalare Mathe-Helfer aus /scripts/mathutil.lua. Wenn die Datei geladen wird, legt sie dieselben
Funktionen auch in Luas globaler Tabelle math an.
Felder
Funktionen
lerp<T>(T, T, T) : T base/tealdef/scripts/math_util.d.tl:4
Hinweise
Lineare Interpolation a + (b - a) * s.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Startwert a (Ergebnis bei s = 0). |
#2 |
T |
Endwert b (Ergebnis bei s = 1). |
#3 |
T |
Interpolationsfaktor s; wird nicht begrenzt. |
Rückgabe T
invLerp<T>(T, T, T) : T base/tealdef/scripts/math_util.d.tl:5
Hinweise
Umkehrung von lerp, (x - a) / (b - a). Gibt an, wo x zwischen a und b liegt (0 bei a, 1 bei b).
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Der Wert x. |
#2 |
T |
Bereichsanfang a. |
#3 |
T |
Bereichsende b. |
Rückgabe T
Details
Wird nicht begrenzt. Werte außerhalb des Bereichs ergeben Ergebnisse unter 0 oder über 1.
herp<T>(T, T, T, T, number) : T base/tealdef/scripts/math_util.d.tl:6
Hinweise
Kubische Hermite-Interpolation zwischen p0 und p1 mit den Tangenten t0 und t1 beim Parameter s (0 bis 1).
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Startpunkt p0. |
#2 |
T |
Endpunkt p1. |
#3 |
T |
Tangente t0 am Start. |
#4 |
T |
Tangente t1 am Ende. |
#5 |
number |
Kurvenparameter s, 0 bei p0 und 1 bei p1. |
Rückgabe T
Details
Funktioniert mit Zahlen und mit Vektortypen, die +, - und die Multiplikation mit einer Zahl kennen (die Transformator-Helfer nutzen es mit Vec3f).
herpPrime<T>(T, T, T, T, number) : T base/tealdef/scripts/math_util.d.tl:7
Hinweise
Ableitung von herp nach s, also die Tangente der Kurve bei s.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Startpunkt p0. |
#2 |
T |
Endpunkt p1. |
#3 |
T |
Tangente t0 am Start. |
#4 |
T |
Tangente t1 am Ende. |
#5 |
number |
Kurvenparameter s. |
Rückgabe T
randf(number, number) : number base/tealdef/scripts/math_util.d.tl:8
Hinweise
Gleichverteilte Zufallszahl zwischen den beiden Argumenten, berechnet mit math.random().
Rückgabe number
log2(number) : number base/tealdef/scripts/math_util.d.tl:9
Hinweise
Logarithmus zur Basis 2.
Rückgabe number
clamp<T>(T, T, T) : T base/tealdef/scripts/math_util.d.tl:10
Hinweise
Begrenzt einen Wert auf einen Bereich.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Der Wert. |
#2 |
T |
Untergrenze. |
#3 |
T |
Obergrenze. |
Rückgabe T: Die Untergrenze, wenn der Wert darunter liegt, die Obergrenze, wenn er darüber liegt, sonst den Wert.
map<T>(T, T, T, T, T) : T base/tealdef/scripts/math_util.d.tl:11
Hinweise
Bildet x linear vom Bereich a..b auf den Bereich c..d ab, ohne Begrenzung.
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Der Wert x. |
#2 |
T |
Anfang des Quellbereichs a. |
#3 |
T |
Ende des Quellbereichs b. |
#4 |
T |
Zielwert c (für x = a). |
#5 |
T |
Zielwert d (für x = b). |
Rückgabe T
mapClamp<T>(T, T, T, T, T) : T base/tealdef/scripts/math_util.d.tl:12
Hinweise
Wie map, aber das Ergebnis wird auf den Zielbereich begrenzt (egal, ob c oder d größer ist).
| Parameter | Typ | Beschreibung |
|---|---|---|
#1 |
T |
Der Wert x. |
#2 |
T |
Anfang des Quellbereichs a. |
#3 |
T |
Ende des Quellbereichs b. |
#4 |
T |
Zielwert c (für x <= a). |
#5 |
T |
Zielwert d (für x >= b). |
Rückgabe T
round(number) : integer base/tealdef/scripts/math_util.d.tl:13
Hinweise
Rundet auf die nächste ganze Zahl (math.floor(x + 0.5)). Genau halbe Werte werden aufgerundet.
Rückgabe integer
equal(number, number, number) : boolean base/tealdef/scripts/math_util.d.tl:14
Hinweise
Gibt true zurück, wenn sich zwei Zahlen höchstens um das angegebene Epsilon (drittes Argument) unterscheiden.
Rückgabe boolean