perlin_noise

A perlin noise shard written for Crystal. All credit goes to Spooner who wrote the original implementation.

perlin_noise

A Shard written for using Perlin Noise. Pretty much ripped word for word from Spooner's perlin_noise gem's C extension.

Installation

Add this to your application's shard.yml:

dependencies:
  perlin_noise:
    github: redcodefinal/perlin_noise

Usage

require "perlin_noise"

p = PerlinNoise.new(1234) #Seed the generator

#You can change the step, persistance, octave, offsets, etc
p.step = 0.4 #default is 0.123456
p.persistance = 0.4 # Default is 0.2
p.octave = 2.0 # Default is 1.0

#Generator can be used for a number of operations

#Simple Noise
p.noise(0)       #1d
p.noise(0, 1)    #2d
p.noise(0, 1, 2) #3d

#Height
p.height(0, 0, 10) #2d only, 3rd argument is maximum height

#Integer
#  Gets a random integer that can be gotten again with the same parameters.
p.int(0, 10, 20)       #1d, last two arguments are the lowest number and the highest number
p.int(0, 1, 10, 20)    #2d
p.int(0, 1, 2, 10, 20) #3d

#Float
#  Same as int but with floats instead.
p.float(0, 0.0, 1.0)
p.float(0, 1, 0.0, 5.0)
p.float(0, 1, 2, 1.0, 10.0)

#Bool
#  Gets you a boolean with controllable chance for a true.
#  bool(x, y, z, chance, outof)
p.bool(0, 1, 2, 1, 100) #Give a 1 out of 100 chance of being true.

#Item
#  Grabs an item out of an array. If the array changes, the output of this function may change.
a = [1, 2, 3, 4, 5, 6, 7, 8, "Bacon", "Taco", "Cat"]
p.item(0, a)
p.item(0, 1, a)
p.item(0, 1, 2, a)

Contributing

  1. Fork it ( https://github.com/redcodefinal/perlin_noise/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • redcodefinal Ian Rash - creator, maintainer
  • Spooner Bil Bas - Writter of the original rubygem, whose code he graciously let me rip off. Thanks man.
Repository

perlin_noise

Owner
Statistic
  • 7
  • 0
  • 0
  • 2
  • 0
  • over 3 years ago
  • November 3, 2016
License

MIT License

Links
Synced at

Thu, 07 Nov 2024 06:40:44 GMT

Languages