From a2c9fe6700c1fbec23e555bee8fe7a0f2e87cc16 Mon Sep 17 00:00:00 2001 From: Adrian Zankich Date: Wed, 26 Mar 2014 22:24:45 -0700 Subject: [PATCH] Add scale functions --- utils.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/utils.go b/utils.go index 73d214c92..3e090ad6a 100644 --- a/utils.go +++ b/utils.go @@ -4,6 +4,7 @@ import ( "encoding/json" "github.com/tarm/goserial" "io" + "math" "math/rand" "net" "reflect" @@ -100,3 +101,18 @@ func toJson(obj interface{}) string { b, _ := json.Marshal(obj) return string(b) } + +func FromScale(input, min, max float64) float64 { + return (input - math.Min(min, max)) / (math.Max(min, max) - math.Min(min, max)) +} + +func ToScale(input, min, max float64) float64 { + i := input*(math.Max(min, max)-math.Min(min, max)) + math.Min(min, max) + if i < math.Min(min, max) { + return math.Min(min, max) + } else if i > math.Max(min, max) { + return math.Max(min, max) + } else { + return i + } +}