< index
< 10. Noise generator
< 10.1 Creating a noise generator

=====================================
10.2 Getting Perlin noise
=====================================

> 10.3 Getting simplex noise
This function returns the perlin noise function value between -1.0 and 1.0 at given coordinates.

C++ : float TCODNoise::getPerlin(float *f) const
C   : float TCOD_noise_perlin(TCOD_noise_t noise, float *f)
Py  : noise_perlin(noise, f)

ParameterDescription
noiseIn the C version, the generator handler, returned by the initialization function.
fAn array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.

Example :

C++ : // 1d noise
      TCODNoise * noise1d = new TCODNoise(1);
      float p=0.5f;
      float value = noise1d->getPerlin(&p);
      // 2d noise
      TCODNoise * noise2d = new TCODNoise(2);
      float p[2]={0.5f,0.7f};
      float value = noise2d->getPerlin(p);
C   : /* 1d noise */
      TCOD_noise_t noise1d = TCOD_noise_new(1,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p=0.5f;
      float value = TCOD_noise_perlin(noise1d,&p);
      /* 2d noise */
      TCOD_noise_t noise2d = TCOD_noise_new(2,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p[2]={0.5f,0.7f};
      float value = TCOD_noise_perlin(noise2d,p);
Py  : # 1d noise 
      noise1d = libtcod.noise_new(1)
      value = libtcod.noise_perlin(noise1d,[0.5])
      # 2d noise
      noise2d = libtcod.noise_new(2)
      value = libtcod.noise_perlin(noise2d,[0.5,0.7])


This function returns the fbm function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.

C++ : float TCODNoise::getFbmPerlin(float *f, float octaves) const
C   : float TCOD_noise_fbm_perlin(TCOD_noise_t noise, float *f, float octaves)
Py  : noise_fbm_perlin(noise, f, octaves)

ParameterDescription
noiseIn the C version, the generator handler, returned by the initialization function.
fAn array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.
octavesNumber of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128

Example :

C++ : // 1d fbm
      TCODNoise * noise1d = new TCODNoise(1);
      float p=0.5f;
      float value = noise1d->getFbmPerlin(&p,32.0f);
      // 2d fbm
      TCODNoise * noise2d = new TCODNoise(2);
      float p[2]={0.5f,0.7f};
      float value = noise2d->getFbmPerlin(p,32.0f);
C   : /* 1d fbm */
      TCOD_noise_t noise1d = TCOD_noise_new(1,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p=0.5f;
      float value = TCOD_noise_fbm_perlin(noise1d,&p,32.0f);
      /* 2d fbm */
      TCOD_noise_t noise2d = TCOD_noise_new(2,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p[2]={0.5f,0.7f};
      float value = TCOD_noise_fbm_perlin(noise2d,p,32.0f);
Py  : # 1d noise 
      noise1d = libtcod.noise_new(1)
      value = libtcod.noise_fbm_perlin(noise1d,[0.5],32.0)
      # 2d noise
      noise2d = libtcod.noise_new(2)
      value = libtcod.noise_fbm_perlin(noise2d,[0.5,0.7],32.0)


This function returns the turbulence function value between -1.0 and 1.0 at given coordinates, using fractal hurst and lacunarity defined when the generator has been created.

C++ : float TCODNoise::getTurbulencePerlin(float *f, float octaves) const
C   : float TCOD_noise_turbulence_perlin(TCOD_noise_t noise, float *f, float octaves)
Py  : noise_turbulence_perlin(noise, f, octaves)

ParameterDescription
noiseIn the C version, the generator handler, returned by the initialization function.
fAn array of coordinates, depending on the generator dimensions (between 1 and 4). The same array of coordinates will always return the same value.
octavesNumber of iterations. Must be < TCOD_NOISE_MAX_OCTAVES = 128

Example :

C++ : // 1d fbm
      TCODNoise * noise1d = new TCODNoise(1);
      float p=0.5f;
      float value = noise1d->getTurbulencePerlin(&p,32.0f);
      // 2d fbm
      TCODNoise * noise2d = new TCODNoise(2);
      float p[2]={0.5f,0.7f};
      float value = noise2d->getTurbulencePerlin(p,32.0f);
C   : /* 1d fbm */
      TCOD_noise_t noise1d = TCOD_noise_new(1,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p=0.5f;
      float value = TCOD_noise_turbulence_perlin(noise1d,&p,32.0f);
      /* 2d fbm */
      TCOD_noise_t noise2d = TCOD_noise_new(2,TCOD_NOISE_DEFAULT_HURST, TCOD_NOISE_DEFAULT_LACUNARITY,NULL);
      float p[2]={0.5f,0.7f};
      float value = TCOD_noise_turbulence_perlin(noise2d,p,32.0f);
Py  : # 1d noise 
      noise1d = libtcod.noise_new(1)
      value = libtcod.noise_turbulence_perlin(noise1d,[0.5],32.0)
      # 2d noise
      noise2d = libtcod.noise_new(2)
      value = libtcod.noise_turbulence_perlin(noise2d,[0.5,0.7],32.0)

insert a comment