Math expressions can take your watch face to next level. Facer supports arithmetical operations as well as a handful of math functions. You can also drop facer tags into expressions to make them even more dynamic!
NOTE: Math expression require parentheses. So, this will work (1+1) and this will not 1+1 !
Operators
| OPERATOR | DEFINITION | EXAMPLE EXPRESSION | EXAMPLE OUTPUT |
|---|---|---|---|
| + | Addition operator | (3+2) | 5 |
| - | Subtraction operator | (3-2) | 1 |
| * | Multiplication operator | (3*2) | 6 |
| / | Division operator | (3/2) | 1.5 |
| % | Modulo operator | (5%2) | 1 |
Constants
| CONSTANT | DEFINITION | EXAMPLE EXPRESSION | EXAMPLE OUTPUT |
|---|---|---|---|
| pi | Value of pi | (pi) | 3.141592653589793 |
| e | Value of e | (e) | 2.718281828459045 |
Functions
| FUNCTION | DEFINITION | EXAMPLE EXPRESSION | EXAMPLE OUTPUT |
|---|---|---|---|
| rand(min, max) | Random number generator | (rand(1, 10)) | 1 |
| wakeRand(min, max) | Random number generator that's updated every time the watch face goes into active mode | (wakeRand(1, 10)) | 1 |
| abs(number) | Absolute value function | (abs(-10)) | 10 |
| sin(number) | Sine function | (sin(1)) | 0.8414709848078965 |
| cos(number) | Cosine function | (cos(1)) | 0.5403023058681398 |
| tan(number) | Tangent function | (tan(1)) |
1.5574077246549023 |
| asin(number) | Inverse Sine function | (asin(1)) | 1.5707963268 |
| acos(number) | Inverse Cosine function | (acos(1)) | 0 |
| atan(number) | Inverse Tangent function | (atan(1)) |
0.7853981634 |
| round(number) | Round function (get the closest integer) | (round(1.6)) | 2 |
| ceil(number) | Ceiling function (gets the next highest integer) | (ceil(1.2)) | 2 |
| floor(number) | Floor function - gets the next lowest integer) | (floor(1.6)) | 1 |
| pad(number, digits) | Pads a number with "0" so it fills the digits value specified | pad(51, 5) | 00051 |
| toFixed(number, digits) | Truncates a number to a decimal precision based on the digits value specified | toFixed(10.123456789, 3) | 10.123 |
| log(number) | Log function | (log(2)) | 0.6931471805599453 |
| log2(number) | Log base 2 function | (log2(2)) | 1 |
| log10(number) | Log base 10 function | (log10(2)) | 0.3010299956639812 |
| sqrt(number) | Square root function | (sqrt(4)) | 2 |
| cbrt(number) | Cube root function | (cbrt(8)) | 2 |
| exp(number) | Gets E to the x power | (exp(2)) | 7.38905609893065 |
| expm1(number) | Gets E to the x power minus 1 | (expm1(2)) | 6.38905609893065 |
| deg(radians) | Convert radians to degrees | (deg(1)) | 57.29577951308232 |
| rad(degrees) | Converts degrees to radians | (rad(180)) | 3.141592653589793 |
| clamp(current, min, max) | Restrict 'current' value to the 'min' & 'max' | (clamp(#Ds#, 15, 45)) | 31 |
| squareWave(current, amplitude, period, xOffset) | Creates a square wave pattern out of 'current' value | (squareWave(#Ds#, 15, 10, 0)) | 15 |
| interpAccel(current, min, max, accelerationFactor) | Creates a ease-in transition with 'current' value | (interpAccel(#Ds#, 0, 60, 2)) | 0.2669444444444445 |
| interpDecel(current, min, max, accelerationFactor) | Creates a ease-out transition with 'current' value | (interpDecel(#Ds#, 0, 60, 2)) | 0.9454258487654321 |
| interpAccelDecel(current, min, max) | Creates a ease-in-out transition with 'current' value | (interpAccelDecel(#Ds#, 0, 60)) | 0.5261679781214715 |
| interpOvershoot(current, min, max, tensionFactor) | Creates a overshoot transition with 'current' value | (interpOvershoot(#Ds#, 0, 60, 2)) | 0.5261679781214715 |
| interpBounce(current, min, max) | Creates a bounce transition with 'current' value | (interpBounce(#Ds#, 0, 60)) | 0.5261679781214715 |
| interpDial(current, min, max, size, offset) | Calibrates a value into an angle | interpDial(50, 0, 100, 180, -90) | 0 |
| gyroX() | Outputs the X axis of the gyro sensor, accumulated into positional coordinates | 3.9241372946780517 | 3.9241372946780517 |
| gyroY() | Outputs the Y axis of the gyro sensor, accumulated into positional coordinates | -1.0019503694835041 | -1.0019503694835041 |
| accelerometerX() | Outputs the X axis of the accelerometer sensor, accumulated into positional coordinates | -5.273500685642811 | -5.273500685642811 |
| accelerometerY() | Outputs the Y axis of the accelerometer sensor, accumulated into positional coordinates | 7.629725700177308 | 7.629725700177308 |
| gyroRawX() | Outputs the raw X axis of the gyro sensor, which detects rotational acceleration | 6.64500963775291 | 6.64500963775291 |
| gyroRawY() | Outputs the raw Y axis of the gyro sensor, which detects rotational acceleration | -3.9204606214134596 | -3.9204606214134596 |
| accelerometerRawX() | Outputs the raw X axis of the accelerometer sensor | 1.4595613230651239 | 1.4595613230651239 |
| accelerometerRawY() | Outputs the raw Y axis of the accelerometer sensor | 9.87964297713896 | 9.87964297713896 |