Use same value for spread as lolcat.
This commit is contained in:
18
src/main.rs
18
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)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user