Chaos game: Difference between revisions

Updates for modern Rust and some readability improvements
(Added Delphi example)
(Updates for modern Rust and some readability improvements)
Line 2,621:
=={{header|Rust}}==
Dependencies: image, rand
<lang rust>extern crate image;
extern crate image;
extern crate rand;
 
use stdrand::fsprelude::File*;
use rand::Rng;
use std::f32;
 
fn main() {
let max_iterations = 50_000u3250_000;
let img_side = 800u32800;
let tri_size = 400f32400.0;
 
// Create a new ImgBuf
Line 2,637:
 
// Create triangle vertices
let mut vertices: [[f32; 2]; 3] = [[0f320.0, 0f320.0]; 3];
for i in 0..vertices.len() {
vertices[i][0] = (img_side as f32 / 2.0)
(img_side as f32 / 2.) + (tri_size / 2.0) * (f32::consts::PI * i as f32 * 2.0 / 3.0).cos();
vertices[i][1] = (img_side as f32 / 2.0)
(img_side as f32 / 2.) + (tri_size / 2.0) * (f32::consts::PI * i as f32 * 2.0 / 3.0).sin();
}
for v in &vertices {
imgbuf.put_pixel(v[0] as u32, v[1] as u32, image::Luma([255u8]));
}
println!("Verticies: {:?}", vertices);
 
// Iterate chaos game
let mut rng = rand::weak_rngthread_rng();
let mut x = img_side as f32 / 2.0;
let mut y = img_side as f32 / 2.0;
for _ in 0..max_iterations {
let choice = rng.gen_range(0, ..vertices.len());
x = (x + vertices[choice][0]) / 2.0;
y = (y + vertices[choice][1]) / 2.0;
 
imgbuf.put_pixel(x as u32, y as u32, image::Luma([255u8]));
Line 2,661 ⟶ 2,662:
 
// Save image
let fout = &mut File::createimgbuf.save("fractal.png").unwrap();
}
image::ImageLuma8(imgbuf).save(fout, image::PNG).unwrap();
}</lang>
 
=={{header|Scala}}==
Anonymous user