Compare commits

..

2 Commits

Author SHA1 Message Date
MOISOIU Stefan-Mihai
dbafa23b4d Merge branch 'main' of https://titi.koxi.nl/blodat/projet-dev 2026-03-16 16:47:33 +01:00
MOISOIU Stefan-Mihai
7639df7abd fix niveaux 2026-03-16 16:47:27 +01:00
3 changed files with 28 additions and 7 deletions

View File

@@ -20,27 +20,27 @@ public class GestionnaireNiveau {
// Niveau 1
niveaux.add(new Niveau(1,
new Color(112, 158, 251),
8, 1 / 80.0, 70, 100, 500));
8, 1 / 30.0, 60, 0, 600));
// Niveau 2
niveaux.add(new Niveau(2,
new Color(187, 138, 255),
10, 1 / 60.0, 60, 100, 500));
10, 1 / 25.0, 55, 0, 600));
// Niveau 3
niveaux.add(new Niveau(3,
new Color(255, 106, 132),
11, 1 / 50.0, 55, 100, 500));
11, 1 / 20.0, 50, 0, 600));
// Niveau 4
niveaux.add(new Niveau(4,
new Color(191, 255, 207),
12, 1 / 40.0, 50, 100, 500));
12, 1 / 17.0, 47, 0, 600));
// Niveau 5
niveaux.add(new Niveau(5,
new Color(251, 233, 144),
13, 1 / 35.0, 45, 100, 500));
13, 1 / 15.0, 45, 100, 600));
}
public void mettreAJour() {

View File

@@ -78,7 +78,7 @@ public class Ligne extends ObjetGraphique {
double limiteBas = gestionnaireNiveau.getLimiteBas();
double hauteur = limiteBas - limiteHaut;
double bruit = noiseGenerator.noise(noisePos);
double bruit = noiseGenerator.noise(noisePos, 1);
double normalise = (bruit + 1) / 2;
return limiteBas - normalise * hauteur;

View File

@@ -109,11 +109,32 @@ public class NoiseGenerator {
return value / initialSize;
}
/**
* Noise 1D avec nombre d'octaves controle.
* 1 octave = lisse, utilise tout le range [-1, 1].
* Plus d'octaves = plus de detail/jitter, mais converge vers 0.
*/
public double noise(double x, int octaves) {
double value = 0.0;
double size = default_size;
double weightSum = 0;
int count = 0;
while (size >= 1 && count < octaves) {
value += smoothNoise((x / size), (x / size), (x / size)) * size;
weightSum += size;
size /= 2.0;
count++;
}
return value / weightSum;
}
public double smoothNoise(double x, double y, double z) {
// Offset each coordinate by the seed value
x += this.seed;
y += this.seed;
x += this.seed;
z += this.seed;
int X = (int) Math.floor(x) & 255; // FIND UNIT CUBE THAT
int Y = (int) Math.floor(y) & 255; // CONTAINS POINT.