Barnsley fern: Difference between revisions

Content deleted Content added
Petelomax (talk | contribs)
Add Rust implementation
Line 1,475: Line 1,475:
render #g
render #g
#g "flush"</lang>
#g "flush"</lang>

=={{header|Rust}}==
{{trans|Java}}

<lang rust>extern crate rand;
extern crate raster;

use rand::Rng;

fn main() {
let max_iterations = 200_000u32;
let height = 640i32;
let width = 640i32;

let mut rng = rand::thread_rng();
let mut image = raster::Image::blank(width, height);
raster::editor::fill(&mut image, raster::Color::white()).unwrap();

let mut x = 0.;
let mut y = 0.;
for _ in 0..max_iterations {
let r = rng.gen::<f32>();
let cx: f64;
let cy: f64;

if r <= 0.01 {
cx = 0f64;
cy = 0.16 * y as f64;
} else if r <= 0.08 {
cx = 0.2 * x as f64 - 0.26 * y as f64;
cy = 0.23 * x as f64 + 0.22 * y as f64 + 1.6;
} else if r <= 0.15 {
cx = -0.15 * x as f64 + 0.28 * y as f64;
cy = 0.26 * x as f64 + 0.26 * y as f64 + 0.44;
} else {
cx = 0.85 * x as f64 + 0.04 * y as f64;
cy = -0.04 * x as f64 + 0.85 * y as f64 + 1.6;
}
x = cx;
y = cy;

let _ = image.set_pixel(
((width as f64) / 2. + x * (width as f64) / 11.).round() as i32,
((height as f64) - y * (height as f64) / 11.).round() as i32,
raster::Color::rgb(50, 205, 50));
}

raster::save(&image, "fractal.png").unwrap();
}</lang>


=={{header|Scheme}}==
=={{header|Scheme}}==