Allereerst: Ik weet dat javascript in Webdesign thuishoort, maar dit is meer een programmeer/algoritme vraag dan iets javascript-specifieks. De reden dat ik het vermeld is omdat ik dus ook geen toegang heb tot een ingebouwde seeded generator.
Ik ben bezig om een Perlin Noise functie te maken om procedureel textures te genereren voor een game. Deze site legt alle stappen zeer duidelijk uit, en de uiteindelijk code is niet zo heel moeilijk. Ik loop echter vast bij de functie die noise genereert.
Ik heb nu zelf de volgende javascript functie geschreven om aan de hand van de input een getal tussen de 0.0 en 1.0 te returnen (aangepast van de site om ipv [-1.0..1.0] [0.0..1.0] terug te geven):
Als ik de resultaten op een grafiek plot krijg ik dit resultaat:

De getallen zijn goed verdeeld tot aan n = 600. Hierna worden de nummers onzin, allemaal herhalingen.
Nu kan ik wel de input beperken met n %= 600, maar bij ook maar een beetje grote plaatjes zie je meteen patronen verschijnen. Ik snap de random functie niet goed genoeg om te zien hoe ik een groter bereik kan krijgen. Hoe kan ik een random reeks van bijvoorbeeld minstens 3000 getallen genereren?
Bovendien wil ik later meerdere reeksen kunnen creëeren. De site waar ik de informatie vandaan heb heeft het over de priem getallen variëeren, maar dan moet ik toch wel priem getallen uitzoeken van ongeveer dezelfde grootheid?
Ik heb al wat gezocht naar alternatieve bronnen, maar de meeste gaan uit van ingebouwde generators in andere talen of zijn volledige papers van wiskunde professoren die mij boven de pet gaan.
Ik ben bezig om een Perlin Noise functie te maken om procedureel textures te genereren voor een game. Deze site legt alle stappen zeer duidelijk uit, en de uiteindelijk code is niet zo heel moeilijk. Ik loop echter vast bij de functie die noise genereert.
Ik heb nu zelf de volgende javascript functie geschreven om aan de hand van de input een getal tussen de 0.0 en 1.0 te returnen (aangepast van de site om ipv [-1.0..1.0] [0.0..1.0] terug te geven):
JavaScript:
1
2
3
4
5
| function Noise(n) { n = (n << 13) ^ n; return ((n * (n * n * 15731 + 789221) + 1376312589) & 0x7fffffff) / 2147483648; } |
Als ik de resultaten op een grafiek plot krijg ik dit resultaat:

De getallen zijn goed verdeeld tot aan n = 600. Hierna worden de nummers onzin, allemaal herhalingen.
Nu kan ik wel de input beperken met n %= 600, maar bij ook maar een beetje grote plaatjes zie je meteen patronen verschijnen. Ik snap de random functie niet goed genoeg om te zien hoe ik een groter bereik kan krijgen. Hoe kan ik een random reeks van bijvoorbeeld minstens 3000 getallen genereren?
Bovendien wil ik later meerdere reeksen kunnen creëeren. De site waar ik de informatie vandaan heb heeft het over de priem getallen variëeren, maar dan moet ik toch wel priem getallen uitzoeken van ongeveer dezelfde grootheid?
Ik heb al wat gezocht naar alternatieve bronnen, maar de meeste gaan uit van ingebouwde generators in andere talen of zijn volledige papers van wiskunde professoren die mij boven de pet gaan.