@daeinc/math
v0.8.0
Published
Math utilities
Downloads
54
Readme
math utilities
Installation
npm i @daeinc/maththen,
import { modF, ... } from "@daeinc/math"Functions
clamp
const clamp: (val: number, min: number, max: number) => number;Clamp values between min and max (=constrain)
constrain
const constrain: (val: number, min: number, max: number) => number;Alias for clamp()
dist
const dist: (x1: number, y1: number, x2: number, y2: number) => number;Compute distance between two points
distSq
const distSq: (x1: number, y1: number, x2: number, y2: number) => number;Compute squared distance between two points. There's another version in @daeinc/geom that takes Pt: number[] type as arguments.
floorF
const floorF: (n: number, digit: number) => number;Floor a float value to the specified digit.
map
const map: (
val: number,
s: number,
e: number,
ns: number,
ne: number
) => number;Map a value from one range to another.
mix
const mix: (a: number, b: number, t: number) => number;Linear interpolation (=lerp)
lerp
const lerp: (a: number, b: number, t: number) => number;Alias for mix()
mod
const mod: (n: number, max: number) => number;Modular operation
modF
const modF: (n: number, max: number, precision?: number) => number;Modulo(%) operation for float numbers up to precision digit.
modIncl
const modIncl: (n: number, max: number) => number;Inclusive modulo operation. modIncl(1, 3) will include 3. It can handle negative number and returns positive value
polarToCartesian
const polarToCartesian: (radius: number, angle: number) => number[];Converts polar coodrinate to cartesian coordinate. To use a different center point than the default [0, 0], do something like this:
result.map((v, i) => v + center[i]);reflect
const reflect: (num: number, axis: number) => number;Rreflect a scalar value along axis. If you want to reflect a point in 2d space, you can use reflectPoint() from @daeinc/geom.
roundF
const roundF: (n: number, digit: number) => number;Round a float value. Good for drawing shapes to include the maximum value (round up)
snapBy
const snapBy: (n: number, inc: number) => number;Snap value to increment using Math.round().
snapToArray
const snapToArray: (n: number, snapArr: number[]) => number;Snap to a closest value in an array.
To do
- add more tests
License
MIT
