colo-imp-rainbow.mkiv /size: 5476 b    last modification: 2020-07-01 14:35
1%D \module
2%D   [       file=colo-imp-rainbow,
3%D        version=2016.03.21,
4%D          title=\CONTEXT\ Color Macros,
5%D       subtitle=X11,
6%D         author=Alan Braslau]
7%C
8%C This module is part of the \CONTEXT\ macro||package and is
9%C therefore copyrighted by \PRAGMA. See mreadme.pdf for
10%C details.
11
12%D \subsubject{For scientists by scientists}
13%D
14%D We define color groups having equal gray scale values by either reducing 
15%D their rgb values to darken them or by adding equal amounts of $r=g=b$ to 
16%D lighten them.
17%D
18%D \startformula
19%D s = .3r + .59g + .11b
20%D \stopformula
21%D
22%D By the way, \CONTEXT\ has always used this formula internally when colors 
23%D are converted to gray. 
24
25\definecolorgroup
26  [gray]
27  [0.1:0.1:0.1,
28   0.2:0.2:0.2,
29   0.3:0.3:0.3,
30   0.4:0.4:0.4,
31   0.5:0.5:0.5,
32   0.6:0.6:0.6,
33   0.7:0.7:0.7,
34   0.8:0.8:0.8,
35   0.9:0.9:0.9,
36   1.0:1.0:1.0]
37
38\definecolorgroup
39  [red]
40  [0.333:0.000:0.000,
41   0.667:0.000:0.000,
42   1.000:0.000:0.000,
43   1.000:0.143:0.143,
44   1.000:0.286:0.286,
45   1.000:0.429:0.429,
46   1.000:0.571:0.571,
47   1.000:0.714:0.714,
48   1.000:0.857:0.857]
49
50\definecolorgroup
51  [green]
52  [0.000:0.169:0.000,
53   0.000:0.339:0.000,
54   0.000:0.508:0.000,
55   0.000:0.678:0.000,
56   0.000:0.847:0.000,
57   0.024:1.000:0.024,
58   0.268:1.000:0.268,
59   0.512:1.000:0.512,
60   0.756:1.000:0.756]
61
62\definecolorgroup
63  [blue]
64  [0.000:0.000:0.909,
65   0.101:0.101:1.000,
66   0.213:0.213:1.000,
67   0.326:0.326:1.000,
68   0.438:0.438:1.000,
69   0.551:0.551:1.000,
70   0.663:0.663:1.000,
71   0.775:0.775:1.000,
72   0.888:0.888:1.000]
73
74\definecolorgroup
75  [cyan]
76  [0.000:0.143:0.143,
77   0.000:0.286:0.286,
78   0.000:0.429:0.429,
79   0.000:0.571:0.571,
80   0.000:0.714:0.714,
81   0.000:0.857:0.857,
82   0.000:1.000:1.000,
83   0.333:1.000:1.000,
84   0.667:1.000:1.000]
85
86\definecolorgroup
87  [magenta]
88  [0.244:0.000:0.244,
89   0.488:0.000:0.488,
90   0.732:0.000:0.732,
91   0.976:0.000:0.976,
92   1.000:0.153:1.000,
93   1.000:0.322:1.000,
94   1.000:0.492:1.000,
95   1.000:0.661:1.000,
96   1.000:0.831:1.000]
97
98\definecolorgroup
99  [yellow]
100  [0.112:0.112:0.000,
101   0.225:0.225:0.000,
102   0.337:0.337:0.000,
103   0.449:0.449:0.000,
104   0.562:0.562:0.000,
105   0.674:0.674:0.000,
106   0.787:0.787:0.000,
107   0.899:0.899:0.000,
108   1.000:1.000:0.091]
109
110\definecolorgroup
111  [orange]
112  [0.147:0.095:0.000,
113   0.293:0.190:0.000,
114   0.440:0.285:0.000,
115   0.587:0.380:0.000,
116   0.733:0.475:0.000,
117   0.880:0.569:0.000,
118   1.000:0.673:0.026,
119   1.000:0.816:0.169,
120   1.000:0.959:0.312]
121
122\definecolorgroup
123  [violet]
124  [0.137:0.075:0.137,
125   0.273:0.149:0.273,
126   0.410:0.224:0.410,
127   0.546:0.298:0.546,
128   0.683:0.373:0.683,
129   0.819:0.448:0.819,
130   0.950:0.527:0.950,
131   1.000:0.661:1.000,
132   1.000:0.831:1.000]
133
134\definecolorgroup
135  [brown]
136  [0.209:0.053:0.053,
137   0.417:0.106:0.106,
138   0.627:0.160:0.160,
139   0.737:0.255:0.255,
140   0.837:0.355:0.355,
141   0.937:0.455:0.455,
142   1.000:0.571:0.571,
143   1.000:0.714:0.714,
144   1.000:0.857:0.857]
145
146%D Define \quote{rainbow} color palets having equal grayscale values.
147%D The names correspond to the number color codes used on electrical resistances.
148
149\dorecurse {9} {
150  \definepalet
151    [rainbow#1]
152    [  one#1=brown:#1,
153       two#1=red:#1,
154     three#1=orange:#1,
155      four#1=yellow:#1,
156      five#1=green:#1,
157       six#1=blue:#1,
158     seven#1=violet:#1,
159     eight#1=gray:#1]
160}
161
162%D Define two more color palets showing grayscale contrast.
163%D Note that \emph{none} of these palets are very aesthetic!
164
165\definepalet
166  [rainbow0]
167  [  one0=brown:8,
168     two0=red:7,
169   three0=orange:6,
170    four0=yellow:5,
171    five0=green:4,
172     six0=blue:3,
173   seven0=violet:2,
174   eight0=gray:1]
175
176\definepalet
177  [rainbow]
178  [ zero=black,
179     one=brown:1,
180     two=red:2,
181   three=orange:3,
182    four=yellow:4,
183    five=green:5,
184     six=blue:6,
185   seven=violet:7,
186   eight=gray:8,
187    nine=white]
188
189\continueifinputfile{colo-imp-rainbow.mkiv}
190
191\usemodule[art-01] \setupbodyfont[8pt]
192
193\starttexdefinition ShowSomething #1
194    \startpacked
195        \dorecurse {9} {
196            \dontleavehmode
197            \start
198                \ttbf
199                \color      [#1:##1] {\hbox to 6em{#1:##1\hss}}
200                \tttf
201                \quad
202                \colorvalue {#1:##1}
203                \quad
204                \grayvalue  {#1:##1}
205                \quad
206            \stop
207            \par
208        }
209    \stoppacked
210\stoptexdefinition
211
212\starttext
213
214    \startcolumns [n=2,distance=0pt]
215        \ShowSomething {gray}
216        \ShowSomething {brown}
217        \ShowSomething {red}
218        \ShowSomething {orange}
219        \ShowSomething {yellow}
220        \ShowSomething {green}
221        \column
222        \ShowSomething {cyan}
223        \ShowSomething {blue}
224        \ShowSomething {magenta}
225        \ShowSomething {violet}
226    \stopcolumns
227
228    \startalignment [flushleft]
229        \dontleavehmode
230        \showcolorgroup [brown]   [vertical,name,number]
231        \showcolorgroup [red]     [vertical,name]
232        \showcolorgroup [orange]  [vertical,name]
233        \showcolorgroup [yellow]  [vertical,name]
234        \showcolorgroup [green]   [vertical,name]
235        \showcolorgroup [cyan]    [vertical,name]
236        \showcolorgroup [blue]    [vertical,name]
237        \showcolorgroup [violet]  [vertical,name]
238        \showcolorgroup [magenta] [vertical,name]
239        \showcolorgroup [gray]    [vertical,name]
240    \stopalignment
241
242    \page
243
244    \dorecurse {9} {
245        \comparepalet [rainbow#1]
246    }
247
248    \comparepalet [rainbow0]
249
250    \comparepalet [rainbow]
251
252\stoptext
253