Closed sharkdp closed 4 years ago
Hello, @sharkdp.
Do you accept contributions? I can help with this issue. :blush:
Yes, I do.
I have implemented something like this in the past in a similar project (but in PureScript, not in Rust): https://github.com/sharkdp/purescript-colors/blob/master/src/Color/Scale.purs
We could use this as a starting point for the design of the new functionality. In particular, the way how a "color scale" is represented as a list of (color, position)
pairs where position
is a number between 0 and 1.
So the idea is to create a color scale using pairs of colors and positions. This will allow to position a color in the middle or close to others.
Evenly distributed:
0.0 0.5 1.0
#FF0000 #00FF00 #0000FF
Unevenly distributed:
0.0 0.25 1.0
#FF0000 #00FF00 #0000FF
After this, I can use the mixing function and compute the fraction to sample any given position in the color scale. With this new function, I can sample a gradient with multiple colors similar to the current gradient command implementation.
Is this right?
Yes, exactly :+1: