public static double noise2D(double x, double y) { double fx = Math.floor(x); double fy = Math.floor(y); double u, v; int ix = ((int) fx) & 0xFF; int iy = ((int) fy) & 0xFF; x -= fx; y -= fy; int i = p[ix]; int j = p[ix + 1]; u = fade(x); v = fade(y); double grad1 = grad(p[i + iy], x, y); double grad2 = grad(p[j + iy], x - 1, y); double grad3 = grad(p[i + iy + 1], x, y - 1); double grad4 = grad(p[j + iy + 1], x - 1, y - 1); return lerp(v, lerp(u, grad1, grad2), lerp(u, grad3, grad4)); }
protected void transform(int x, int y, double[] t) { int d = limitByte((int) (127 * (1 + PerlinNoise.noise2D(((double) x) / scale + randomX, ((double) y) / scale + randomY)))); t[0] = x + tx[d]; t[1] = y + ty[d]; }
public static double noise2D(double x, double y) { double fx = Math.floor(x); double fy = Math.floor(y); double u, v; int ix = ((int) fx) & 0xFF; int iy = ((int) fy) & 0xFF; x -= fx; y -= fy; int i = p[ix]; int j = p[ix + 1]; u = fade(x); v = fade(y); double grad1 = grad(p[i + iy], x, y); double grad2 = grad(p[j + iy], x - 1, y); double grad3 = grad(p[i + iy + 1], x, y - 1); double grad4 = grad(p[j + iy + 1], x - 1, y - 1); return lerp(v, lerp(u, grad1, grad2), lerp(u, grad3, grad4)); }
protected void filter2(int[] inPixels, int[] outPixels, int width, int height) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int pixel = limitByte((int) (127 * (1 + PerlinNoise.noise2D(((double) x) / scale + randomX, ((double) y) / scale + randomY)))); outPixels[x + y * width] = (limitByte((int) 255) << 24) | (limitByte((int) pixel) << 16) | (limitByte((int) pixel) << 8) | (limitByte((int) pixel)); } } }
@Override protected void transform(int x, int y, double[] t) { int d = limitByte((int) (127 * (1 + PerlinNoise.noise2D(((double) x) / scale + randomX, ((double) y) / scale + randomY)))); t[0] = x + tx[d]; t[1] = y + ty[d]; }
protected void filter2(int[] inPixels, int[] outPixels, int width, int height) { for (int y = 0; y < height; y++) { for (int x = 0; x < width; x++) { int pixel = limitByte((int) (127 * (1 + PerlinNoise.noise2D(((double) x) / scale + randomX, ((double) y) / scale + randomY)))); outPixels[x + y * width] = (limitByte((int) 255) << 24) | (limitByte((int) pixel) << 16) | (limitByte((int) pixel) << 8) | (limitByte((int) pixel)); } } }