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)); }
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)); }