npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ishoa/math-helpers

v1.1.1

Published

Some useful Math functions not built into the Javascript Math Object. Mainly useful for Web Games.

Readme

Math-Helper-Functions

Some useful Math functions not built into the Javascript Math Object. Mainly useful for Web Games.

Functions

map(x, istart, istop, ostart, ostop) ⇒ Number


Map a value from a range of numbers to another range of numbers x is to istart and istop segment.

Returns: Number - The number that is in the same relation to ostart and ostop segment

| Param | Type | Description | | --- | --- | --- | | x | Number | Value we are testing | | istart | Number | Min value to test | | istop | Number | Max value to test | | ostart | Number | Min value to map to (based on x value) | | ostop | Number | Max value to map to (based on x value) |

Example

map(Math.random(), 0, 1, 10, 20); will provided a number between 10 and 20

limit(x, min, max) ⇒ Number


Limit a value between a min/max value

Returns: Number - Either x, or the nearest limit if x is out of bounds.

| Param | Type | Description | | --- | --- | --- | | x | Number | Value we need to limit | | min | Number | Min number to return | | max | Number | Max number to return |

toRad(x) ⇒ Number


Convert the angle, provided in degrees (0-360), into radians (0-2*PI)

Returns: Number - Angle in Radians

| Param | Type | Description | | --- | --- | --- | | x | Number | Angle in Degrees |

toDeg(x) ⇒ Number


Convert the angle, provided in radians (0-2*PI), into degrees (0-360)

Returns: Number - Angle in Degrees

| Param | Type | Description | | --- | --- | --- | | x | Number | Angle in Radians |

range(min, max) ⇒ Number


Get random Float value between range of numbers

Returns: Number - Return random Float value between min and max range

| Param | Type | Description | | --- | --- | --- | | min | Number | Min range value | | max | Number | Max range value |

distance(a, b) ⇒ Number


Distance between two points

Returns: Number - Distance between points

| Param | Type | Description | | --- | --- | --- | | a | Object | first point {x: 0, y: 0} | | b | Object | second point {x: 0, y: 0} |

Example

- can supply 2D or 3D point {x: 0, y: 0, z: 0}

lerp(current, target, time) ⇒ Number


Lerp between current position to target position over a period of time

Returns: Number - Value between current/target over the time

| Param | Type | Description | | --- | --- | --- | | current | Number | Current position value | | target | Number | Target position value | | time | Number | Time value |

average(a, b) ⇒ Number


Returns the average or the midpoint between two numbers

Returns: Number - - the midpoint between two numbers

| Param | Type | Description | | --- | --- | --- | | a | Number | first number | | b | Number | second number |

midpoint(v1, v2) ⇒ Object


Get the midpoint between two points

Returns: Object - - {x: x, y: y, z: z}

| Param | Type | Description | | --- | --- | --- | | v1 | Object | {x: 0, y: 0} | | v2 | Object | {x: 0, y: 0} |

Example

- Also accepts 3D point {x: 0, y: 0, z: 0}

chance(percent)


Return a true or false for a random chance of a percentage

| Param | Type | Description | | --- | --- | --- | | percent | Number | float percentage 0 -> 1 |

Example

if(chance(0.2)){ console.log('20% chance true') }