diff --git a/modules/color.lua b/modules/color.lua index 148f5b3..e410e5f 100644 --- a/modules/color.lua +++ b/modules/color.lua @@ -2,6 +2,7 @@ -- @module color local modules = (...):gsub('%.[^%.]+$', '') .. "." +local constants = require(modules .. "constants") local utils = require(modules .. "utils") local precond = require(modules .. "_private_precond") local color = {} @@ -75,6 +76,11 @@ local function color_to_hsv(c) return { h, s, v, 1 } end + -- Prevent division by zero. + if delta == 0 then + delta = constants.DBL_EPSILON + end + if r == max then h = ( g - b ) / delta -- yellow/magenta elseif g == max then