Height map 2
by dirkk0
HTML
<script src="http://yourjavascript.com/12191331314/simplex.js"></script>
<input id="nr" value="1" size="3"><button type="button" onclick="run()">Number of repeats</button>
<br>
<br>
<div id="noise"></div>
JavaScript
window.run = function() {
var r = noise();
var b = document.getElementById("noise");
b.innerHTML = '';
b.style.display = 'inline-block';
for (var x = 0; x < r.length; x++) {
var e = document.createElement('div');
for (var y = 0; y < r[0].length; y++) {
var d = document.createElement('div');
var c = ~~(r[x][y] * 255);
if (r[x][y] >= 0) {
d.style.backgroundColor = '#0000ff';
} else {
d.style.backgroundColor = '#00ff00';
}
d.innerHtml = '&nbps;'
d.style.width = '5px';
d.style.height = '5px';
d.style.float = 'left'
e.appendChild(d);
}
b.appendChild(e);
//b.innerHtml += '<br>'
}
}
function noise() {
var grid = [];
var reps = parseInt(document.getElementById('nr').value);
var lvl = 0.0045;
var _width = 75;
var _height = 75;
var simplex = new SimplexNoise({
octaves: 20,
persistence: 0.4
});
for (var x = 0; x < _width; x++) {
grid[x] = [];
for (var y = 0; y < _height; y++) {
var fRds = _width / reps;
var fNX = x / fRds;
var fNY = y / fRds;
var fRdx = fNX * 2 * Math.PI;
var fRdy = fNY * 2 * Math.PI;
var a = fRds * Math.sin(fRdx);
var b = fRds * Math.cos(fRdx);
var c = fRds * Math.sin(fRdy);
var d = fRds * Math.cos(fRdy);
var n = 1.1 * simplex.noise(a * lvl, b * lvl, c * lvl, d * lvl);
//between -10000 and 9000
grid[x][y] = ~~((n * 19000) - 10000)
}
}
return grid;
}
run();
function SimplexNoise(t) {
var e = t || {};
e.rng = e.rng || Math, e.octaves = e.octaves || 5, e.persistence = e.persistence || .2, e.level = t.level || .005, this.level = e.level;
var n, r, o, i, s, a, f, h, l, u, c, M, v, p, g, d, m, b, q, S, w, x, N, k, D, G, R, j, y, T, z, A, B, C, E, F, H, I, J, K, L, O, P, Q, U, V, W, X, Y, Z, $, _, te, ee, ne, re, oe, ie, se, ae, fe, he, le, ue, ce, Me, ve, pe = .5 * (Math.sqrt(3) - 1),
ge = (3 - Math.sqrt(3)) / 6,
de = 2 * ge...