From e2d78f42d06c3b552bbf4ee47db0e3f94df0ead5 Mon Sep 17 00:00:00 2001 From: logaritmisk Date: Thu, 1 Sep 2016 08:45:50 +0200 Subject: [PATCH] Use same value for spread as lolcat. --- src/main.rs | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/src/main.rs b/src/main.rs index 47a7719..54f9484 100644 --- a/src/main.rs +++ b/src/main.rs @@ -9,15 +9,15 @@ use rand::{thread_rng, Rng}; use ansi_term::Colour::RGB; fn main() { - let r = thread_rng().gen_range(0, 256); + let mut s = thread_rng().gen_range(0.0, 256.0); let stdin = io::stdin(); - for (n, line) in stdin.lock().lines().enumerate() { - let line = line.unwrap(); + for line in stdin.lock().lines() { + s += 0.8; - for (o, c) in line.chars().enumerate() { - let (red, green, blue) = rainbow(0.1, r + n + o); + for (n, c) in line.unwrap().chars().enumerate() { + let (red, green, blue) = rainbow(0.1, s + n as f32); print!("{}", RGB(red, green, blue).paint(c.to_string())); } @@ -26,10 +26,10 @@ fn main() { } } -fn rainbow(frec: f32, i: usize) -> (u8, u8, u8) { - let red = (f32::sin(frec * i as f32) * 127.0 + 128.0) as u8; - let green = (f32::sin(frec * i as f32 + 2.0 * PI / 3.0) * 127.0 + 128.0) as u8; - let blue = (f32::sin(frec * i as f32 + 4.0 * PI / 3.0) * 127.0 + 128.0) as u8; +fn rainbow(frec: f32, i: f32) -> (u8, u8, u8) { + let red = (f32::sin(frec * i) * 127.0 + 128.0) as u8; + let green = (f32::sin(frec * i + 2.0 * PI / 3.0) * 127.0 + 128.0) as u8; + let blue = (f32::sin(frec * i + 4.0 * PI / 3.0) * 127.0 + 128.0) as u8; (red, green, blue) }