]> gitweb.factorcode.org Git - factor.git/commitdiff
charts.lines: add scale
authorAlexander Iljin <ajsoft@yandex.ru>
Fri, 20 Jan 2017 00:44:02 +0000 (03:44 +0300)
committerJohn Benediktsson <mrjbq7@gmail.com>
Mon, 17 Apr 2017 20:54:51 +0000 (13:54 -0700)
lines/lines-tests.factor
lines/lines.factor

index d548eab50634d1f496b544c65dcbaf6941aaeeef..24301d318766aa4f6cd64ac9a7e5e6adf11c7815 100644 (file)
@@ -1,6 +1,6 @@
 ! Copyright (C) 2017 Alexander Ilin.
 
-USING: kernel sequences tools.test charts.lines
+USING: kernel math sequences tools.test charts.lines
 charts.lines.private ;
 IN: charts.lines.tests
 
@@ -231,6 +231,12 @@ IN: charts.lines.tests
     { 0 300 } flip-y-axis
 ] unit-test
 
+{
+    { 0 30 60 90 120 150 180 210 240 270 300 }
+} [
+    11 iota [ 10 + ] map [ 300 swap 20 10 scale ] map
+] unit-test
+
 { { } }
 [ { } { } clip-data ] unit-test
 
index 4b885c142c703db59b6c622290098cdf73a5d230..79d9e8bfba73928881748deb462a2055308b0616 100644 (file)
@@ -211,6 +211,9 @@ SYMBOL: elt
 : flip-y-axis ( chunks ymin,ymax -- chunks )
     first2 middle 2 * '[ [ first2 _ swap - 2array ] map ] map ;
 
+! value' = (value - min) / (max - min) * width
+: scale ( width value max min -- value' ) neg [ + ] curry bi@ / * ;
+
 PRIVATE>
 
 : draw-line ( seq -- )