@azleur/vec2-random

This is a Work In Progress!

Usage no npm install needed!

<script type="module">
  import azleurVec2Random from 'https://cdn.skypack.dev/@azleur/vec2-random';
</script>

README

Random utilities for 2D vectors

This is a Work In Progress!

This TypeScript module provides random number generation in 2D space, with the help of vec2.

To start serving vectors, create a new provider:

const provider = new RngVec2Provider();

const vector: Vec2 = provider.Uniform(); // 0 <= x,y <= 1.
...

The provider wraps a random number generator. Any function () => number that returns uniform random values in the range [0, 1) will do. The module random provides some defaults.

Boxes and balls

You can generate uniformly distributed samples in different shapes:

const inBox = provider.Uniform(1, 1, 3, 4); // Vector in [1, 3] x [1, 4].
const inBall = provider.BallUniform(2); // Vector in ball of center (0, 0) and radius 2.
const inRadius = provider.RingUniform(5, 7); // Vector in "doughnut", radius in [5, 7].

Gauss love

You can sample the standard normal distribution:

const gauss = provider.Normal();
gauss.x; // Normal distribution with mean 0, variance 1.
gauss.y; // Independent from gauss.x, same distribution.