Leider hat AutoDESK die RGB-Werte der einzelnen Farben in dieser
Zeichnung nicht dokumentiert, sodass man auf andere Quellen angewiesen
ist. In der AutoDESK Knowledgebase findet man jedoch eine Tabelle
mit allen RGB-Werten, von denen ich hier allerdings erst einmal nur
die ersten paar Zeilen wiedergebe:
ACI R G B
1 1.0000 0.0000 0.0000
2 1.0000 1.0000 0.0000
3 0.0000 1.0000 0.0000
4 0.0000 1.0000 1.0000
5 0.0000 0.0000 1.0000
6 1.0000 0.0000 1.0000
7 1.0000 1.0000 1.0000
8 0.5020 0.5020 0.5020
9 0.7530 0.7530 0.7530
10 1.0000 0.0000 0.0000
11 1.0000 0.5000 0.5000
12 0.6500 0.0000 0.0000
13 0.6500 0.3250 0.3250
Wie man sieht, sind die RGB-Werte im Bereich von 0 bis 1
angegeben. Für einige der nachfolgenden Betrachtungen ist
das praktisch, für andere brauchen wir jedoch die RGB-Werte
als ganze Zahlen von 0 bis 255. Die nachfolgende kleine
Lisp-Routine liest diese Tabelle ein und druckt sie ergänzt
wieder aus (die str-pad-Funktionen sind hier in den ersten
Kapiteln zu finden):
(defun rgbtabelle-ergaenzen( / )
(foreach item colors1
(princ
(strcat
(str-lpad(itoa(car item))3)
" "
(str-rpadz(rtos(cadr item)2 4)6)
" "
(str-lpad(itoa(fix(* 255(cadr item))))3)
" "
(str-rpadz(rtos(caddr item)2 4)6)
" "
(str-lpad(itoa(fix(* 255(caddr item))))3)
" "
(str-rpadz(rtos(cadddr item)2 4)6)
" "
(str-lpad(itoa(fix(* 255(cadddr item))))3)
"\n"
)
)
)
)
Bevor die Tabelle hier vollständig wiedergegeben wird, aber noch
ein paar weitere Informationen: Man kann die Werte auch selbst
ermitteln! Dazu erzeugt man ein Screenshot (Alt+Druck) und fügt
dieses in ein Bildbearbeitungsprogramm ein. Mit der Pipetten-Funktion
des kann man dort die RGB-Werte auslesen. Da aus mir nicht bekannten
Gründen Unterschiede zwischen der AutoDESK-Tabelle und den in der
Praxis ermittelten Werten bestehen, habe ich die Tabelle um
weitere 3 Spalten mit den in der Praxis ermittelten Werten ergänzt:
AutoDESK | berechnet | ermittelt
ACI R G B R G B R G B
1 1.0000 0.0000 0.0000 255 0 0 255 0 0
2 1.0000 1.0000 0.0000 255 255 0 255 255 0
3 0.0000 1.0000 0.0000 0 255 0 0 255 0
4 0.0000 1.0000 1.0000 0 255 255 0 255 255
5 0.0000 0.0000 1.0000 0 0 255 0 0 255
6 1.0000 0.0000 1.0000 255 0 255 255 0 255
7 1.0000 1.0000 1.0000 255 255 255 255 255 255
8 0.5020 0.5020 0.5020 128 128 128 132 130 132
9 0.7530 0.7530 0.7530 192 192 192 198 195 198
10 1.0000 0.0000 0.0000 255 0 0 255 0 0
11 1.0000 0.5000 0.5000 255 127 127 255 125 123
12 0.6500 0.0000 0.0000 165 0 0 206 0 0
13 0.6500 0.3250 0.3250 165 82 82 206 101 99
14 0.5000 0.0000 0.0000 127 0 0 156 0 0
15 0.5000 0.2500 0.2500 127 63 63 156 77 74
16 0.3000 0.0000 0.0000 76 0 0 123 0 0
17 0.3000 0.1500 0.1500 76 38 38 123 60 57
18 0.1500 0.0000 0.0000 38 0 0 74 0 0
19 0.1500 0.0750 0.0750 38 19 19 74 36 33
20 1.0000 0.2500 0.0000 255 63 0 255 60 00
21 1.0000 0.6250 0.5000 255 159 127 255 158 123
22 0.6500 0.1625 0.0000 165 41 0 206 48 0
23 0.6500 0.4063 0.3250 165 103 82 206 125 99
24 0.5000 0.1250 0.0000 127 31 0 156 36 0
25 0.5000 0.3125 0.2500 127 79 63 156 93 74
26 0.3000 0.0750 0.0000 76 19 0 123 28 0
27 0.3000 0.1875 0.1500 76 47 38 123 77 57
28 0.1500 0.0375 0.0000 38 9 0 74 16 0
29 0.1500 0.0938 0.0750 38 23 19 74 44 33
30 1.0000 0.5000 0.0000 255 127 0 255 125 0
31 1.0000 0.7500 0.5000 255 191 127 255 190 123
32 0.6500 0.3250 0.0000 165 82 0 206 101 0
33 0.6500 0.4875 0.3250 165 124 82 206 154 99
34 0.5000 0.2500 0.0000 127 63 0 156 77 0
35 0.5000 0.3750 0.2500 127 95 63 156 113 74
36 0.3000 0.1500 0.0000 76 38 0 123 60 0
37 0.3000 0.2250 0.1500 76 57 38 123 93 57
38 0.1500 0.0750 0.0000 38 19 0 74 36 0
39 0.1500 0.1125 0.0750 38 28 19 74 56 33
40 1.0000 0.7500 0.0000 255 191 0 255 190 0
41 1.0000 0.8750 0.5000 255 223 127 255 223 123
42 0.6500 0.4875 0.0000 165 124 0 206 154 0
43 0.6500 0.5688 0.3250 165 145 82 206 178 99
44 0.5000 0.3750 0.0000 127 95 0 156 113 0
45 0.5000 0.4375 0.2500 127 111 63 156 134 74
46 0.3000 0.2250 0.0000 76 57 0 123 93 0
47 0.3000 0.2625 0.1500 76 66 38 123 109 57
48 0.1500 0.1125 0.0000 38 28 0 74 56 0
49 0.1500 0.1313 0.0750 38 33 19 74 65 33
50 1.0000 1.0000 0.0000 255 255 0 255 255 0
51 1.0000 1.0000 0.5000 255 255 127 255 255 123
52 0.6500 0.6500 0.0000 165 165 0 206 207 0
53 0.6500 0.6500 0.3250 165 165 82 206 207 99
54 0.5000 0.5000 0.0000 127 127 0 156 154 0
55 0.5000 0.5000 0.2500 127 127 63 156 154 74
56 0.3000 0.3000 0.0000 76 76 0 123 125 0
57 0.3000 0.3000 0.1500 76 76 38 123 125 57
58 0.1500 0.1500 0.0000 38 38 0 74 77 0
59 0.1500 0.1500 0.0750 38 38 19 74 77 33
60 0.7500 1.0000 0.0000 191 255 0 189 255 0
61 0.8750 1.0000 0.5000 223 255 127 222 255 123
62 0.4875 0.6500 0.0000 124 165 0 156 207 0
63 0.5688 0.6500 0.3250 145 165 82 181 207 99
64 0.3750 0.5000 0.0000 95 127 0 115 154 0
65 0.4375 0.5000 0.2500 111 127 63 132 154 74
66 0.2250 0.3000 0.0000 57 76 0 90 125 0
67 0.2625 0.3000 0.1500 66 76 38 107 125 57
68 0.1125 0.1500 0.0000 28 38 0 57 77 0
69 0.1313 0.1500 0.0750 33 38 19 66 77 33
70 0.5000 1.0000 0.0000 127 255 0 123 255 0
71 0.7500 1.0000 0.5000 191 255 127 189 255 123
72 0.3250 0.6500 0.0000 82 165 0 99 207 0
73 0.4875 0.6500 0.3250 124 165 82 156 207 99
74 0.2500 0.5000 0.0000 63 127 0 74 154 0
75 0.3750 0.5000 0.2500 95 127 63 115 154 74
76 0.1500 0.3000 0.0000 38 76 0 57 125 0
77 0.2250 0.3000 0.1500 57 76 38 90 125 57
78 0.0750 0.1500 0.0000 19 38 0 33 77 0
79 0.1125 0.1500 0.0750 28 38 19 57 77 33
80 0.2500 1.0000 0.0000 63 255 0 57 255 0
81 0.6250 1.0000 0.5000 159 255 127 156 255 123
82 0.1625 0.6500 0.0000 41 165 0 49 207 0
83 0.4063 0.6500 0.3250 103 165 82 123 207 99
84 0.1250 0.5000 0.0000 31 127 0 33 154 0
85 0.3125 0.5000 0.2500 79 127 63 90 154 74
86 0.0750 0.3000 0.0000 19 76 0 24 125 0
87 0.1875 0.3000 0.1500 47 76 38 74 125 57
88 0.0375 0.1500 0.0000 9 38 0 16 77 0
89 0.0938 0.1500 0.0750 23 38 19 41 77 33
90 0.0000 1.0000 0.0000 0 255 0 0 255 0
91 0.5000 1.0000 0.5000 127 255 127 123 255 123
92 0.0000 0.6500 0.0000 0 165 0 0 207 0
93 0.3250 0.6500 0.3250 82 165 82 99 207 99
94 0.0000 0.5000 0.0000 0 127 0 0 154 0
95 0.2500 0.5000 0.2500 63 127 63 74 154 74
96 0.0000 0.3000 0.0000 0 76 0 0 125 0
97 0.1500 0.3000 0.1500 38 76 38 57 125 57
98 0.0000 0.1500 0.0000 0 38 0 0 77 0
99 0.0750 0.1500 0.0750 19 38 19 33 77 33
100 0.0000 1.0000 0.2500 0 255 63 0 255 57
101 0.5000 1.0000 0.6250 127 255 159 123 255 156
102 0.0000 0.6500 0.1625 0 165 41 0 207 49
103 0.3250 0.6500 0.4063 82 165 103 99 207 123
104 0.0000 0.5000 0.1250 0 127 31 0 154 33
105 0.2500 0.5000 0.3125 63 127 79 74 154 90
106 0.0000 0.3000 0.0750 0 76 19 0 125 24
107 0.1500 0.3000 0.1875 38 76 47 57 125 74
108 0.0000 0.1500 0.0375 0 38 9 0 77 16
109 0.0750 0.1500 0.0938 19 38 23 33 77 41
110 0.0000 1.0000 0.5000 0 255 127 0 255 123
111 0.5000 1.0000 0.7500 127 255 191 123 255 189
112 0.0000 0.6500 0.3250 0 165 82 0 207 99
113 0.3250 0.6500 0.4875 82 165 124 99 207 156
114 0.0000 0.5000 0.2500 0 127 63 0 154 74
115 0.2500 0.5000 0.3750 63 127 95 74 154 115
116 0.0000 0.3000 0.1500 0 76 38 0 125 57
117 0.1500 0.3000 0.2250 38 76 57 57 125 90
118 0.0000 0.1500 0.0750 0 38 19 0 77 33
119 0.0750 0.1500 0.1125 19 38 28 33 77 57
120 0.0000 1.0000 0.7500 0 255 191 0 255 189
121 0.5000 1.0000 0.8750 127 255 223 123 255 222
122 0.0000 0.6500 0.4875 0 165 124 0 207 156
123 0.3250 0.6500 0.5688 82 165 145 99 207 181
124 0.0000 0.5000 0.3750 0 127 95 0 154 115
125 0.2500 0.5000 0.4375 63 127 111 74 154 132
126 0.0000 0.3000 0.2250 0 76 57 0 125 90
127 0.1500 0.3000 0.2625 38 76 66 57 125 107
128 0.0000 0.1500 0.1125 0 38 28 0 77 57
129 0.0750 0.1500 0.1313 19 38 33 33 77 66
130 0.0000 1.0000 1.0000 0 255 255 0 255 255
131 0.5000 1.0000 1.0000 127 255 255 123 255 255
132 0.0000 0.6500 0.6500 0 165 165 0 207 206
133 0.3250 0.6500 0.6500 82 165 165 99 207 206
134 0.0000 0.5000 0.5000 0 127 127 0 154 156
135 0.2500 0.5000 0.5000 63 127 127 74 154 156
136 0.0000 0.3000 0.3000 0 76 76 0 125 123
137 0.1500 0.3000 0.3000 38 76 76 57 125 123
138 0.0000 0.1500 0.1500 0 38 38 0 77 74
139 0.0750 0.1500 0.1500 19 38 38 33 77 74
140 0.0000 0.7500 1.0000 0 191 255 0 190 255
141 0.5000 0.8750 1.0000 127 223 255 123 223 255
142 0.0000 0.4875 0.6500 0 124 165 0 154 206
143 0.3250 0.5688 0.6500 82 145 165 99 178 206
144 0.0000 0.3750 0.5000 0 95 127 0 113 156
145 0.2500 0.4375 0.5000 63 111 127 74 13 156
146 0.0000 0.2250 0.3000 0 57 76 0 93 123
147 0.1500 0.2625 0.3000 38 66 76 57 109 123
148 0.0000 0.1125 0.1500 0 28 38 0 56 74
149 0.0750 0.1313 0.1500 19 33 38 33 65 74
150 0.0000 0.5000 1.0000 0 127 255 0 125 255
151 0.5000 0.7500 1.0000 127 191 255 123 190 255
152 0.0000 0.3250 0.6500 0 82 165 0 101 206
153 0.3250 0.4875 0.6500 82 124 165 99 154 206
154 0.0000 0.2500 0.5000 0 63 127 0 77 156
155 0.2500 0.3750 0.5000 63 95 127 74 113 156
156 0.0000 0.1500 0.3000 0 38 76 0 60 123
157 0.1500 0.2250 0.3000 38 57 76 57 93 123
158 0.0000 0.0750 0.1500 0 19 38 0 36 74
159 0.0750 0.1125 0.1500 19 28 38 33 56 74
160 0.0000 0.2500 1.0000 0 63 255 0 60 255
161 0.5000 0.6250 1.0000 127 159 255 123 158 255
162 0.0000 0.1625 0.6500 0 41 165 0 48 206
163 0.3250 0.4063 0.6500 82 103 165 99 125 206
164 0.0000 0.1250 0.5000 0 31 127 0 36 156
165 0.2500 0.3125 0.5000 63 79 127 74 93 156
166 0.0000 0.0750 0.3000 0 19 76 0 28 123
167 0.1500 0.1875 0.3000 38 47 76 57 77 123
168 0.0000 0.0375 0.1500 0 9 38 0 16 74
169 0.0750 0.0938 0.1500 19 23 38 33 44 74
170 0.0000 0.0000 1.0000 0 0 255 0 0 255
171 0.5000 0.5000 1.0000 127 127 255 123 125 255
172 0.0000 0.0000 0.6500 0 0 165 0 0 206
173 0.3250 0.3250 0.6500 82 82 165 99 101 206
174 0.0000 0.0000 0.5000 0 0 127 0 0 156
175 0.2500 0.2500 0.5000 63 63 127 74 77 156
176 0.0000 0.0000 0.3000 0 0 76 0 0 123
177 0.1500 0.1500 0.3000 38 38 76 57 60 123
178 0.0000 0.0000 0.1500 0 0 38 0 0 74
179 0.0750 0.0750 0.1500 19 19 38 33 36 74
180 0.2500 0.0000 1.0000 63 0 255 57 0 255
181 0.6250 0.5000 1.0000 159 127 255 156 125 255
182 0.1625 0.0000 0.6500 41 0 165 49 0 206
183 0.4063 0.3250 0.6500 103 82 165 123 101 206
184 0.1250 0.0000 0.5000 31 0 127 33 0 156
185 0.3125 0.2500 0.5000 79 63 127 90 77 156
186 0.0750 0.0000 0.3000 19 0 76 24 0 123
187 0.1875 0.1500 0.3000 47 38 76 74 60 123
188 0.0375 0.0000 0.1500 9 0 38 16 0 74
189 0.0938 0.0750 0.1500 23 19 38 41 36 74
190 0.5000 0.0000 1.0000 127 0 255 123 0 255
191 0.7500 0.5000 1.0000 191 127 255 189 125 255
192 0.3250 0.0000 0.6500 82 0 165 99 0 206
193 0.4875 0.3250 0.6500 124 82 165 156 101 206
194 0.2500 0.0000 0.5000 63 0 127 74 0 156
195 0.3750 0.2500 0.5000 95 63 127 115 77 156
196 0.1500 0.0000 0.3000 38 0 76 57 0 123
197 0.2250 0.1500 0.3000 57 38 76 90 60 123
198 0.0750 0.0000 0.1500 19 0 38 33 0 74
199 0.1125 0.0750 0.1500 28 19 38 57 36 74
200 0.7500 0.0000 1.0000 191 0 255 189 0 255
201 0.8750 0.5000 1.0000 223 127 255 122 125 255
202 0.4875 0.0000 0.6500 124 0 165 156 0 206
203 0.5688 0.3250 0.6500 145 82 165 181 101 206
204 0.3750 0.0000 0.5000 95 0 127 115 0 156
205 0.4375 0.2500 0.5000 111 63 127 132 77 156
206 0.2250 0.0000 0.3000 57 0 76 90 0 123
207 0.2625 0.1500 0.3000 66 38 76 107 60 123
208 0.1125 0.0000 0.1500 28 0 38 57 0 74
209 0.1313 0.0750 0.1500 33 19 38 66 36 74
210 1.0000 0.0000 1.0000 255 0 255 255 0 255
211 1.0000 0.5000 1.0000 255 127 255 255 125 255
212 0.6500 0.0000 0.6500 165 0 165 206 0 206
213 0.6500 0.3250 0.6500 165 82 165 206 101 206
214 0.5000 0.0000 0.5000 127 0 127 156 0 156
215 0.5000 0.2500 0.5000 127 63 127 156 77 156
216 0.3000 0.0000 0.3000 76 0 76 123 0 123
217 0.3000 0.1500 0.3000 76 38 76 123 60 123
218 0.1500 0.0000 0.1500 38 0 38 74 0 74
219 0.1500 0.0750 0.1500 38 19 38 74 36 74
220 1.0000 0.0000 0.7500 255 0 191 255 0 189
221 1.0000 0.5000 0.8750 255 127 223 255 125 222
222 0.6500 0.0000 0.4875 165 0 124 206 0 156
223 0.6500 0.3250 0.5688 165 82 145 206 101 181
224 0.5000 0.0000 0.3750 127 0 95 156 0 115
225 0.5000 0.2500 0.4375 127 63 111 156 77 132
226 0.3000 0.0000 0.2250 76 0 57 123 0 90
227 0.3000 0.1500 0.2625 76 38 66 123 60 107
228 0.1500 0.0000 0.1125 38 0 28 74 0 57
229 0.1500 0.0750 0.1313 38 19 33 74 36 66
230 1.0000 0.0000 0.5000 255 0 127 255 0 123
231 1.0000 0.5000 0.7500 255 127 191 255 125 189
232 0.6500 0.0000 0.3250 165 0 82 206 0 99
233 0.6500 0.3250 0.4875 165 82 124 206 101 156
234 0.5000 0.0000 0.2500 127 0 63 156 0 74
235 0.5000 0.2500 0.3750 127 63 95 156 77 115
236 0.3000 0.0000 0.1500 76 0 38 123 0 57
237 0.3000 0.1500 0.2250 76 38 57 123 60 90
238 0.1500 0.0000 0.0750 38 0 19 74 0 33
239 0.1500 0.0750 0.1125 38 19 28 74 36 57
240 1.0000 0.0000 0.2500 255 0 63 255 0 57
241 1.0000 0.5000 0.6250 255 127 159 255 125 156
242 0.6500 0.0000 0.1625 165 0 41 206 0 49
243 0.6500 0.3250 0.4063 165 82 103 206 101 123
244 0.5000 0.0000 0.1250 127 0 31 156 0 33
245 0.5000 0.2500 0.3125 127 63 79 156 77 90
246 0.3000 0.0000 0.0750 76 0 19 123 0 24
247 0.3000 0.1500 0.1875 76 38 47 123 60 74
248 0.1500 0.0000 0.0375 38 0 9 74 0 16
249 0.1500 0.0750 0.0938 38 19 23 74 36 41
250 0.3300 0.3300 0.3300 84 84 84 49 48 49
251 0.4640 0.4640 0.4640 118 118 118 90 89 90
252 0.5980 0.5980 0.5980 152 152 152 132 134 132
253 0.7320 0.7320 0.7320 186 186 186 173 174 173
254 0.8660 0.8660 0.8660 220 220 220 214 215 214
255 1.0000 1.0000 1.0000 255 255 255 255 255 255
Auf die Abweichungen werden wir später zurückkommen. Zunächst
geht es jedoch darum, das System der Farbtabelle zu verstehen
und aus diesem Verstehen heraus eine kleine Lisp-Funktion zu
entwickeln, die die ACI-Farben in RGB-Werte umrechnet, ohne
dass dabei ein Zugriff auf diese dicke Tabelle nötig ist.
Die Tabelle besteht aus drei Teilen. Zunächst sind da die Farben
mit den Nummern 1 bis 9, dann folgt der Hauptteil mit den
Farben von 10 bis 249, und am Ende folgen noch einmal Graustufen
von 250 bis 255.
Wir werden uns hier fast ausschliesslich mit dem grossen
Mittelteil der Tabelle befassen, den ersten und den dritten Teil
lassen wir zunächst ausser Acht. Die Systematik ist nicht ganz
einfach zu durchschauen: Zunächst können wir festhalten, dass
die Farben mit der Endziffer 0 (also 10, 20, 30 ... 240) sozusagen
die Hauptfarben darstellen. Jede vierte dieser Farben (also 10, 50,
90 ... 210) ist übrigens mit einer der Grundfarben (ACI 1 - 6)
identisch. Diese Reihe der Farben mit Endziffer 0 noch einmal
zusammengefasst:
AutoDESK | ermittelt
ACI R G B R G B R G B
10 1.0000 0.0000 0.0000 255 0 0 255 0 0
20 1.0000 0.2500 0.0000 255 63 0 255 60 00
30 1.0000 0.5000 0.0000 255 127 0 255 125 0
40 1.0000 0.7500 0.0000 255 191 0 255 190 0
50 1.0000 1.0000 0.0000 255 255 0 255 255 0
60 0.7500 1.0000 0.0000 191 255 0 189 255 0
70 0.5000 1.0000 0.0000 127 255 0 123 255 0
80 0.2500 1.0000 0.0000 63 255 0 57 255 0
90 0.0000 1.0000 0.0000 0 255 0 0 255 0
100 0.0000 1.0000 0.2500 0 255 63 0 255 57
110 0.0000 1.0000 0.5000 0 255 127 0 255 123
120 0.0000 1.0000 0.7500 0 255 191 0 255 189
130 0.0000 1.0000 1.0000 0 255 255 0 255 255
140 0.0000 0.7500 1.0000 0 191 255 0 190 255
150 0.0000 0.5000 1.0000 0 127 255 0 125 255
160 0.0000 0.2500 1.0000 0 63 255 0 60 255
170 0.0000 0.0000 1.0000 0 0 255 0 0 255
180 0.2500 0.0000 1.0000 63 0 255 57 0 255
190 0.5000 0.0000 1.0000 127 0 255 123 0 255
200 0.7500 0.0000 1.0000 191 0 255 189 0 255
210 1.0000 0.0000 1.0000 255 0 255 255 0 255
220 1.0000 0.0000 0.7500 255 0 191 255 0 189
230 1.0000 0.0000 0.5000 255 0 127 255 0 123
240 1.0000 0.0000 0.2500 255 0 63 255 0 57
Es ist deutlich zu sehen, dass wir es hier mit Vierteln des
Maximalwertes zu tun haben. Die Rotwerte lassen sich
auch Liste von Integerzahlen darstellen, die dann mit
0.25 durchmultipliziert werden muss:
(4 4 4 4 4 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 4 4 4 4)
^ ^ ^
R B G ; 30
Für Grün und Blau gilt, das wird man schnell feststellen,
die gleiche Liste - man muss nur an einer anderen Stelle
anfangen, namlich um jeweils 8 Elemente nach links verschoben.
Als Beispiel zum Verständnis ist hier Farbe 30 angegeben, sie
setzt sich so zusammen:
4*0.25, 2*0.25, 0*0.25 == 1, 0.5, 0
Als nächstes können wir feststellen, dass bei den geraden
Endziffern eine Verdunklung der Farbe stattfindet. 12 ist
etwas dunkler als 10, 14 wiederum dunkler als 12 usw.
Diese Abdunklungsfaktoren lassen sich aus der AutoDESK-Tabelle
einfach herauslesen: Endziffer 2 bedeutet x 0.65, 4 entspricht
0.5, dann folgt der Faktor 0.3 für die Endziffer 6 und zum
Schluss 0.15 bei der 8. Das bedeutet ganz konkret: Um die
Farbe 78 zu ermitteln, müssen wir zunächst Farbe 70 berechnen
(4 4 4 4 4 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 4 4 4 4)
^ ^ ^
R B G ; 70
2*0.25, 4*0.25, 0*0.25 == 0.5, 1.0, 0.0
und diese Werte dann noch einmal mit 0.15 multiplizieren.
Das Ergebnis unserer Rechnung lautet 0.0750, 0.1500, 0.0000
bzw. 19, 38, 0 und stimmt mit der AutoDESK-Tabelle überein.
Als letztes bleiben uns noch die Farben mit den ungeraden
Endziffern. Diese sind gegenüber ihren Vorgängern mit gerader
Endziffer aufgehellt - hier wird aber nicht mit einem einfachen
Faktor multipliziert, es werden stattdessen die Gegenfarben
angehoben, sodass gleichzeitig die Farbsättigung sinkt. Um diese
Werte zu ermitteln, müssen wir ein weiteres Mal auf unsere
Zahlenfolge zugreifen, diesmal aber um weitere zwölf nach rechts
verschoben und dann wieder jeweils 8 Elemente nach links gehend
für die nächste Farbe. Multipliziert wird nicht mit 0.25, sondern
mit 0.125:
(4 4 4 4 4 3 2 1 0 0 0 0 0 0 0 0 0 1 2 3 4 4 4 4)
^ ^ ^
R B G ; 70
2*0.25, 4*0.25, 0*0.25 == 0.5, 1.0, 0.0
^ ^ ^
B G R ; addieren für 71
2*0.125, 0*0.125, 4*0.125 == 0.25, 0.0, 0.5
Als Ergebnis der Addition erhalten wir für Farbe 71 die
Zahlen 0.75, 1.0, 0.5. Für die Abdunklung der ungeraden Farben
gilt das Gleiche wie für die geraden Farben, d.h. wenn wir
z.B. Farbe 75 berechnen möchten, multiplizieren wir Farbe
71 mit dem Faktor 0.5 durch - das Ergebnis ist 0.375, 0.5, 0.25.
Damit haben wir das System der Farben 'geknackt'. Es bleiben
uns noch die beiden anderen Teile der Tabelle. Da es sich hier
kaum lohnt, einen hohen Aufwand zu betreiben, tun wir folgendes:
Die ersten 6 Farben werden umgerechnet auf ihre Farbnummern
im Hauptteil. Was dann noch bleibt, sind ausschliesslich Graustufen,
nämlich die Nummern 7, 8, 9, 250, 251, ... , 255. Da die RGB-Werte
hier jeweils gleich sind, wird eine Zahl pro Graustufe fest im
Programm verdrahtet.
Das ganze Programm kann jetzt recht kurz codiert werden:
(defun aci2rgb(n / l1 l3)
(cond
( (or(> n 255)(< n 1))nil)
( (> 7 n 0)(aci2rgb(+ 10(* 40(1- n)))))
( (> 250 n 9)
(setq l1
'(0 1 2 3 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 0 0 0)
)
(setq l3 '(1 0.65 0.5 0.3 0.15))
(mapcar
'(lambda(v w / )
(fix
(* 255
(+
(*
0.25
(nth(rem(+(1-(/ n 10))v)24)l1)
(nth(/(rem n 10)2)l3)
)
(*
(rem n 2)
0.125
(nth(rem(+(1-(/ n 10))w)24)l1)
(nth(/(rem n 10)2)l3)
)
)
)
)
)
'(8 0 16)
'(20 12 4)
)
)
(1
(apply
'(lambda(v w / )(list w w w))
(assoc n
'((7 255)(8 128)(9 192)(250 84)(251 118)(252 152)
(253 186)(254 220)(255 255)))
)
)
)
)
Ich weiss, dass hier zwar die Denkansätze erläutert
wurden, aber die Funktion selbst nicht erklärt wird.
Aber das hier ist nicht das Einsteiger-Tutorial - ich
gehe davon aus, dass jemand, der diese Funktion nicht
auf Anhieb versteht, in der Lage ist, sie 'auseinanderzunehmen'
und sich selbst ein Bild zu machen. Dieses Kapitel ist
sowieso schon viel zu lang!
Abschliessend bleibt die Frage, warum die Werte aus der
Autodesk-Tabelle und die in der Praxis gemessenen Farben
nicht übereinstimmen. Leider kann ich diese Frage auch
nicht beantworten! Eine wesentlich bessere Übereinstimmung
mit der Realtität erhält man, wenn man statt der von
AutoDESK angegebenen Abdunklungsfaktoren (1, 0.65, 0.5, 0.3, 0.15)
diese Zahlen verwendet: (1, 0.8, 0.65, 0.5, 0.3). Aber auch
die festverdrahteten Graustufen müssen angepasst werden.
Hier noch einmal die gleiche Funktion mit den realitätsnahen
Werten:
(defun aci2rgb-n(n / l1 l3)
(cond
( (or(> n 255)(< n 1))nil)
( (> 7 n 0)(aci2rgb(+ 10(* 40(1- n)))))
( (> 250 n 9)
(setq l1
'(0 1 2 3 4 4 4 4 4 4 4 4 4 3 2 1 0 0 0 0 0 0 0 0)
)
(setq l3 '(1 0.8 0.6 0.5 0.3))
(mapcar
'(lambda(v w / )
(fix
(* 255
(+
(*
0.25
(nth(rem(+(1-(/ n 10))v)24)l1)
(nth(/(rem n 10)2)l3)
)
(*
(rem n 2)
0.125
(nth(rem(+(1-(/ n 10))w)24)l1)
(nth(/(rem n 10)2)l3)
)
)
)
)
)
'(8 0 16)
'(20 12 4)
)
)
(1
(apply
'(lambda(v w / )(list w w w))
(assoc n
'((7 255)(8 128)(9 192)(250 51)(251 91)(252 132)
(253 173)(254 214)(255 255)))
)
)
)
)
Zum Schluss noch einmal eine Tabelle als Gegenüberstellung:
Rechts sind drei weitere Spalten hinzugekommen, nämlich die
Ergebnisse unserer Berechnungen mit der Funktion
(aci2rgb-n), damit man sie mit den praktisch
ermittelten Werten vergleichen kann. Dafür wurde linke Teil
(die Zahlen zwischen 0 und 1) aus Platzgründen weggelassen.
Es sind nur die Farben des Hauptteils (10 - 249) erfasst.
AutoDESK | ermittelt | Näherung
(aci2rgb) Pipette (aci2rgb-n)
ACI R G B R G B
10 255 0 0 255 0 0 255 0 0
11 255 127 127 255 125 123 255 127 127
12 165 0 0 206 0 0 204 0 0
13 165 82 82 206 101 99 204 102 102
14 127 0 0 156 0 0 153 0 0
15 127 63 63 156 77 74 153 76 76
16 76 0 0 123 0 0 127 0 0
17 76 38 38 123 60 57 127 63 63
18 38 0 0 74 0 0 76 0 0
19 38 19 19 74 36 33 76 38 38
20 255 63 0 255 60 00 255 63 0
21 255 159 127 255 158 123 255 159 127
22 165 41 0 206 48 0 204 51 0
23 165 103 82 206 125 99 204 127 102
24 127 31 0 156 36 0 153 38 0
25 127 79 63 156 93 74 153 95 76
26 76 19 0 123 28 0 127 31 0
27 76 47 38 123 77 57 127 79 63
28 38 9 0 74 16 0 76 19 0
29 38 23 19 74 44 33 76 47 38
30 255 127 0 255 125 0 255 127 0
31 255 191 127 255 190 123 255 191 127
32 165 82 0 206 101 0 204 102 0
33 165 124 82 206 154 99 204 153 102
34 127 63 0 156 77 0 153 76 0
35 127 95 63 156 113 74 153 114 76
36 76 38 0 123 60 0 127 63 0
37 76 57 38 123 93 57 127 95 63
38 38 19 0 74 36 0 76 38 0
39 38 28 19 74 56 33 76 57 38
40 255 191 0 255 190 0 255 191 0
41 255 223 127 255 223 123 255 223 127
42 165 124 0 206 154 0 204 153 0
43 165 145 82 206 178 99 204 178 102
44 127 95 0 156 113 0 153 114 0
45 127 111 63 156 134 74 153 133 76
46 76 57 0 123 93 0 127 95 0
47 76 66 38 123 109 57 127 111 63
48 38 28 0 74 56 0 76 57 0
49 38 33 19 74 65 33 76 66 38
50 255 255 0 255 255 0 255 255 0
51 255 255 127 255 255 123 255 255 127
52 165 165 0 206 207 0 204 204 0
53 165 165 82 206 207 99 204 204 102
54 127 127 0 156 154 0 153 153 0
55 127 127 63 156 154 74 153 153 76
56 76 76 0 123 125 0 127 127 0
57 76 76 38 123 125 57 127 127 63
58 38 38 0 74 77 0 76 76 0
59 38 38 19 74 77 33 76 76 38
60 191 255 0 189 255 0 191 255 0
61 223 255 127 222 255 123 223 255 127
62 124 165 0 156 207 0 153 204 0
63 145 165 82 181 207 99 178 204 102
64 95 127 0 115 154 0 114 153 0
65 111 127 63 132 154 74 133 153 76
66 57 76 0 90 125 0 95 127 0
67 66 76 38 107 125 57 111 127 63
68 28 38 0 57 77 0 57 76 0
69 33 38 19 66 77 33 66 76 38
70 127 255 0 123 255 0 127 255 0
71 191 255 127 189 255 123 191 255 127
72 82 165 0 99 207 0 102 204 0
73 124 165 82 156 207 99 153 204 102
74 63 127 0 74 154 0 76 153 0
75 95 127 63 115 154 74 114 153 76
76 38 76 0 57 125 0 63 127 0
77 57 76 38 90 125 57 95 127 63
78 19 38 0 33 77 0 38 76 0
79 28 38 19 57 77 33 57 76 38
80 63 255 0 57 255 0 63 255 0
81 159 255 127 156 255 123 159 255 127
82 41 165 0 49 207 0 51 204 0
83 103 165 82 123 207 99 127 204 102
84 31 127 0 33 154 0 38 153 0
85 79 127 63 90 154 74 95 153 76
86 19 76 0 24 125 0 31 127 0
87 47 76 38 74 125 57 79 127 63
88 9 38 0 16 77 0 19 76 0
89 23 38 19 41 77 33 47 76 38
90 0 255 0 0 255 0 0 255 0
91 127 255 127 123 255 123 127 255 127
92 0 165 0 0 207 0 0 204 0
93 82 165 82 99 207 99 102 204 102
94 0 127 0 0 154 0 0 153 0
95 63 127 63 74 154 74 76 153 76
96 0 76 0 0 125 0 0 127 0
97 38 76 38 57 125 57 63 127 63
98 0 38 0 0 77 0 0 76 0
99 19 38 19 33 77 33 38 76 38
100 0 255 63 0 255 57 0 255 63
101 127 255 159 123 255 156 127 255 159
102 0 165 41 0 207 49 0 204 51
103 82 165 103 99 207 123 102 204 127
104 0 127 31 0 154 33 0 153 38
105 63 127 79 74 154 90 76 153 95
106 0 76 19 0 125 24 0 127 31
107 38 76 47 57 125 74 63 127 79
108 0 38 9 0 77 16 0 76 19
109 19 38 23 33 77 41 38 76 47
110 0 255 127 0 255 123 0 255 127
111 127 255 191 123 255 189 127 255 191
112 0 165 82 0 207 99 0 204 102
113 82 165 124 99 207 156 102 204 153
114 0 127 63 0 154 74 0 153 76
115 63 127 95 74 154 115 76 153 114
116 0 76 38 0 125 57 0 127 63
117 38 76 57 57 125 90 63 127 95
118 0 38 19 0 77 33 0 76 38
119 19 38 28 33 77 57 38 76 57
120 0 255 191 0 255 189 0 255 191
121 127 255 223 123 255 222 127 255 223
122 0 165 124 0 207 156 0 204 153
123 82 165 145 99 207 181 102 204 178
124 0 127 95 0 154 115 0 153 114
125 63 127 111 74 154 132 76 153 133
126 0 76 57 0 125 90 0 127 95
127 38 76 66 57 125 107 63 127 111
128 0 38 28 0 77 57 0 76 57
129 19 38 33 33 77 66 38 76 66
130 0 255 255 0 255 255 0 255 255
131 127 255 255 123 255 255 127 255 255
132 0 165 165 0 207 206 0 204 204
133 82 165 165 99 207 206 102 204 204
134 0 127 127 0 154 156 0 153 153
135 63 127 127 74 154 156 76 153 153
136 0 76 76 0 125 123 0 127 127
137 38 76 76 57 125 123 63 127 127
138 0 38 38 0 77 74 0 76 76
139 19 38 38 33 77 74 38 76 76
140 0 191 255 0 190 255 0 191 255
141 127 223 255 123 223 255 127 223 255
142 0 124 165 0 154 206 0 153 204
143 82 145 165 99 178 206 102 178 204
144 0 95 127 0 113 156 0 114 153
145 63 111 127 74 13 156 76 133 153
146 0 57 76 0 93 123 0 95 127
147 38 66 76 57 109 123 63 111 127
148 0 28 38 0 56 74 0 57 76
149 19 33 38 33 65 74 38 66 76
150 0 127 255 0 125 255 0 127 255
151 127 191 255 123 190 255 127 191 255
152 0 82 165 0 101 206 0 102 204
153 82 124 165 99 154 206 102 153 204
154 0 63 127 0 77 156 0 76 153
155 63 95 127 74 113 156 76 114 153
156 0 38 76 0 60 123 0 63 127
157 38 57 76 57 93 123 63 95 127
158 0 19 38 0 36 74 0 38 76
159 19 28 38 33 56 74 38 57 76
160 0 63 255 0 60 255 0 63 255
161 127 159 255 123 158 255 127 159 255
162 0 41 165 0 48 206 0 51 204
163 82 103 165 99 125 206 102 127 204
164 0 31 127 0 36 156 0 38 153
165 63 79 127 74 93 156 76 95 153
166 0 19 76 0 28 123 0 31 127
167 38 47 76 57 77 123 63 79 127
168 0 9 38 0 16 74 0 19 76
169 19 23 38 33 44 74 38 47 76
170 0 0 255 0 0 255 0 0 255
171 127 127 255 123 125 255 127 127 255
172 0 0 165 0 0 206 0 0 204
173 82 82 165 99 101 206 102 102 204
174 0 0 127 0 0 156 0 0 153
175 63 63 127 74 77 156 76 76 153
176 0 0 76 0 0 123 0 0 127
177 38 38 76 57 60 123 63 63 127
178 0 0 38 0 0 74 0 0 76
179 19 19 38 33 36 74 38 38 76
180 63 0 255 57 0 255 63 0 255
181 159 127 255 156 125 255 159 127 255
182 41 0 165 49 0 206 51 0 204
183 103 82 165 123 101 206 127 102 204
184 31 0 127 33 0 156 38 0 153
185 79 63 127 90 77 156 95 76 153
186 19 0 76 24 0 123 31 0 127
187 47 38 76 74 60 123 79 63 127
188 9 0 38 16 0 74 19 0 76
189 23 19 38 41 36 74 47 38 76
190 127 0 255 123 0 255 127 0 255
191 191 127 255 189 125 255 191 127 255
192 82 0 165 99 0 206 102 0 204
193 124 82 165 156 101 206 153 102 204
194 63 0 127 74 0 156 76 0 153
195 95 63 127 115 77 156 114 76 153
196 38 0 76 57 0 123 63 0 127
197 57 38 76 90 60 123 95 63 127
198 19 0 38 33 0 74 38 0 76
199 28 19 38 57 36 74 57 38 76
200 191 0 255 189 0 255 191 0 255
201 223 127 255 122 125 255 223 127 255
202 124 0 165 156 0 206 153 0 204
203 145 82 165 181 101 206 178 102 204
204 95 0 127 115 0 156 114 0 153
205 111 63 127 132 77 156 133 76 153
206 57 0 76 90 0 123 95 0 127
207 66 38 76 107 60 123 111 63 127
208 28 0 38 57 0 74 57 0 76
209 33 19 38 66 36 74 66 38 76
210 255 0 255 255 0 255 255 0 255
211 255 127 255 255 125 255 255 127 255
212 165 0 165 206 0 206 204 0 204
213 165 82 165 206 101 206 204 102 204
214 127 0 127 156 0 156 153 0 153
215 127 63 127 156 77 156 153 76 153
216 76 0 76 123 0 123 127 0 127
217 76 38 76 123 60 123 127 63 127
218 38 0 38 74 0 74 76 0 76
219 38 19 38 74 36 74 76 38 76
220 255 0 191 255 0 189 255 0 191
221 255 127 223 255 125 222 255 127 223
222 165 0 124 206 0 156 204 0 153
223 165 82 145 206 101 181 204 102 178
224 127 0 95 156 0 115 153 0 114
225 127 63 111 156 77 132 153 76 133
226 76 0 57 123 0 90 127 0 95
227 76 38 66 123 60 107 127 63 111
228 38 0 28 74 0 57 76 0 57
229 38 19 33 74 36 66 76 38 66
230 255 0 127 255 0 123 255 0 127
231 255 127 191 255 125 189 255 127 191
232 165 0 82 206 0 99 204 0 102
233 165 82 124 206 101 156 204 102 153
234 127 0 63 156 0 74 153 0 76
235 127 63 95 156 77 115 153 76 114
236 76 0 38 123 0 57 127 0 63
237 76 38 57 123 60 90 127 63 95
238 38 0 19 74 0 33 76 0 38
239 38 19 28 74 36 57 76 38 57
240 255 0 63 255 0 57 255 0 63
241 255 127 159 255 125 156 255 127 159
242 165 0 41 206 0 49 204 0 51
243 165 82 103 206 101 123 204 102 127
244 127 0 31 156 0 33 153 0 38
245 127 63 79 156 77 90 153 76 95
246 76 0 19 123 0 24 127 0 31
247 76 38 47 123 60 74 127 63 79
248 38 0 9 74 0 16 76 0 19
249 38 19 23 74 36 41 76 38 47
Nach Fertigstellung dieses Kapitels und der Tabellen habe
ich noch einen weiteren Test durchgeführt: Während die
erste Ermittlung der praktischen Werte unter Acad 2000i
durchgeführt wurde, habe ich die Ergebnisse noch einmal
auf einem anderen Rechner mit ACAD 2002 verglichen: Die
mit der Pipette gemessenen Ergebnisse stimmen mit
(aci2rgb-n) hundertprozentig überein, nicht die geringste
Abweichung ist festzustellen!
Ich gehe also davon aus, dass die von AutoDESK veröffentlichte
Tabelle mit den Faktoren (1 0.65 0.5 0.3 0.15) schlicht und
ergreifend falsch ist und die Werte der Reihe (1 0.8 0.6 0.5 0.3)
tatsächlich verwendet werden. Für die (geringfügigen)
Abweichungen unter 2000i habe ich keine Erklärung. Zum
Schluss noch einmal die vollständige Tabelle mit den
richtigen Werten:
ACI R G B
1 255 0 0
2 255 255 0
3 0 255 0
4 0 255 255
5 0 0 255
6 255 0 255
7 255 255 255
8 128 128 128
9 192 192 192
10 255 0 0
11 255 127 127
12 204 0 0
13 204 102 102
14 153 0 0
15 153 76 76
16 127 0 0
17 127 63 63
18 76 0 0
19 76 38 38
20 255 63 0
21 255 159 127
22 204 51 0
23 204 127 102
24 153 38 0
25 153 95 76
26 127 31 0
27 127 79 63
28 76 19 0
29 76 47 38
30 255 127 0
31 255 191 127
32 204 102 0
33 204 153 102
34 153 76 0
35 153 114 76
36 127 63 0
37 127 95 63
38 76 38 0
39 76 57 38
40 255 191 0
41 255 223 127
42 204 153 0
43 204 178 102
44 153 114 0
45 153 133 76
46 127 95 0
47 127 111 63
48 76 57 0
49 76 66 38
50 255 255 0
51 255 255 127
52 204 204 0
53 204 204 102
54 153 153 0
55 153 153 76
56 127 127 0
57 127 127 63
58 76 76 0
59 76 76 38
60 191 255 0
61 223 255 127
62 153 204 0
63 178 204 102
64 114 153 0
65 133 153 76
66 95 127 0
67 111 127 63
68 57 76 0
69 66 76 38
70 127 255 0
71 191 255 127
72 102 204 0
73 153 204 102
74 76 153 0
75 114 153 76
76 63 127 0
77 95 127 63
78 38 76 0
79 57 76 38
80 63 255 0
81 159 255 127
82 51 204 0
83 127 204 102
84 38 153 0
85 95 153 76
86 31 127 0
87 79 127 63
88 19 76 0
89 47 76 38
90 0 255 0
91 127 255 127
92 0 204 0
93 102 204 102
94 0 153 0
95 76 153 76
96 0 127 0
97 63 127 63
98 0 76 0
99 38 76 38
100 0 255 63
101 127 255 159
102 0 204 51
103 102 204 127
104 0 153 38
105 76 153 95
106 0 127 31
107 63 127 79
108 0 76 19
109 38 76 47
110 0 255 127
111 127 255 191
112 0 204 102
113 102 204 153
114 0 153 76
115 76 153 114
116 0 127 63
117 63 127 95
118 0 76 38
119 38 76 57
120 0 255 191
121 127 255 223
122 0 204 153
123 102 204 178
124 0 153 114
125 76 153 133
126 0 127 95
127 63 127 111
128 0 76 57
129 38 76 66
130 0 255 255
131 127 255 255
132 0 204 204
133 102 204 204
134 0 153 153
135 76 153 153
136 0 127 127
137 63 127 127
138 0 76 76
139 38 76 76
140 0 191 255
141 127 223 255
142 0 153 204
143 102 178 204
144 0 114 153
145 76 133 153
146 0 95 127
147 63 111 127
148 0 57 76
149 38 66 76
150 0 127 255
151 127 191 255
152 0 102 204
153 102 153 204
154 0 76 153
155 76 114 153
156 0 63 127
157 63 95 127
158 0 38 76
159 38 57 76
160 0 63 255
161 127 159 255
162 0 51 204
163 102 127 204
164 0 38 153
165 76 95 153
166 0 31 127
167 63 79 127
168 0 19 76
169 38 47 76
170 0 0 255
171 127 127 255
172 0 0 204
173 102 102 204
174 0 0 153
175 76 76 153
176 0 0 127
177 63 63 127
178 0 0 76
179 38 38 76
180 63 0 255
181 159 127 255
182 51 0 204
183 127 102 204
184 38 0 153
185 95 76 153
186 31 0 127
187 79 63 127
188 19 0 76
189 47 38 76
190 127 0 255
191 191 127 255
192 102 0 204
193 153 102 204
194 76 0 153
195 114 76 153
196 63 0 127
197 95 63 127
198 38 0 76
199 57 38 76
200 191 0 255
201 223 127 255
202 153 0 204
203 178 102 204
204 114 0 153
205 133 76 153
206 95 0 127
207 111 63 127
208 57 0 76
209 66 38 76
210 255 0 255
211 255 127 255
212 204 0 204
213 204 102 204
214 153 0 153
215 153 76 153
216 127 0 127
217 127 63 127
218 76 0 76
219 76 38 76
220 255 0 191
221 255 127 223
222 204 0 153
223 204 102 178
224 153 0 114
225 153 76 133
226 127 0 95
227 127 63 111
228 76 0 57
229 76 38 66
230 255 0 127
231 255 127 191
232 204 0 102
233 204 102 153
234 153 0 76
235 153 76 114
236 127 0 63
237 127 63 95
238 76 0 38
239 76 38 57
240 255 0 63
241 255 127 159
242 204 0 51
243 204 102 127
244 153 0 38
245 153 76 95
246 127 0 31
247 127 63 79
248 76 0 19
249 76 38 47
250 51 51 51
251 91 91 91
252 132 132 132
253 173 173 173
254 214 214 214
255 255 255 255