- Notifications
You must be signed in to change notification settings - Fork 305
Open
Labels
bugSomething isn't workingSomething isn't working
Description
Describe the bug
Drawing with HSLColor(hue, 1.0, 0.5) produces a solid red image regardless of hue.
Expected behaviour: hue 0 -> red, 120 -> green, 240 -> blue (smooth gradient).
Environment
| Item | Value |
|---|---|
| Plotters version | 0.3.7 |
| Rust version | 1.86.0 |
| OS / Toolchain | Windows 11 |
I'm pulling from cargo.
To Reproduce
use plotters::prelude::*; use plotters::style::HSLColor; fn main() -> Result<(), Box<dyn std::error::Error>> { let root = BitMapBackend::new("hsl_test_output.png", (200, 200)).into_drawing_area(); root.fill(&WHITE)?; // sweep hue 0° (red) -> 240° (blue) horizontally for x in 0..200 { let hue = 240.0 * x as f64 / 200.0; let color = HSLColor(hue, 1.0, 0.5); for y in 0..200 { root.draw_pixel((x as i32, y as i32), &color)?; } } root.present()?; Ok(()) }Actual output:
Expected output
The same sweep converted manually HSL -> RGB shows the full spectrum:
import numpy as np, matplotlib.pyplot as plt, colorsys, imageio.v3 as iio w = 200 img = np.zeros((w, w, 3), dtype=np.uint8) for x in range(w): hue = 240.0 * x / w / 360.0 # hue in [0,1] r, g, b = colorsys.hls_to_rgb(hue, 0.5, 1.0) img[:, x] = (np.array([r, g, b]) * 255).astype(np.uint8) iio.imwrite("expected_hsl_gradient.png", img)Metadata
Metadata
Assignees
Labels
bugSomething isn't workingSomething isn't working

