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...
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 Manhattan-Distanz zu berechnen.