Skip to content

haydenhigg/attractors

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

attractors

Attractors in Rust. See Paul Bourke's site on Peter de Jong attractors for an explanation. All code is commented. This implementation is tested on *nix only.

compilation

rustc -C opt-level=3 main.rs

color functions

Three color functions are provided:

  • color::amber: monochromatic shades of amber on a white background
  • color::sparks: monochromatic shades of orange on a black background
  • color::heat: heat-map-inspired; black->blue->cyan->green->yellow->red->white
  • colors::viridis: accurate recreation of ColorBrewer's viridis
  • colors::blue_purple: black->blue->purple

The fourth argument to make_image_data in the file module takes a color function. Any function that fits

fn(u8) -> [u8; 3]

works (takes a density from 0-255 and returns [r, g, b]).


To see a test image for a color function, you can use the function

file::test_color(color: fn(u8) -> [u8; 3], file_name: &'static str) -> Result<()>

and get an image like this (for viridis):

sample for viridis

examples

to-do

  • add new attractor functions
  • allow for writing to more than just PPM

About

Strange attractors in Rust.

Topics

Resources

License

Stars

Watchers

Forks

Languages