mirror of
https://github.com/PolyhedralDev/Terra.git
synced 2026-02-16 10:30:42 +00:00
21 lines
913 B
Java
21 lines
913 B
Java
package com.dfsek.terra.math;
|
|
|
|
import com.dfsek.terra.generation.Sampler;
|
|
|
|
public final class MathUtil {
|
|
private static final double CONST = 0.55;
|
|
|
|
public static double derivative(Sampler sampler, double x, double y, double z) {
|
|
double baseSample = sampler.sample(x, y, z);
|
|
|
|
double xVal1 = (sampler.sample(x + CONST, y, z) - baseSample) / CONST;
|
|
double xVal2 = (sampler.sample(x - CONST, y, z) - baseSample) / CONST;
|
|
double zVal1 = (sampler.sample(x, y, z + CONST) - baseSample) / CONST;
|
|
double zVal2 = (sampler.sample(x, y, z - CONST) - baseSample) / CONST;
|
|
double yVal1 = (sampler.sample(x, y + CONST, z) - baseSample) / CONST;
|
|
double yVal2 = (sampler.sample(x, y - CONST, z) - baseSample) / CONST;
|
|
|
|
return Math.sqrt(((xVal2 - xVal1) * (xVal2 - xVal1)) + ((zVal2 - zVal1) * (zVal2 - zVal1)) + ((yVal2 - yVal1) * (yVal2 - yVal1)));
|
|
}
|
|
}
|