=====math.abs=====
''math.abs(_a)'' berechnet den Absolutbetrag einer Zahl ''_a''. Positive Zahlen bleiben unverändert, negative Zahlen verlieren ihr Vorzeichen:
print(math.abs(5)) -- 5
print(math.abs(-42)) -- 42
print(math.abs(-math.pi)) -- 3.141...
====Beispiel Anwendungsfall====
Mit ''math.abs'' kann die absolute Differenz zweier Zahlen berechnet werden (Parameterreihenfolge egal):
function AbsoluteDifference(_a, _b)
return math.abs(_a - _b)
end
print(AbsoluteDifference(5, 10)) -- 5
print(AbsoluteDifference(-42, 5)) -- 47
print(AbsoluteDifference(-3, -5)) -- 2
Auf Koordinaten übertragen lässt sich so beispielsweise prüfen, ob eine Entity innerhalb eines bestimmten Rechtecks um eine gegebene Position ist:
function IsEntityInRectangle(_Entity, _Position, _SizeX, _SizeY)
local EntityPosition = GetPosition(_Entity)
local InRangeX = AbsoluteDifference(EntityPosition.X, _Position.X) <= _SizeX
local InRangeY = AbsoluteDifference(EntityPosition.Y, _Position.Y) <= _SizeY
return InRangeX and InRangeY
end
Die absolute Differenz wird auch verwendet, um die [[ https://de.wikipedia.org/wiki/Manhattan-Metrik |Manhattan-Distanz]] zu berechnen.