mirror of
https://github.com/TangentFoxy/heightmap.git
synced 2026-07-21 21:46:52 -06:00
WIP #3 export normalize function
This commit is contained in:
+17
-14
@@ -24,6 +24,20 @@ local function max(t)
|
|||||||
return r
|
return r
|
||||||
end
|
end
|
||||||
|
|
||||||
|
local function normalize(map, new_min, new_max)
|
||||||
|
local minimum = min(map)
|
||||||
|
local initialRange = max(map) - minimum
|
||||||
|
local finalRange = new_max - new_min
|
||||||
|
for i = 0, #map do
|
||||||
|
for j = 0, #map[0] do
|
||||||
|
map[i][j] = (map[i][j] - minimum) / initialRange * finalRange + new_min
|
||||||
|
end
|
||||||
|
end
|
||||||
|
map.min = min(map)
|
||||||
|
map.max = max(map)
|
||||||
|
return map -- superfluous
|
||||||
|
end
|
||||||
|
|
||||||
local function create(width, height, f_or_min, min_or_max, max_if_f)
|
local function create(width, height, f_or_min, min_or_max, max_if_f)
|
||||||
local map, rangeMin, rangeMax
|
local map, rangeMin, rangeMax
|
||||||
if type(f_or_min) == "function" then
|
if type(f_or_min) == "function" then
|
||||||
@@ -36,22 +50,11 @@ local function create(width, height, f_or_min, min_or_max, max_if_f)
|
|||||||
rangeMax = min_or_max
|
rangeMax = min_or_max
|
||||||
end
|
end
|
||||||
|
|
||||||
local minimum = min(map)
|
return normalize(map, rangeMin, rangeMax)
|
||||||
local initialRange = max(map) - minimum
|
|
||||||
local finalRange = rangeMax - rangeMin
|
|
||||||
for i=0,#map do
|
|
||||||
for j=0,#map[0] do
|
|
||||||
map[i][j] = (map[i][j] - minimum) / initialRange * finalRange + rangeMin
|
|
||||||
end
|
|
||||||
end
|
|
||||||
|
|
||||||
map.min = min(map)
|
|
||||||
map.max = max(map)
|
|
||||||
|
|
||||||
return map
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return {
|
return {
|
||||||
create = create,
|
create = create,
|
||||||
defaultf = heightmap.defaultf
|
defaultf = heightmap.defaultf,
|
||||||
|
normalize = normalize,
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user