diff --git a/Zframework/color.lua b/Zframework/color.lua index 5905af17..94a0c4d6 100644 --- a/Zframework/color.lua +++ b/Zframework/color.lua @@ -1,63 +1,80 @@ +local abs=math.abs +local function hsv(h,s,v,a) + if s<=0 then return v,v,v end + h=h*6 + local c=v*s + local x=abs((h-1)%2-1)*c + if h<1 then return v,x+v-c,v-c,a + elseif h<2 then return x+v-c,v,v-c,a + elseif h<3 then return v-c,v,x+v-c,a + elseif h<4 then return v-c,x+v-c,v,a + elseif h<5 then return x+v-c,v-c,v,a + else return v,v-c,x+v-c,a + end +end + local COLOR={ - red= {.92, .12, .12}, - fire= {.92, 0.4, .12}, - orange= {.92, 0.6, .12}, - yellow= {.92, .92, .12}, - lime= {0.7, .92, .12}, - jade= {0.5, .92, .12}, - green= {.12, .92, .12}, - aqua= {.12, .92, 0.6}, - cyan= {.12, .92, .92}, - navy= {.12, 0.7, .92}, - sea= {.12, 0.4, .92}, - blue= {0.2, 0.2, .92}, - violet= {0.4, .12, .92}, - purple= {0.7, .12, .92}, - magenta= {.92, .12, .92}, - wine= {.92, .12, 0.5}, + hsv=hsv, - lRed= {.95, 0.5, 0.5}, - lFire= {.95, 0.7, 0.5}, - lOrange= {.95, 0.8, 0.3}, - lYellow= {.95, .95, 0.5}, - lLime= {0.8, .95, 0.4}, - lJade= {0.6, .95, 0.4}, - lGreen= {0.5, .95, 0.5}, - lAqua= {0.4, .95, 0.7}, - lCyan= {0.5, .95, .95}, - lNavy= {0.4, .85, .95}, - lSea= {0.5, 0.7, .95}, - lBlue= {0.7, 0.7, .95}, - lViolet= {0.7, 0.4, .95}, - lPurple= {0.8, 0.4, .95}, - lMagenta={.95, 0.5, .95}, - lWine= {.95, 0.4, 0.7}, + red= {hsv(0, .85,.85)}, + fire= {hsv(0.0625,.85,.85)}, + orange= {hsv(0.125, .85,.85)}, + yellow= {hsv(0.1875,.85,.85)}, + lime= {hsv(0.25, .85,.85)}, + jade= {hsv(0.3125,.85,.85)}, + green= {hsv(0.375, .85,.85)}, + aqua= {hsv(0.4375,.85,.85)}, + cyan= {hsv(0.5, .85,.85)}, + navy= {hsv(0.5625,.85,.85)}, + sea= {hsv(0.625, .85,.85)}, + blue= {hsv(0.6875,.85,.85)}, + violet= {hsv(0.75, .85,.85)}, + purple= {hsv(0.8125,.85,.85)}, + magenta= {hsv(0.875, .85,.85)}, + wine= {hsv(0.9375,.85,.85)}, - dRed= {0.6, .08, .08}, - dFire= {0.6, 0.3, .08}, - dOrange= {0.6, 0.4, .08}, - dYellow= {0.6, 0.6, .08}, - dLime= {0.5, 0.6, .08}, - dJade= {0.3, 0.6, .08}, - dGreen= {.08, 0.6, .08}, - dAqua= {.08, 0.6, 0.4}, - dCyan= {.08, 0.6, 0.6}, - dNavy= {.08, 0.4, 0.6}, - dSea= {.08, 0.2, 0.6}, - dBlue= {0.1, 0.1, 0.6}, - dViolet= {0.2, .08, 0.6}, - dPurple= {0.4, .08, 0.6}, - dMagenta={0.6, .08, 0.6}, - dWine= {0.6, .08, 0.3}, + lRed= {hsv(0, .5,.95)}, + lFire= {hsv(0.0625,.5,.95)}, + lOrange= {hsv(0.125, .5,.95)}, + lYellow= {hsv(0.1875,.5,.95)}, + lLime= {hsv(0.25, .5,.95)}, + lJade= {hsv(0.3125,.5,.95)}, + lGreen= {hsv(0.375, .5,.95)}, + lAqua= {hsv(0.4375,.5,.95)}, + lCyan= {hsv(0.5, .5,.95)}, + lNavy= {hsv(0.5625,.5,.95)}, + lSea= {hsv(0.625, .5,.95)}, + lBlue= {hsv(0.6875,.5,.95)}, + lViolet= {hsv(0.75, .5,.95)}, + lPurple= {hsv(0.8125,.5,.95)}, + lMagenta={hsv(0.875, .5,.95)}, + lWine= {hsv(0.9375,.5,.95)}, - black= {.05, .05, .05}, - dGray= {0.3, 0.3, 0.3}, - gray= {0.6, 0.6, 0.6}, - lGray= {0.8, 0.8, 0.8}, - white= {.97, .97, .97}, + dRed= {hsv(0, .9,.5)}, + dFire= {hsv(0.0625,.9,.5)}, + dOrange= {hsv(0.125, .9,.5)}, + dYellow= {hsv(0.1875,.9,.5)}, + dLime= {hsv(0.25, .9,.5)}, + dJade= {hsv(0.3125,.9,.5)}, + dGreen= {hsv(0.375, .9,.5)}, + dAqua= {hsv(0.4375,.9,.5)}, + dCyan= {hsv(0.5, .9,.5)}, + dNavy= {hsv(0.5625,.9,.5)}, + dSea= {hsv(0.625, .9,.5)}, + dBlue= {hsv(0.6875,.9,.5)}, + dViolet= {hsv(0.75, .9,.5)}, + dPurple= {hsv(0.8125,.9,.5)}, + dMagenta={hsv(0.875, .9,.5)}, + dWine= {hsv(0.9375,.9,.5)}, + + black= {hsv(0,0,.05)}, + dGray= {hsv(0,0,0.3)}, + gray= {hsv(0,0,0.6)}, + lGray= {hsv(0,0,0.8)}, + white= {hsv(0,0,.97)}, } for k,v in next,{ - R='red', F='fire', O='orange', Y='yellow', L='lime', J='jade', G='green', A='aqua', C='cyan', N='navy', S='sea', B='blue', V='violet', P='purple', M='magenta', W='wine', + R='red', F='fire', O='orange', Y='yellow', L='lime', J='jade', G='green', A='aqua', C='cyan', N='navy', S='sea', B='blue', V='violet', P='purple', M='magenta', W='wine', lR='lRed',lF='lFire',lO='lOrange',lY='lYellow',lL='lLime',lJ='lJade',lG='lGreen',lA='lAqua',lC='lCyan',lN='lNavy',lS='lSea',lB='lBlue',lV='lViolet',lP='lPurple',lM='lMagenta',lW='lWine', dR='dRed',dF='dFire',dO='dOrange',dY='dYellow',dL='dLime',dJ='dJade',dG='dGreen',dA='dAqua',dC='dCyan',dN='dNavy',dS='dSea',dB='dBlue',dV='dViolet',dP='dPurple',dM='dMagenta',dW='dWine', D='black',dH='dGray',H='gray',lH='lGray',Z='white',