math

(Redirected from math.max)

math() Function

Introduced in version 1.4.0.5
This is NOT a single MapTool function but a collection of math functions in MapTool.

Important Note: Some of these functions have similar versions that don't have the `math.` prefix. These functions may differ slightly from those in implementation and output. For instance, most of these functions return a floating-point number (e.g.: `3.0`), so you may find it helpful to surround them with round(), floor(), or ceiling().

Usage

```Numbers:
[r:val = math.pi()]
[r:val = math.e()]

Trigonomotry:
[r:val = math.acos(degrees)]
[r:val = math.asin(degrees)]
[r:val = math.atan(degrees)]
[r:val = math.atan_r(num)] <!-- radians -->
[r:val = math.atan2(y,x)] <!-- degrees -->
[r:val = math.atan2_r(y,x)] <!-- radians -->
[r:val = math.cos(degrees)]
[r:val = math.cos_r(num)]
[r:val = math.sin(degrees)]
[r:val = math.sin_r(num)]
[r:val = math.tan(degrees)]
[r:val = math.tan_r(num)]
[r:val = math.toDegrees(num)]

Power and root:
[r:val = math.sqrt(num)]
[r:val = math.squareroot(num)]
[r:val = math.cbrt(num)]
[r:val = math.cuberoot(num)]
[r:val = math.pow(num1,num2)]

Logarithmic
[r:val = math.log(num)] (this is the log to base e)
[r:val = math.log10(num)]

Pythagorean:
[r:val = math.hypot(num1, num2)]
[r:val = math.hypotenuse(num1, num2)]

Simple operations
[r:val = math.abs(num)]
[r:val = math.ceil(num)]
[r:val = math.floor(num)]
[r:val = math.isEven(num)]
[r:val = math.isInt(num)]
[r:val = math.isOdd(num)]
[r:val = math.max(num1, num2, num2, etc.)]
[r:val = math.min(num1, num2, num2, etc.)]
[r:val = math.mod(dividend, divisor)]```

Examples

abs

`[r:val =  math.abs(-3)]`

Returns: 3.0

atan2_r

```<!-- getFacingToTarget(sourceId,targetId,degreeRound): facing
sourceId - tokenId of source
targetId - tokenId of target
degreeRound - (opt) round to the nearest degree increment, defaults to 1

Return the facing from a source token to a target token, center to center
-->
[H: sourceId = arg(0)]
[H: targetId = arg(1)]
[H, if(argCount() >= 3): degreeRound = arg(2); degreeRound = 1]

<!-- calculate angle from center of source to center of target -->
[H: x1 = getTokenX(1,sourceId) + round(getTokenWidth(sourceId)/2)]
[H: y1 = getTokenY(1,sourceId) + round(getTokenHeight(sourceId)/2)]
[H: x2 = getTokenX(1,targetId) + round(getTokenWidth(targetId)/2)]
[H: y2 = getTokenY(1,targetId) + round(getTokenHeight(targetId)/2)]

[H, if(x1 == x2): direction = 90 * min(1,max(-1,y1-y2)); direction = math.atan2_r((y1-y2),(x2-x1)) / Math.pi() * 180]
[H: facing = degreeRound * round(direction/degreeRound)]
[H: macro.return = facing]```

Output range from -179 to 180 degrees.

mod

Returns the result of the modulo operation between the two numbers, which represents the remainder after a division operation.

`[r: math.mod(14,6)]`

Returns 2

`[r: math.mod(10,5)]`

Returns 0

`[r: math.mod(-13,4)]`

Returns -1

pow

`[r:val =  math.pow(2,3)]`
Returns: 8.0

Some `math` functions are further documented on their own pages: