https://github.com/alex7kom/golden-number
A tiny Golden ratio based number generator
https://github.com/alex7kom/golden-number
golden-ratio
Last synced: about 2 months ago
JSON representation
A tiny Golden ratio based number generator
- Host: GitHub
- URL: https://github.com/alex7kom/golden-number
- Owner: alex7kom
- License: mit
- Created: 2020-02-05T17:33:25.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2020-02-22T09:29:57.000Z (over 5 years ago)
- Last Synced: 2025-03-27T06:01:44.256Z (2 months ago)
- Topics: golden-ratio
- Language: JavaScript
- Homepage:
- Size: 12.7 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# golden-number
> A tiny [Golden ratio](https://en.wikipedia.org/wiki/Golden_ratio) based number generator
> Only 49 bytes minified and gzipped
```
npm install golden-number
```then
```js
const createGenerator = require('golden-number');const generator = createGenerator();
const num = generator(); //=> 0.70693204169029
```## How & why
Each produced value is a modulo 1 of the sum of the previous value (or a seed) and the golden ratio. Values are uniformly distributed but appear in a predictable repeatable pattern where neighbor values can't appear one after another. This can be used for generating a diverse set of values, for example we can use generated values for hue in [HSL](https://en.wikipedia.org/wiki/HSL_and_HSV) for generating colors. Compare it to a plain `Math.random()`:
```js
element.style.backgroundColor = `hsl(${Math.round(randomValue * 360)}, 83%, 71%)`;
```
## API
### createGenerator(seed?: number): () => number
Create Golden ratio based number generator function.
Returns a function that will return a new number on each call.
* `seed` - A float number between 0 and 1. Default is a random number from Math.random()
## Acknowledgments
Inspired by [How To Generate Random Colors Programmatically](https://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/).
## License
MIT