palette 0.1.0.5 → 0.3
raw patch · 19 files changed
+351/−13 lines, 19 filesdep +MonadRandomdep ~containers
Dependencies added: MonadRandom
Dependency ranges changed: containers
Files
- CHANGES.markdown +5/−0
- diagrams/src_Data_Colour_Palette_RandomColor_blue.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_cielab.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_dark.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_green.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_labpalette.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_light.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_monochrome.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_orange.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_palette.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_pink.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_purple.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_random.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_red.svg +3/−0
- diagrams/src_Data_Colour_Palette_RandomColor_yellow.svg +3/−0
- palette.cabal +7/−6
- src/Data/Colour/Palette/Harmony.hs +19/−6
- src/Data/Colour/Palette/RandomColor.hs +246/−0
- src/Data/Colour/Palette/Types.hs +32/−1
CHANGES.markdown view
@@ -1,3 +1,8 @@+0.1.0.5-r1 (23 Sep 2017)+------------------------++- allow base-4.10 for GHC-8.2+ 0.1.0.5 (22 August 2017) ------------------------
+ diagrams/src_Data_Colour_Palette_RandomColor_blue.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(79,33,207)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,12,125)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(16,34,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(50,151,161)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(71,138,214)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(52,109,158)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,63,252)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(60,140,214)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(22,43,240)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,43,235)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_cielab.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(139,253,131)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(55,206,182)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(333,79,68)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-140,68,-15)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(83,-85,99)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-286,29,139)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(313,185,201)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(172,195,233)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(254,103,-76)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-4649,300,424)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_dark.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(98,9,145)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(190,19,242)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(161,5,67)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(189,144,9)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(219,11,132)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(37,12,135)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(12,1,107)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(199,12,133)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,15,154)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(82,133,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_green.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(127,184,29)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(203,222,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(15,209,63)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(164,201,62)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(69,209,69)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(161,204,67)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(0,110,104)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(74,227,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(30,153,14)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(7,204,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_labpalette.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="80.7692" stroke-opacity="1" viewBox="0 0 350 81" font-size="1" width="350.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(148,-120,-256)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 336.5385,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-256,148,-105)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 269.2308,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-14,29,143)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 201.9231,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(210,184,181)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 134.6154,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(-256,98,148)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 67.3077,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_light.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(215,156,247)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(238,189,252)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(255,158,197)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(242,216,136)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,167,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(137,115,222)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(190,184,245)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(250,167,221)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(237,123,203)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(211,250,147)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_monochrome.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(38,38,38)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,64,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(61,61,61)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(117,117,117)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(87,87,87)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(181,181,181)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(176,176,176)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(89,89,89)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(3,3,3)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(125,125,125)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_orange.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(199,104,32)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(178,98,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(186,79,13)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,165,66)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(196,152,65)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(194,122,64)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(189,142,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(191,99,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(240,185,22)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,101,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_palette.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="80.7692" stroke-opacity="1" viewBox="0 0 350 81" font-size="1" width="350.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(71,43,141)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 336.5385,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(192,109,62)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 269.2308,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(151,170,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 201.9231,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(109,232,77)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 134.6154,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(121,77,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 67.3077,40.3846 c 0.0000,-14.8692 -12.0539,-26.9231 -26.9231 -26.9231c -14.8692,-0.0000 -26.9231,12.0539 -26.9231 26.9231c -0.0000,14.8692 12.0539,26.9231 26.9231 26.9231c 14.8692,0.0000 26.9231,-12.0539 26.9231 -26.9231Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_pink.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(217,35,199)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(201,0,198)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(206,15,209)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(207,67,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(180,72,219)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(195,72,217)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(222,0,159)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,65,199)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(196,20,219)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,0,149)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_purple.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(170,36,227)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(56,0,140)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(57,11,156)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(160,72,232)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(97,61,184)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(117,63,191)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(80,0,166)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(116,57,204)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(69,11,122)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(90,0,207)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_random.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(9,2,13)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(79,19,97)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,47,54)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(99,96,85)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(64,14,43)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(3,3,5)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(32,26,87)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(178,55,135)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(89,20,68)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(46,56,29)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_red.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,29,73)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(232,0,39)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(247,17,36)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(237,74,144)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(255,84,130)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,86,83)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,0,15)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(184,51,95)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(224,20,98)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(181,36,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
+ diagrams/src_Data_Colour_Palette_RandomColor_yellow.svg view
@@ -0,0 +1,3 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"+ "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd"><svg xmlns="http://www.w3.org/2000/svg" height="82.3529" stroke-opacity="1" viewBox="0 0 700 82" font-size="1" width="700.0000" xmlns:xlink="http://www.w3.org/1999/xlink" stroke="rgb(0,0,0)" version="1.1"><defs></defs><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(201,207,33)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 686.2745,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(212,187,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 617.6471,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(247,228,17)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 549.0196,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,235,73)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 480.3922,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(224,224,74)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 411.7647,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(252,250,83)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 343.1373,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(227,200,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 274.5098,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(214,204,60)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 205.8824,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(226,230,21)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 137.2549,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g><g stroke-linejoin="miter" stroke-opacity="1.0" fill-opacity="1.0" stroke="rgb(0,0,0)" stroke-width="0.0" fill="rgb(235,196,0)" stroke-linecap="butt" stroke-miterlimit="10.0"><path d="M 68.6275,41.1765 c 0.0000,-15.1608 -12.2902,-27.4510 -27.4510 -27.4510c -15.1608,-0.0000 -27.4510,12.2902 -27.4510 27.4510c -0.0000,15.1608 12.2902,27.4510 27.4510 27.4510c 15.1608,0.0000 27.4510,-12.2902 27.4510 -27.4510Z"/></g></svg>
palette.cabal view
@@ -1,8 +1,8 @@ Name: palette-Version: 0.1.0.5+Version: 0.3 Synopsis: Utilities for choosing and creating color schemes. Description: Sets of predefined colors and tools for choosing and- creating color schemes.+ creating color schemes. Random colors. Homepage: http://projects.haskell.org/diagrams License: BSD3@@ -15,7 +15,7 @@ Cabal-version: >=1.18 Extra-source-files: README.markdown, CHANGES.markdown, diagrams/*.svg Extra-doc-files: diagrams/*.svg-Tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1+Tested-with: GHC == 7.6.3, GHC == 7.8.4, GHC == 7.10.2, GHC == 8.0.1, GHC == 8.2.1 Source-repository head type: git location: http://github.com/diagrams/palette.git@@ -26,10 +26,11 @@ Data.Colour.Palette.Harmony Data.Colour.Palette.BrewerSet Data.Colour.Palette.Types+ Data.Colour.Palette.RandomColor - Build-depends: base >= 4.2 && < 4.10,+ Build-depends: base >= 4.2 && < 4.11, array >= 0.4 && < 0.6, colour >= 2.3 && <3.0,- containers >= 0.5 && < 0.6.0.0-+ containers >= 0.5 && < 0.6,+ MonadRandom >= 0.5 && < 0.6 hs-source-dirs: src
src/Data/Colour/Palette/Harmony.hs view
@@ -29,14 +29,15 @@ , analogic , accentAnalogic , bwg+ , colorRamp ) where import Data.Colour-import Data.Colour.SRGB (RGB(..), toSRGB, sRGB)-import Data.Colour.RGBSpace.HSV import Data.Colour.Names import Data.Colour.Palette.Types+import Data.Colour.RGBSpace.HSV+import Data.Colour.SRGB (RGB (..), sRGB, toSRGB) -- > import Data.Colour.Palette.Harmony -- > import Data.Colour.SRGB (sRGB24read)@@ -48,7 +49,7 @@ -- > a = 1 / (fromIntegral n) :: Turn -- > w = wedge 1 (0 :: Turn) a # lw 0 -- > r = 1/4 - 1/(2*(fromIntegral n))--- > base = sRGB24read "#bd4932"+-- > base = sRGB24read "#95a78d" -- > mono = wheel $ monochrome base -- > comp = wheel $ complement base -- > tria = wheel $ triad base@@ -107,17 +108,17 @@ -- | Tints a color by adding blending t * white + (1 - t) color. -- t should be between 0 and 1. tint :: Double -> Kolor -> Kolor-tint t c = blend t white c+tint t = blend t white -- | Alter the tone of a color by adding blending t * gray + (1 - t) color. -- t should be between 0 and 1. tone :: Double -> Kolor -> Kolor-tone t c = blend t gray c+tone t = blend t gray -- | Shades a color by adding blending s * black + (1 - t) color. -- t should be between 0 and 1. shade :: Double -> Kolor -> Kolor-shade t c = blend t black c+shade t = blend t black -- | Create a monochromatic set of 5 colors based in the input color. -- <<diagrams/src_Data_Colour_Palette_Harmony_mono.svg#diagram=mono&width=200>>@@ -160,3 +161,15 @@ -- <<diagrams/src_Data_Colour_Palette_Harmony_bw.svg#diagram=bw&width=200>> bwg :: Kolor -> [Kolor] bwg c = [c, tint 0.8 c, tone 0.8 c, shade 0.9 c]++-- | Interpolate n colors from a list of colors using linear piecewise+-- interpolation to add additional colors to a palette.+colorRamp :: Int -> [Kolor] -> [Kolor]+colorRamp n xs0 = if n <= length xs0 then take n xs0 else take n (go 0 xs0)+ where+ di = fromIntegral (length xs0 - 1) / fromIntegral (n - 1)+ go _ [x] = [x]+ go i xs'@(x1 : xs@(x2 : _))+ | i > 1 = go (i - 1) xs+ | otherwise = blend i x2 x1 : go (i + di) xs'+ go _ _ = []
+ src/Data/Colour/Palette/RandomColor.hs view
@@ -0,0 +1,246 @@+{-# LANGUAGE LambdaCase #-}+-----------------------------------------------------------------------------+-- |+-- Module : Palette.RandomColor+-- Copyright : (c) 2018 Jeffrey Rosenbluth+-- License : BSD-style (see LICENSE)+-- Maintainer : jeffrey.rosenbluth@gmail.com+--+-- Functions to create random colors.+-- Includes a port of [David Merfield's](https://github.com/davidmerfield/randomColor)+-- randomColor.+-----------------------------------------------------------------------------++module Data.Colour.Palette.RandomColor+ ( -- * A Library for generating random colors.++ -- ** Choose a random color from CIELAB colorspace.+ randomCIELab+ , randomCIELabPalette++ -- ** Choose a random color using David Merfield's algorithm+ , randomColor+ , randomPalette+ , randomHarmony++ -- ** Choose a random HSV component++ , randomHue+ , randomSaturation+ , randomBrightness++ ) where++import Control.Monad.Random+import Data.Colour+import Data.Colour.CIE+import Data.Colour.CIE.Illuminant+import Data.Colour.Palette.Harmony+import Data.Colour.Palette.Types+import Data.Colour.RGBSpace.HSV+import Data.Colour.SRGB (RGB (..), sRGB)+import Data.List (find)+import Data.Maybe (fromMaybe)++getColorDefinition :: Hue -> ColorDefinition+getColorDefinition = \case+ HueMonochrome -> ColorDefinition Nothing [(0,0),(100, 0)]+ HueRed -> ColorDefinition (Just (-26,18))+ [ (20,100), (30,92), (40,89), (50,85), (60,78), (70,70)+ , (80,60), (90,55), (100,50)+ ]+ HueOrange -> ColorDefinition (Just (19,46))+ [ (20,100), (30,93), (40,88), (50,86), (60,85), (70,70)+ , (100,70)+ ]+ HueYellow -> ColorDefinition (Just (47,62))+ [ (25,100), (40,94), (50,89), (60,86), (70,84), (80,82)+ , (90,80), (100,75)+ ]+ HueGreen -> ColorDefinition (Just (63,178))+ [ (30,100), (40,90), (50,85), (60,81), (70,74), (80,64)+ , (90,50), (100,40)+ ]+ HueBlue -> ColorDefinition (Just (179,257))+ [ (20,100), (30,86), (40,80), (50,74), (60,60), (70,52)+ , (80,44), (90,39), (100,35)+ ]+ HuePurple -> ColorDefinition (Just (258,282))+ [ (20,100), (30,87), (40,79), (50,70), (60,65), (70,59)+ , (80,52), (90,45), (100,42)+ ]+ HuePink -> ColorDefinition (Just (283,334))+ [ (20,100), (30,90), (40,86), (60,84), (80,80), (90,75)+ , (100,73)+ ]+ HueRandom -> ColorDefinition (Just (0, 359)) []++getHue :: Int -> Hue+getHue n+ | n' == 0 = HueMonochrome+ | n' >= 283 = HuePink+ | n' >= 258 = HuePurple+ | n' >= 179 = HueBlue+ | n' >= 63 = HueGreen+ | n' >= 47 = HueYellow+ | n' >= 19 = HueOrange+ | n' >= -26 = HueRed+ where+ n' = if n >= 334 && n <= 360 then n - 360 else n++-- | return a random hue in the range [lo, hi] as a 'Double'.+-- lo should be >= 0 and hi < 360.+-- Instead of storing red as two seperate ranges we create a single+-- contiguous range using negative numbers.+randomHue :: MonadRandom m => Hue -> m Int+randomHue h = do+ hue <- getRandomR (lo, hi)+ return $ if hue < 0 then hue + 360 else hue+ where+ hr = hueRange . getColorDefinition $ h+ (lo, hi) = fromMaybe (0, 0) hr++saturationRange :: Hue -> (Int, Int)+saturationRange hue = result+ where+ lbs = lowerBounds $ getColorDefinition hue+ result = case lbs of+ [] -> error "Can\'t obtain saturationRange from an empty lowerBounds"+ xs -> (fst . head $ lbs, fst . last $ lbs)++randomSaturation :: MonadRandom m => Hue -> Luminosity -> m Int+randomSaturation HueMonochrome _ = return 0+randomSaturation _ LumRandom = getRandomR (0, 100)+randomSaturation hue lum = case lum of+ LumBright -> getRandomR (55, hi)+ LumDark -> getRandomR (hi - 10, hi)+ LumLight -> getRandomR (lo, 55)+ where+ (lo, hi) = saturationRange hue++minBrightness :: Hue -> Int -> Int+minBrightness hue saturationValue = round $ fromMaybe 0 result+ where+ lbs = lowerBounds $ getColorDefinition hue+ tup a = zip (0:a) a+ inRange j (k, n) = j >= k && j <= n+ result = do+ (s1, s2) <- find (inRange saturationValue) (tup $ fst <$> lbs)+ v1 <- lookup s1 lbs+ v2 <- lookup s2 lbs+ let m = fromIntegral (v2 - v1) / fromIntegral (s2 -s1)+ b = fromIntegral v1 - m * fromIntegral s1+ return $ m * fromIntegral saturationValue + b++-- | Pick a random brightness value given a 'Hue', 'Luminosity' and saturation.+randomBrightness :: MonadRandom m => Hue -> Luminosity -> Int -> m Int+randomBrightness hue lum saturationValue = getRandomR (bMin, bMax)+ where+ b = minBrightness hue saturationValue+ (bMin, bMax) = case lum of+ LumBright -> (b, 100)+ LumDark -> (b, b + 20)+ LumLight -> ((b + 100) `div` 2, 100)+ LumRandom -> (0, 100)++-- | Generate a random opaque color.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_red.svg>>+--+-- > randomColor HueRed LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_orange.svg>>+--+-- > randomColor HueOrange LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_yellow.svg>>+--+-- > randomColor HueYellow LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_green.svg>>+--+-- > randomColor HueGreen LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_blue.svg>>+--+-- > randomColor HueBlue LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_purple.svg>>+--+-- > randomColor HuePurple LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_pink.svg>>+--+-- > randomColor HuePink LumBright+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_monochrome.svg>>+--+-- > randomColor HueMonochrome LumRandom+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_light.svg>>+--+-- > randomColor HueRandom LumLight+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_dark.svg>>+--+-- > randomColor HueRandom LumDark+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_random.svg>>+--+-- > randomColor HueRandom LumRandom+-- /Better to use 'randomCIELab' for truly random colors/.+randomColor :: MonadRandom m => Hue -> Luminosity -> m Kolor+randomColor hue lum = do+ hueValue <- randomHue hue+ let hue' = getHue hueValue+ satValue <- randomSaturation hue' lum+ briValue <- randomBrightness hue' lum satValue+ let (RGB r g b) = hsv (fromIntegral hueValue)+ (fromIntegral satValue / 100)+ (fromIntegral briValue / 100)+ return $ sRGB r g b++-- | Return a random harmony based on a seed color.+randomHarmony :: MonadRandom m => Kolor -> m [Kolor]+randomHarmony c = do+ harmony <- uniform+ [ monochrome+ , complement+ , triad+ , tetrad+ , analogic+ , accentAnalogic+ ]+ return $ harmony c++-- | Generate a random color palette. First choose a random color then choose a+-- random harmony and apply it.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_palette.svg>>+--+-- > randomPalette+randomPalette :: MonadRandom m => Hue -> Luminosity ->m [Kolor]+randomPalette hue lum = randomColor hue lum >>= randomHarmony++-- | Generate a random color from CIELAB (a perceptually uniform color space)+-- with a White point of 'd65'. Probably the best choice if you want a totally+-- random color.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_cielab.svg>>+--+-- > randomCIELab+randomCIELab :: MonadRandom m => m Kolor+randomCIELab = do+ l <- getRandomR (0, 100)+ a <- getRandomR (-100, 100)+ b <- getRandomR (-100, 100)+ return $ cieLAB d65 l a b++-- | Generate a random color palette using 'randomCIELab'. First choose a+-- random color then choose a random harmony and apply it.+--+-- <<diagrams/src_Data_Colour_Palette_RandomColor_labpalette.svg>>+--+-- > randomCIELabPalette+randomCIELabPalette :: MonadRandom m => m [Kolor]+randomCIELabPalette = randomCIELab >>= randomHarmony
src/Data/Colour/Palette/Types.hs view
@@ -12,8 +12,39 @@ module Data.Colour.Palette.Types ( Kolor+ , Hue(..)+ , Luminosity(..)+ , ColorDefinition(..)+ ) where -import Data.Colour+import Data.Colour +-- | A convenient alias. type Kolor = Colour Double++-- | Used to select the hue range in 'randomColor'.+data Hue+ = HueMonochrome+ | HueRed+ | HueOrange+ | HueYellow+ | HueGreen+ | HueBlue+ | HuePurple+ | HuePink+ | HueRandom+ deriving (Show, Eq)++-- | Used to select the luminosity range in 'randomColor'.+data Luminosity+ = LumBright+ | LumLight+ | LumDark+ | LumRandom+ deriving (Show, Eq)++data ColorDefinition = ColorDefinition+ { hueRange :: Maybe (Int, Int)+ , lowerBounds :: [(Int, Int)]+ }