0.7.0 • Published 2 months ago

@daeinc/math v0.7.0

Weekly downloads
-
License
MIT
Repository
github
Last release
2 months ago

math utilities

Installation

npm i @daeinc/math

then,

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

0.7.0

2 months ago

0.6.1

3 months ago

0.6.0

1 year ago

0.5.0

1 year ago

0.3.0

1 year ago

0.4.0

1 year ago

0.2.0

2 years ago

0.1.0

2 years ago