Skip to main content

samples

Function samples 

Source
pub fn samples(n: usize) -> Vec<f64>
Expand description

Returns n evenly spaced values in [0, 1] (linear, γ = 1).

Edge cases (matching culori exactly):

  • n == 0 returns an empty vector.
  • n == 1 returns [0.5].
  • n >= 2 returns [0, 1/(n-1), 2/(n-1), …, 1].

Pair with crate::interpolate() to drive evenly spaced ramp generation:

use culors::{interpolate, parse, samples};
let a = parse("oklch(70% 0.15 30deg)").unwrap();
let b = parse("oklch(70% 0.15 200deg)").unwrap();
let ramp = interpolate(&[a, b], "oklab");
let stops: Vec<_> = samples(11).into_iter().map(ramp).collect();
assert_eq!(stops.len(), 11);