drawable-chunks [ { } like ] map
] unit-test
-{ 0 } [ -10 10 middle ] unit-test
-{ 15 } [ 10 20 middle ] unit-test
-{ -81/2 } [ -50 -31 middle ] unit-test
-
{
{ { { 0 300 } { 1 200 } { 2 150 } { 3 100 } { 4 0 } } }
} [
monotonic-split-slice
] 2keep (drawable-chunks) ;
-: middle ( min max -- middle ) + 2 / ;
-
: flip-y-axis ( chunks ymin,ymax -- chunks )
- first2 middle 2 * '[ [ _ swap - ] assoc-map ] map ;
+ first2 + '[ [ _ swap - ] assoc-map ] map ;
! value' = (value - min) / (max - min) * width
: scale ( width value max min -- value' ) neg [ + ] curry bi@ / * ;