Yesterday with Damien P., we had a great discussion about modeling color palettes. Damien showed me an implementation he did about cubehelix. This is a fantastic way to model colors, while preserving the intensity. More info about it on: https://www.mrao.cam.ac.uk/~dag/CUBEHELIX/
Here is a code example:
-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=
| v helix shape elements slider | v := RTView new. helix := RTCubeHelix new. helix rotations: 2. helix gamma: 2. shape := (RTBox new height: 300; width: 1; color: [ :model | helix level: model ]). elements := shape elementsOn: (0.0 to: 1.0 by: 0.002). v addAll: elements. RTHorizontalLineLayout new gapSize: 0; on: elements.
"Set the gamma value" slider := RTSlider new. slider view: v. slider labelled. slider callback: [ :aValue | helix gamma: 5 * aValue. elements updateShape ]. slider moveBelow. slider build.
"Set the rotation value" slider := RTSlider new. slider view: v. slider labelled. slider callback: [ :aValue | helix rotations: 5 * aValue. elements updateShape ]. slider moveBelow. slider build.