HELP Help help w "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",! w " COLORLIB",! w "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",!,! w " - ColorToRGB(Color,Hex)",! w " - RGBToColor(R,G,B)",! w " - RGBToHLS(R,G,B)",! w " - HLSToRGB(H,L,S)",!,! w "~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~",! Quit // Kleur routine lib // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : ColorToRGB // Author : Manuel Bauwens // Function: converteert een kleur(makova style) naar een RGB waarde // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ColorToRGB(Color,Hex) New R, G, B Set (R,G,B)=0 For Quit:(Color-65536)<0 Do . Set Color=Color-65536 . Set B=B+1 For Quit:(Color-256)<0 Do . Set Color=Color-256 . Set G=G+1 Set R=Color Set:$G(Hex) R=$ZH(R),G=$ZH(G),B=$ZH(B) Set:R=0 R=$S($G(Hex):"00",1:"000") Set:G=0 G=$S($G(Hex):"00",1:"000") Set:B=0 B=$S($G(Hex):"00",1:"000") Quit R_G_B // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : RGBToColor // Author : Manuel Bauwens // Function: converteert een RGB kleur naar een (makova style) kleur waarde, input moet decimaal zijn (jaja, hex-values eerst omzetten met $ZH) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RGBToColor(R,G,B) Quit (B*65536)+(G*256)+R // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : RGBToHLS // Author : Manuel Bauwens // Function: converteert een RGB kleur naar een HLS kleur waarde (Hue Lightness Saturation) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ RGBToHLS(R,G,B) New LR,LG,LB,LH,LL,LS,LMin,LMax Set LR=R/256 Set LG=G/256 Set LB=B/256 Set LMin=$$min(LR,LG,LB) Set LMax=$$max(LR,LG,LB) Set LL=(LMax+LMin)/2 Quit:LMin=LMax "0\"_((LL*256)\1)_"\0" Set:LL<0.5 LS=(LMax-LMin)/(LMax+LMin) Set:LL'<0.5 LS=(LMax-LMin)/(2.0-LMax-LMin) Set:LR=LMax LH=(LG-LB)/(LMax-LMin) Set:LG=LMax LH=2.0+(LB-LR)/(LMax-LMin) Set:LB=LMax LH=4.0+(LR-LG)/(LMax-LMin) Quit ((LH*42.6)\1)_"\"_((LL*256)\1)_"\"_((LS*256)\1) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : HLSToRGB // Author : Manuel Bauwens // Function: converteert een HLS kleur (Hue Lightness Saturation) naar een RGB kleur waarde // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ HLSToRGB(H,L,S) New LR,LG,LB,LH,LL,LS,L1,L2 Set LH=H/255 Set LL=L/255 Set LS=S/255 Quit:LS=0 L_"\"_L_"\"_L Set:LL<0.5 L2=LL*(1+LS) Set:LL'<0.5 L2=LL+LS-(LL*LS) Set L1=2*LL-L2 Set LR=LH+(1/3) Set:LR<0 LR=LR+1 Set:LR>1 LR=LR-1 If 6*LR<1 Do . Set LR=L1+((L2-L1)*6*LR) Else if 2*LR<1 Do . Set LR=L2 Else if 3*LR<2 Do . Set LR=L1+(L2-L1)*((2/3)-LR)*6 Else Do . Set LR=L1 Set LG=LH Set:LG<0 LG=LG+1 Set:LG>1 LG=LG-1 If 6*LG<1 Do . Set LG=L1+((L2-L1)*6*LG) Else if 2*LG<1 Do . Set LG=L2 Else if 3*LG<2 Do . Set LG=L1+(L2-L1)*((2/3)-LG)*6 Else Do . Set LG=L1 Set LB=LH-1/3 Set:LB<0 LB=LB+1 Set:LB>1 LB=LB-1 If 6*LB<1 Do . Set LB=L1+((L2-L1)*6*LB) Else if 2*LB<1 Do . Set LB=L2 Else if 3*LB<2 Do . Set LB=L1+(L2-L1)*((2/3)-LB)*6 Else Do . Set LB=L1 Quit ((LR*255)\1)_"\"_((LG*255)\1)_"\"_((LB*255)\1) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : max // Author : Manuel Bauwens // Function: hulp functie // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ max(P1,P2,P3) New Result Set Result(P1)="" Set Result(P2)="" Set Result(P3)="" Quit $O(Result,-1) // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Name : min // Author : Manuel Bauwens // Function: hulp functie // ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ min(P1,P2,P3) New Result Set Result(P1)="" Set Result(P2)="" Set Result(P3)="" Quit $O(Result)