this is epic - remove the complexity
This commit is contained in:
17
src/main.rs
17
src/main.rs
@@ -102,20 +102,6 @@ impl Mandlebrot {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fn get_pixel_color(&self, x: u32, y: u32) -> u32 {
|
fn get_pixel_color(&self, x: u32, y: u32) -> u32 {
|
||||||
let lerp = |a: u8, b: u8, t: f32| -> u8 {
|
|
||||||
let (x, y) = match (a as f32, b as f32) {
|
|
||||||
(a, b) if a < b => (a, b),
|
|
||||||
(a, b) => (b, a),
|
|
||||||
};
|
|
||||||
(x + (y - x) * t.clamp(0.0, 1.0)).round() as u32 as u16 as u8
|
|
||||||
};
|
|
||||||
|
|
||||||
let lerp_col = |a: (u8, u8, u8), b: (u8, u8, u8), t: f32| -> (u8, u8, u8) {
|
|
||||||
let res = (lerp(a.0, b.0, t), lerp(a.1, b.1, t), lerp(a.2, b.2, t));
|
|
||||||
println!("{:?} between {:?} and {:?} is {:?}", t, a, b, res);
|
|
||||||
res
|
|
||||||
};
|
|
||||||
|
|
||||||
let cyclic_shading = |value: u32, upper: u32| -> (u8, u8, u8) {
|
let cyclic_shading = |value: u32, upper: u32| -> (u8, u8, u8) {
|
||||||
let scaled_v: u8 = ((value * upper) / 255) as u8;
|
let scaled_v: u8 = ((value * upper) / 255) as u8;
|
||||||
(scaled_v, scaled_v, scaled_v)
|
(scaled_v, scaled_v, scaled_v)
|
||||||
@@ -126,9 +112,6 @@ impl Mandlebrot {
|
|||||||
None => 0,
|
None => 0,
|
||||||
Some((count, _z)) => {
|
Some((count, _z)) => {
|
||||||
let col = cyclic_shading(count, self.max_iterations);
|
let col = cyclic_shading(count, self.max_iterations);
|
||||||
let col1 = cyclic_shading(count + 1, self.max_iterations);
|
|
||||||
let lerp_factor: f32 = ((count as f32) / (self.max_iterations as f32));
|
|
||||||
let col = lerp_col(col, col1, lerp_factor);
|
|
||||||
(col.0 as u32) << 16 | (col.1 as u32) << 8 | col.2 as u32
|
(col.0 as u32) << 16 | (col.1 as u32) << 8 | col.2 as u32
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user