should work for any range :D

source: http://stackoverflow.com/questions/10364575/normalization-in-variable-range-x-y-in-matlab
This commit is contained in:
/Fox --develop
2017-03-01 01:21:53 -08:00
committed by GitHub
parent 315a52004f
commit 77ca90c8b4

View File

@@ -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