From 77ca90c8b46ba111cf781ddc1dbc1ebf6ec69e84 Mon Sep 17 00:00:00 2001 From: /Fox --develop Date: Wed, 1 Mar 2017 01:21:53 -0800 Subject: [PATCH] should work for any range :D source: http://stackoverflow.com/questions/10364575/normalization-in-variable-range-x-y-in-matlab --- init.lua | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/init.lua b/init.lua index bd09054..3c513fe 100644 --- a/init.lua +++ b/init.lua @@ -28,24 +28,11 @@ local function create(width, height, f, rangeMin, rangeMax) local map = heightmap.create(width, height, f) local minimum = min(map) - local maximum = max(map) - - --[[ - -- if minimum is below zero, + everything till minimum is zero - if minimum < 0 then - for i=0,#map do - for j=0,#map[0] do - map[i][j] = map[i][j] - minimum - end - end - end - --]] - - -- normalize range of values to desired range + local initialRange = max(map) - minimum + local finalRange = rangeMax - rangeMin for i=0,#map do for j=0,#map[0] do - --floor(map[i][j] * NEW_MAX_VALUE / maximum) - map[i][j] = (map[i][j] - minimum) / (maximum - minimum) + map[i][j] = (map[i][j] - minimum) / initialRange * finalRange + rangeMin end end