Benutzer-Werkzeuge

Webseiten-Werkzeuge


scripting:reference:standard_library:math:abs

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

scripting/reference/standard_library/math/abs.txt · Zuletzt geändert: 2023/11/03 12:26 von fritz_98