%!PS-Adobe-3.0 EPSF-3.0 LG170-7R.EPS %%BoundingBox: 70 82 785 580 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [ /Title (PostScript pictures: http://130.149.60.45/~farbmetrik/LG17/) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://www.ps.bam.de or http://130.149.60.45/~farbmetrik) /Keywords (image reproduction, colour devices, colour vision) /Creator (klaus.Richter@mac.com) /CreationDate (D:2010110112000) /ModDate (D:2010110112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %END PDFDE011 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /FileDat (LG17_sRGB display) def /LAB*TE [(sRGB_IEC_61966_2_1)] def /nrgbxyY 7560 array def %1080x7 to be calculated by XYZ*system /RGB0 3246 array def %1080*3+6 /RGB0 [%1000 x rgb* nr. pos 1080 colours 0000 0000 0000 %0000 A01 0000 0000 0125 %0001 A02 0000 0000 0250 %0002 A03 0000 0000 0375 %0003 A04 0000 0000 0500 %0004 A05 0000 0000 0625 %0005 A06 0000 0000 0750 %0006 A07 0000 0000 0875 %0007 A08 0000 0000 1000 %0008 A09 0000 0125 0000 %0009 B01 0000 0125 0125 %0010 B02 0000 0125 0250 %0011 B03 0000 0125 0375 %0012 B04 0000 0125 0500 %0013 B05 0000 0125 0625 %0014 B06 0000 0125 0750 %0015 B07 0000 0125 0875 %0016 B08 0000 0125 1000 %0017 B09 0000 0250 0000 %0018 C01 0000 0250 0125 %0019 C02 0000 0250 0250 %0020 C03 0000 0250 0375 %0021 C04 0000 0250 0500 %0022 C05 0000 0250 0625 %0023 C06 0000 0250 0750 %0024 C07 0000 0250 0875 %0025 C08 0000 0250 1000 %0026 C09 0000 0375 0000 %0027 D01 0000 0375 0125 %0028 D02 0000 0375 0250 %0029 D03 0000 0375 0375 %0030 D04 0000 0375 0500 %0031 D05 0000 0375 0625 %0032 D06 0000 0375 0750 %0033 D07 0000 0375 0875 %0034 D08 0000 0375 1000 %0035 D09 0000 0500 0000 %0036 E01 0000 0500 0125 %0037 E02 0000 0500 0250 %0038 E03 0000 0500 0375 %0039 E04 0000 0500 0500 %0040 E05 0000 0500 0625 %0041 E06 0000 0500 0750 %0042 E07 0000 0500 0875 %0043 E08 0000 0500 1000 %0044 E09 0000 0625 0000 %0045 F01 0000 0625 0125 %0046 F02 0000 0625 0250 %0047 F03 0000 0625 0375 %0048 F04 0000 0625 0500 %0049 F05 0000 0625 0625 %0050 F06 0000 0625 0750 %0051 F07 0000 0625 0875 %0052 F08 0000 0625 1000 %0053 F09 0000 0750 0000 %0054 G01 0000 0750 0125 %0055 G02 0000 0750 0250 %0056 G03 0000 0750 0375 %0057 G04 0000 0750 0500 %0058 G05 0000 0750 0625 %0059 G06 0000 0750 0750 %0060 G07 0000 0750 0875 %0061 G08 0000 0750 1000 %0062 G09 0000 0875 0000 %0063 H01 0000 0875 0125 %0064 H02 0000 0875 0250 %0065 H03 0000 0875 0375 %0066 H04 0000 0875 0500 %0067 H05 0000 0875 0625 %0068 H06 0000 0875 0750 %0069 H07 0000 0875 0875 %0070 H08 0000 0875 1000 %0071 H09 0000 1000 0000 %0072 I01 0000 1000 0125 %0073 I02 0000 1000 0250 %0074 I03 0000 1000 0375 %0075 I04 0000 1000 0500 %0076 I05 0000 1000 0625 %0077 I06 0000 1000 0750 %0078 I07 0000 1000 0875 %0079 I08 0000 1000 1000 %0080 I09 0125 0000 0000 %0081 J01 0125 0000 0125 %0082 J02 0125 0000 0250 %0083 J03 0125 0000 0375 %0084 J04 0125 0000 0500 %0085 J05 0125 0000 0625 %0086 J06 0125 0000 0750 %0087 J07 0125 0000 0875 %0088 J08 0125 0000 1000 %0089 J09 0125 0125 0000 %0090 K01 0125 0125 0125 %0091 K02 0125 0125 0250 %0092 K03 0125 0125 0375 %0093 K04 0125 0125 0500 %0094 K05 0125 0125 0625 %0095 K06 0125 0125 0750 %0096 K07 0125 0125 0875 %0097 K08 0125 0125 1000 %0098 K09 0125 0250 0000 %0099 L01 0125 0250 0125 %0100 L02 0125 0250 0250 %0101 L03 0125 0250 0375 %0102 L04 0125 0250 0500 %0103 L05 0125 0250 0625 %0104 L06 0125 0250 0750 %0105 L07 0125 0250 0875 %0106 L08 0125 0250 1000 %0107 L09 0125 0375 0000 %0108 M01 0125 0375 0125 %0109 M02 0125 0375 0250 %0110 M03 0125 0375 0375 %0111 M04 0125 0375 0500 %0112 M05 0125 0375 0625 %0113 M06 0125 0375 0750 %0114 M07 0125 0375 0875 %0115 M08 0125 0375 1000 %0116 M09 0125 0500 0000 %0117 N01 0125 0500 0125 %0118 N02 0125 0500 0250 %0119 N03 0125 0500 0375 %0120 N04 0125 0500 0500 %0121 N05 0125 0500 0625 %0122 N06 0125 0500 0750 %0123 N07 0125 0500 0875 %0124 N08 0125 0500 1000 %0125 N09 0125 0625 0000 %0126 O01 0125 0625 0125 %0127 O02 0125 0625 0250 %0128 O03 0125 0625 0375 %0129 O04 0125 0625 0500 %0130 O05 0125 0625 0625 %0131 O06 0125 0625 0750 %0132 O07 0125 0625 0875 %0133 O08 0125 0625 1000 %0134 O09 0125 0750 0000 %0135 P01 0125 0750 0125 %0136 P02 0125 0750 0250 %0137 P03 0125 0750 0375 %0138 P04 0125 0750 0500 %0139 P05 0125 0750 0625 %0140 P06 0125 0750 0750 %0141 P07 0125 0750 0875 %0142 P08 0125 0750 1000 %0143 P09 0125 0875 0000 %0144 Q01 0125 0875 0125 %0145 Q02 0125 0875 0250 %0146 Q03 0125 0875 0375 %0147 Q04 0125 0875 0500 %0148 Q05 0125 0875 0625 %0149 Q06 0125 0875 0750 %0150 Q07 0125 0875 0875 %0151 Q08 0125 0875 1000 %0152 Q09 0125 1000 0000 %0153 R01 0125 1000 0125 %0154 R02 0125 1000 0250 %0155 R03 0125 1000 0375 %0156 R04 0125 1000 0500 %0157 R05 0125 1000 0625 %0158 R06 0125 1000 0750 %0159 R07 0125 1000 0875 %0160 R08 0125 1000 1000 %0161 R09 0250 0000 0000 %0162 S01 0250 0000 0125 %0163 S02 0250 0000 0250 %0164 S03 0250 0000 0375 %0165 S04 0250 0000 0500 %0166 S05 0250 0000 0625 %0167 S06 0250 0000 0750 %0168 S07 0250 0000 0875 %0169 S08 0250 0000 1000 %0170 S09 0250 0125 0000 %0171 T01 0250 0125 0125 %0172 T02 0250 0125 0250 %0173 T03 0250 0125 0375 %0174 T04 0250 0125 0500 %0175 T05 0250 0125 0625 %0176 T06 0250 0125 0750 %0177 T07 0250 0125 0875 %0178 T08 0250 0125 1000 %0179 T09 0250 0250 0000 %0180 U01 0250 0250 0125 %0181 U02 0250 0250 0250 %0182 U03 0250 0250 0375 %0183 U04 0250 0250 0500 %0184 U05 0250 0250 0625 %0185 U06 0250 0250 0750 %0186 U07 0250 0250 0875 %0187 U08 0250 0250 1000 %0188 U09 0250 0375 0000 %0189 V01 0250 0375 0125 %0190 V02 0250 0375 0250 %0191 V03 0250 0375 0375 %0192 V04 0250 0375 0500 %0193 V05 0250 0375 0625 %0194 V06 0250 0375 0750 %0195 V07 0250 0375 0875 %0196 V08 0250 0375 1000 %0197 V09 0250 0500 0000 %0198 W01 0250 0500 0125 %0199 W02 0250 0500 0250 %0200 W03 0250 0500 0375 %0201 W04 0250 0500 0500 %0202 W05 0250 0500 0625 %0203 W06 0250 0500 0750 %0204 W07 0250 0500 0875 %0205 W08 0250 0500 1000 %0206 W09 0250 0625 0000 %0207 X01 0250 0625 0125 %0208 X02 0250 0625 0250 %0209 X03 0250 0625 0375 %0210 X04 0250 0625 0500 %0211 X05 0250 0625 0625 %0212 X06 0250 0625 0750 %0213 X07 0250 0625 0875 %0214 X08 0250 0625 1000 %0215 X09 0250 0750 0000 %0216 Y01 0250 0750 0125 %0217 Y02 0250 0750 0250 %0218 Y03 0250 0750 0375 %0219 Y04 0250 0750 0500 %0220 Y05 0250 0750 0625 %0221 Y06 0250 0750 0750 %0222 Y07 0250 0750 0875 %0223 Y08 0250 0750 1000 %0224 Y09 0250 0875 0000 %0225 Z01 0250 0875 0125 %0226 Z02 0250 0875 0250 %0227 Z03 0250 0875 0375 %0228 Z04 0250 0875 0500 %0229 Z05 0250 0875 0625 %0230 Z06 0250 0875 0750 %0231 Z07 0250 0875 0875 %0232 Z08 0250 0875 1000 %0233 Z09 0250 1000 0000 %0234 a01 0250 1000 0125 %0235 a02 0250 1000 0250 %0236 a03 0250 1000 0375 %0237 a04 0250 1000 0500 %0238 a05 0250 1000 0625 %0239 a06 0250 1000 0750 %0240 a07 0250 1000 0875 %0241 a08 0250 1000 1000 %0242 a09 0375 0000 0000 %0243 A10 0375 0000 0125 %0244 A11 0375 0000 0250 %0245 A12 0375 0000 0375 %0246 A13 0375 0000 0500 %0247 A14 0375 0000 0625 %0248 A15 0375 0000 0750 %0249 A16 0375 0000 0875 %0250 A17 0375 0000 1000 %0251 A18 0375 0125 0000 %0252 B10 0375 0125 0125 %0253 B11 0375 0125 0250 %0254 B12 0375 0125 0375 %0255 B13 0375 0125 0500 %0256 B14 0375 0125 0625 %0257 B15 0375 0125 0750 %0258 B16 0375 0125 0875 %0259 B17 0375 0125 1000 %0260 B18 0375 0250 0000 %0261 C10 0375 0250 0125 %0262 C11 0375 0250 0250 %0263 C12 0375 0250 0375 %0264 C13 0375 0250 0500 %0265 C14 0375 0250 0625 %0266 C15 0375 0250 0750 %0267 C16 0375 0250 0875 %0268 C17 0375 0250 1000 %0269 C18 0375 0375 0000 %0270 D10 0375 0375 0125 %0271 D11 0375 0375 0250 %0272 D12 0375 0375 0375 %0273 D13 0375 0375 0500 %0274 D14 0375 0375 0625 %0275 D15 0375 0375 0750 %0276 D16 0375 0375 0875 %0277 D17 0375 0375 1000 %0278 D18 0375 0500 0000 %0279 E10 0375 0500 0125 %0280 E11 0375 0500 0250 %0281 E12 0375 0500 0375 %0282 E13 0375 0500 0500 %0283 E14 0375 0500 0625 %0284 E15 0375 0500 0750 %0285 E16 0375 0500 0875 %0286 E17 0375 0500 1000 %0287 E18 0375 0625 0000 %0288 F10 0375 0625 0125 %0289 F11 0375 0625 0250 %0290 F12 0375 0625 0375 %0291 F13 0375 0625 0500 %0292 F14 0375 0625 0625 %0293 F15 0375 0625 0750 %0294 F16 0375 0625 0875 %0295 F17 0375 0625 1000 %0296 F18 0375 0750 0000 %0297 G10 0375 0750 0125 %0298 G11 0375 0750 0250 %0299 G12 0375 0750 0375 %0300 G13 0375 0750 0500 %0301 G14 0375 0750 0625 %0302 G15 0375 0750 0750 %0303 G16 0375 0750 0875 %0304 G17 0375 0750 1000 %0305 G18 0375 0875 0000 %0306 H10 0375 0875 0125 %0307 H11 0375 0875 0250 %0308 H12 0375 0875 0375 %0309 H13 0375 0875 0500 %0310 H14 0375 0875 0625 %0311 H15 0375 0875 0750 %0312 H16 0375 0875 0875 %0313 H17 0375 0875 1000 %0314 H18 0375 1000 0000 %0315 I10 0375 1000 0125 %0316 I11 0375 1000 0250 %0317 I12 0375 1000 0375 %0318 I13 0375 1000 0500 %0319 I14 0375 1000 0625 %0320 I15 0375 1000 0750 %0321 I16 0375 1000 0875 %0322 I17 0375 1000 1000 %0323 I18 0500 0000 0000 %0324 J10 0500 0000 0125 %0325 J11 0500 0000 0250 %0326 J12 0500 0000 0375 %0327 J13 0500 0000 0500 %0328 J14 0500 0000 0625 %0329 J15 0500 0000 0750 %0330 J16 0500 0000 0875 %0331 J17 0500 0000 1000 %0332 J18 0500 0125 0000 %0333 K10 0500 0125 0125 %0334 K11 0500 0125 0250 %0335 K12 0500 0125 0375 %0336 K13 0500 0125 0500 %0337 K14 0500 0125 0625 %0338 K15 0500 0125 0750 %0339 K16 0500 0125 0875 %0340 K17 0500 0125 1000 %0341 K18 0500 0250 0000 %0342 L10 0500 0250 0125 %0343 L11 0500 0250 0250 %0344 L12 0500 0250 0375 %0345 L13 0500 0250 0500 %0346 L14 0500 0250 0625 %0347 L15 0500 0250 0750 %0348 L16 0500 0250 0875 %0349 L17 0500 0250 1000 %0350 L18 0500 0375 0000 %0351 M10 0500 0375 0125 %0352 M11 0500 0375 0250 %0353 M12 0500 0375 0375 %0354 M13 0500 0375 0500 %0355 M14 0500 0375 0625 %0356 M15 0500 0375 0750 %0357 M16 0500 0375 0875 %0358 M17 0500 0375 1000 %0359 M18 0500 0500 0000 %0360 N10 0500 0500 0125 %0361 N11 0500 0500 0250 %0362 N12 0500 0500 0375 %0363 N13 0500 0500 0500 %0364 N14 0500 0500 0625 %0365 N15 0500 0500 0750 %0366 N16 0500 0500 0875 %0367 N17 0500 0500 1000 %0368 N18 0500 0625 0000 %0369 O10 0500 0625 0125 %0370 O11 0500 0625 0250 %0371 O12 0500 0625 0375 %0372 O13 0500 0625 0500 %0373 O14 0500 0625 0625 %0374 O15 0500 0625 0750 %0375 O16 0500 0625 0875 %0376 O17 0500 0625 1000 %0377 O18 0500 0750 0000 %0378 P10 0500 0750 0125 %0379 P11 0500 0750 0250 %0380 P12 0500 0750 0375 %0381 P13 0500 0750 0500 %0382 P14 0500 0750 0625 %0383 P15 0500 0750 0750 %0384 P16 0500 0750 0875 %0385 P17 0500 0750 1000 %0386 P18 0500 0875 0000 %0387 Q10 0500 0875 0125 %0388 Q11 0500 0875 0250 %0389 Q12 0500 0875 0375 %0390 Q13 0500 0875 0500 %0391 Q14 0500 0875 0625 %0392 Q15 0500 0875 0750 %0393 Q16 0500 0875 0875 %0394 Q17 0500 0875 1000 %0395 Q18 0500 1000 0000 %0396 R10 0500 1000 0125 %0397 R11 0500 1000 0250 %0398 R12 0500 1000 0375 %0399 R13 0500 1000 0500 %0400 R14 0500 1000 0625 %0401 R15 0500 1000 0750 %0402 R16 0500 1000 0875 %0403 R17 0500 1000 1000 %0404 R18 0625 0000 0000 %0405 S10 0625 0000 0125 %0406 S11 0625 0000 0250 %0407 S12 0625 0000 0375 %0408 S13 0625 0000 0500 %0409 S14 0625 0000 0625 %0410 S15 0625 0000 0750 %0411 S16 0625 0000 0875 %0412 S17 0625 0000 1000 %0413 S18 0625 0125 0000 %0414 T10 0625 0125 0125 %0415 T11 0625 0125 0250 %0416 T12 0625 0125 0375 %0417 T13 0625 0125 0500 %0418 T14 0625 0125 0625 %0419 T15 0625 0125 0750 %0420 T16 0625 0125 0875 %0421 T17 0625 0125 1000 %0422 T18 0625 0250 0000 %0423 U10 0625 0250 0125 %0424 U11 0625 0250 0250 %0425 U12 0625 0250 0375 %0426 U13 0625 0250 0500 %0427 U14 0625 0250 0625 %0428 U15 0625 0250 0750 %0429 U16 0625 0250 0875 %0430 U17 0625 0250 1000 %0431 U18 0625 0375 0000 %0432 V10 0625 0375 0125 %0433 V11 0625 0375 0250 %0434 V12 0625 0375 0375 %0435 V13 0625 0375 0500 %0436 V14 0625 0375 0625 %0437 V15 0625 0375 0750 %0438 V16 0625 0375 0875 %0439 V17 0625 0375 1000 %0440 V18 0625 0500 0000 %0441 W10 0625 0500 0125 %0442 W11 0625 0500 0250 %0443 W12 0625 0500 0375 %0444 W13 0625 0500 0500 %0445 W14 0625 0500 0625 %0446 W15 0625 0500 0750 %0447 W16 0625 0500 0875 %0448 W17 0625 0500 1000 %0449 W18 0625 0625 0000 %0450 X10 0625 0625 0125 %0451 X11 0625 0625 0250 %0452 X12 0625 0625 0375 %0453 X13 0625 0625 0500 %0454 X14 0625 0625 0625 %0455 X15 0625 0625 0750 %0456 X16 0625 0625 0875 %0457 X17 0625 0625 1000 %0458 X18 0625 0750 0000 %0459 Y10 0625 0750 0125 %0460 Y11 0625 0750 0250 %0461 Y12 0625 0750 0375 %0462 Y13 0625 0750 0500 %0463 Y14 0625 0750 0625 %0464 Y15 0625 0750 0750 %0465 Y16 0625 0750 0875 %0466 Y17 0625 0750 1000 %0467 Y18 0625 0875 0000 %0468 Z10 0625 0875 0125 %0469 Z11 0625 0875 0250 %0470 Z12 0625 0875 0375 %0471 Z13 0625 0875 0500 %0472 Z14 0625 0875 0625 %0473 Z15 0625 0875 0750 %0474 Z16 0625 0875 0875 %0475 Z17 0625 0875 1000 %0476 Z18 0625 1000 0000 %0477 a10 0625 1000 0125 %0478 a11 0625 1000 0250 %0479 a12 0625 1000 0375 %0480 a13 0625 1000 0500 %0481 a14 0625 1000 0625 %0482 a15 0625 1000 0750 %0483 a16 0625 1000 0875 %0484 a17 0625 1000 1000 %0485 a18 0750 0000 0000 %0486 A19 0750 0000 0125 %0487 A20 0750 0000 0250 %0488 A21 0750 0000 0375 %0489 A22 0750 0000 0500 %0490 A23 0750 0000 0625 %0491 A24 0750 0000 0750 %0492 A25 0750 0000 0875 %0493 A26 0750 0000 1000 %0494 A27 0750 0125 0000 %0495 B19 0750 0125 0125 %0496 B20 0750 0125 0250 %0497 B21 0750 0125 0375 %0498 B22 0750 0125 0500 %0499 B23 0750 0125 0625 %0500 B24 0750 0125 0750 %0501 B25 0750 0125 0875 %0502 B26 0750 0125 1000 %0503 B27 0750 0250 0000 %0504 C19 0750 0250 0125 %0505 C20 0750 0250 0250 %0506 C21 0750 0250 0375 %0507 C22 0750 0250 0500 %0508 C23 0750 0250 0625 %0509 C24 0750 0250 0750 %0510 C25 0750 0250 0875 %0511 C26 0750 0250 1000 %0512 C27 0750 0375 0000 %0513 D19 0750 0375 0125 %0514 D20 0750 0375 0250 %0515 D21 0750 0375 0375 %0516 D22 0750 0375 0500 %0517 D23 0750 0375 0625 %0518 D24 0750 0375 0750 %0519 D25 0750 0375 0875 %0520 D26 0750 0375 1000 %0521 D27 0750 0500 0000 %0522 E19 0750 0500 0125 %0523 E20 0750 0500 0250 %0524 E21 0750 0500 0375 %0525 E22 0750 0500 0500 %0526 E23 0750 0500 0625 %0527 E24 0750 0500 0750 %0528 E25 0750 0500 0875 %0529 E26 0750 0500 1000 %0530 E27 0750 0625 0000 %0531 F19 0750 0625 0125 %0532 F20 0750 0625 0250 %0533 F21 0750 0625 0375 %0534 F22 0750 0625 0500 %0535 F23 0750 0625 0625 %0536 F24 0750 0625 0750 %0537 F25 0750 0625 0875 %0538 F26 0750 0625 1000 %0539 F27 0750 0750 0000 %0540 G19 0750 0750 0125 %0541 G20 0750 0750 0250 %0542 G21 0750 0750 0375 %0543 G22 0750 0750 0500 %0544 G23 0750 0750 0625 %0545 G24 0750 0750 0750 %0546 G25 0750 0750 0875 %0547 G26 0750 0750 1000 %0548 G27 0750 0875 0000 %0549 H19 0750 0875 0125 %0550 H20 0750 0875 0250 %0551 H21 0750 0875 0375 %0552 H22 0750 0875 0500 %0553 H23 0750 0875 0625 %0554 H24 0750 0875 0750 %0555 H25 0750 0875 0875 %0556 H26 0750 0875 1000 %0557 H27 0750 1000 0000 %0558 I19 0750 1000 0125 %0559 I20 0750 1000 0250 %0560 I21 0750 1000 0375 %0561 I22 0750 1000 0500 %0562 I23 0750 1000 0625 %0563 I24 0750 1000 0750 %0564 I25 0750 1000 0875 %0565 I26 0750 1000 1000 %0566 I27 0875 0000 0000 %0567 J19 0875 0000 0125 %0568 J20 0875 0000 0250 %0569 J21 0875 0000 0375 %0570 J22 0875 0000 0500 %0571 J23 0875 0000 0625 %0572 J24 0875 0000 0750 %0573 J25 0875 0000 0875 %0574 J26 0875 0000 1000 %0575 J27 0875 0125 0000 %0576 K19 0875 0125 0125 %0577 K20 0875 0125 0250 %0578 K21 0875 0125 0375 %0579 K22 0875 0125 0500 %0580 K23 0875 0125 0625 %0581 K24 0875 0125 0750 %0582 K25 0875 0125 0875 %0583 K26 0875 0125 1000 %0584 K27 0875 0250 0000 %0585 L19 0875 0250 0125 %0586 L20 0875 0250 0250 %0587 L21 0875 0250 0375 %0588 L22 0875 0250 0500 %0589 L23 0875 0250 0625 %0590 L24 0875 0250 0750 %0591 L25 0875 0250 0875 %0592 L26 0875 0250 1000 %0593 L27 0875 0375 0000 %0594 M19 0875 0375 0125 %0595 M20 0875 0375 0250 %0596 M21 0875 0375 0375 %0597 M22 0875 0375 0500 %0598 M23 0875 0375 0625 %0599 M24 0875 0375 0750 %0600 M25 0875 0375 0875 %0601 M26 0875 0375 1000 %0602 M27 0875 0500 0000 %0603 N19 0875 0500 0125 %0604 N20 0875 0500 0250 %0605 N21 0875 0500 0375 %0606 N22 0875 0500 0500 %0607 N23 0875 0500 0625 %0608 N24 0875 0500 0750 %0609 N25 0875 0500 0875 %0610 N26 0875 0500 1000 %0611 N27 0875 0625 0000 %0612 O19 0875 0625 0125 %0613 O20 0875 0625 0250 %0614 O21 0875 0625 0375 %0615 O22 0875 0625 0500 %0616 O23 0875 0625 0625 %0617 O24 0875 0625 0750 %0618 O25 0875 0625 0875 %0619 O26 0875 0625 1000 %0620 O27 0875 0750 0000 %0621 P19 0875 0750 0125 %0622 P20 0875 0750 0250 %0623 P21 0875 0750 0375 %0624 P22 0875 0750 0500 %0625 P23 0875 0750 0625 %0626 P24 0875 0750 0750 %0627 P25 0875 0750 0875 %0628 P26 0875 0750 1000 %0629 P27 0875 0875 0000 %0630 Q19 0875 0875 0125 %0631 Q20 0875 0875 0250 %0632 Q21 0875 0875 0375 %0633 Q22 0875 0875 0500 %0634 Q23 0875 0875 0625 %0635 Q24 0875 0875 0750 %0636 Q25 0875 0875 0875 %0637 Q26 0875 0875 1000 %0638 Q27 0875 1000 0000 %0639 R19 0875 1000 0125 %0640 R20 0875 1000 0250 %0641 R21 0875 1000 0375 %0642 R22 0875 1000 0500 %0643 R23 0875 1000 0625 %0644 R24 0875 1000 0750 %0645 R25 0875 1000 0875 %0646 R26 0875 1000 1000 %0647 R27 1000 0000 0000 %0648 S19 1000 0000 0125 %0649 S20 1000 0000 0250 %0650 S21 1000 0000 0375 %0651 S22 1000 0000 0500 %0652 S23 1000 0000 0625 %0653 S24 1000 0000 0750 %0654 S25 1000 0000 0875 %0655 S26 1000 0000 1000 %0656 S27 1000 0125 0000 %0657 T19 1000 0125 0125 %0658 T20 1000 0125 0250 %0659 T21 1000 0125 0375 %0660 T22 1000 0125 0500 %0661 T23 1000 0125 0625 %0662 T24 1000 0125 0750 %0663 T25 1000 0125 0875 %0664 T26 1000 0125 1000 %0665 T27 1000 0250 0000 %0666 U19 1000 0250 0125 %0667 U20 1000 0250 0250 %0668 U21 1000 0250 0375 %0669 U22 1000 0250 0500 %0670 U23 1000 0250 0625 %0671 U24 1000 0250 0750 %0672 U25 1000 0250 0875 %0673 U26 1000 0250 1000 %0674 U27 1000 0375 0000 %0675 V19 1000 0375 0125 %0676 V20 1000 0375 0250 %0677 V21 1000 0375 0375 %0678 V22 1000 0375 0500 %0679 V23 1000 0375 0625 %0680 V24 1000 0375 0750 %0681 V25 1000 0375 0875 %0682 V26 1000 0375 1000 %0683 V27 1000 0500 0000 %0684 W19 1000 0500 0125 %0685 W20 1000 0500 0250 %0686 W21 1000 0500 0375 %0687 W22 1000 0500 0500 %0688 W23 1000 0500 0625 %0689 W24 1000 0500 0750 %0690 W25 1000 0500 0875 %0691 W26 1000 0500 1000 %0692 W27 1000 0625 0000 %0693 X19 1000 0625 0125 %0694 X20 1000 0625 0250 %0695 X21 1000 0625 0375 %0696 X22 1000 0625 0500 %0697 X23 1000 0625 0625 %0698 X24 1000 0625 0750 %0699 X25 1000 0625 0875 %0700 X26 1000 0625 1000 %0701 X27 1000 0750 0000 %0702 Y19 1000 0750 0125 %0703 Y20 1000 0750 0250 %0704 Y21 1000 0750 0375 %0705 Y22 1000 0750 0500 %0706 Y23 1000 0750 0625 %0707 Y24 1000 0750 0750 %0708 Y25 1000 0750 0875 %0709 Y26 1000 0750 1000 %0710 Y27 1000 0875 0000 %0711 Z19 1000 0875 0125 %0712 Z20 1000 0875 0250 %0713 Z21 1000 0875 0375 %0714 Z22 1000 0875 0500 %0715 Z23 1000 0875 0625 %0716 Z24 1000 0875 0750 %0717 Z25 1000 0875 0875 %0718 Z26 1000 0875 1000 %0719 Z27 1000 1000 0000 %0720 a19 1000 1000 0125 %0721 a20 1000 1000 0250 %0722 a21 1000 1000 0375 %0723 a22 1000 1000 0500 %0724 a23 1000 1000 0625 %0725 a24 1000 1000 0750 %0726 a25 1000 1000 0875 %0727 a26 1000 1000 1000 %0728 a27 1000 1000 1000 %0729 b01 0875 1000 1000 %0730 b02 0750 1000 1000 %0731 b03 0625 1000 1000 %0732 b04 0500 1000 1000 %0733 b05 0375 1000 1000 %0734 b06 0250 1000 1000 %0735 b07 0125 1000 1000 %0736 b08 0000 1000 1000 %0737 b09 1000 0875 0875 %0738 c01 0875 0875 0875 %0739 c02 0750 0875 0875 %0740 c03 0625 0875 0875 %0741 c04 0500 0875 0875 %0742 c05 0375 0875 0875 %0743 c06 0250 0875 0875 %0744 c07 0125 0875 0875 %0745 c08 0000 0875 0875 %0746 c09 1000 0750 0750 %0747 d01 0875 0750 0750 %0748 d02 0750 0750 0750 %0749 d03 0625 0750 0750 %0750 d04 0500 0750 0750 %0751 d05 0375 0750 0750 %0752 d06 0250 0750 0750 %0753 d07 0125 0750 0750 %0754 d08 0000 0750 0750 %0755 d09 1000 0625 0625 %0756 e01 0875 0625 0625 %0757 e02 0750 0625 0625 %0758 e03 0625 0625 0625 %0759 e04 0500 0625 0625 %0760 e05 0375 0625 0625 %0761 e06 0250 0625 0625 %0762 e07 0125 0625 0625 %0763 e08 0000 0625 0625 %0764 e09 1000 0500 0500 %0765 f01 0875 0500 0500 %0766 f02 0750 0500 0500 %0767 f03 0625 0500 0500 %0768 f04 0500 0500 0500 %0769 f05 0375 0500 0500 %0770 f06 0250 0500 0500 %0771 f07 0125 0500 0500 %0772 f08 0000 0500 0500 %0773 f09 1000 0375 0375 %0774 g01 0875 0375 0375 %0775 g02 0750 0375 0375 %0776 g03 0625 0375 0375 %0777 g04 0500 0375 0375 %0778 g05 0375 0375 0375 %0779 g06 0250 0375 0375 %0780 g07 0125 0375 0375 %0781 g08 0000 0375 0375 %0782 g09 1000 0250 0250 %0783 h01 0875 0250 0250 %0784 h02 0750 0250 0250 %0785 h03 0625 0250 0250 %0786 h04 0500 0250 0250 %0787 h05 0375 0250 0250 %0788 h06 0250 0250 0250 %0789 h07 0125 0250 0250 %0790 h08 0000 0250 0250 %0791 h09 1000 0125 0125 %0792 i01 0875 0125 0125 %0793 i02 0750 0125 0125 %0794 i03 0625 0125 0125 %0795 i04 0500 0125 0125 %0796 i05 0375 0125 0125 %0797 i06 0250 0125 0125 %0798 i07 0125 0125 0125 %0799 i08 0000 0125 0125 %0800 i09 1000 0000 0000 %0801 j01 0875 0000 0000 %0802 j02 0750 0000 0000 %0803 j03 0625 0000 0000 %0804 j04 0500 0000 0000 %0805 j05 0375 0000 0000 %0806 j06 0250 0000 0000 %0807 j07 0125 0000 0000 %0808 j08 0000 0000 0000 %0809 j09 1000 1000 1000 %0810 b10 0875 0875 1000 %0811 b11 0750 0750 1000 %0812 b12 0625 0625 1000 %0813 b13 0500 0500 1000 %0814 b14 0375 0375 1000 %0815 b15 0250 0250 1000 %0816 b16 0125 0125 1000 %0817 b17 0000 0000 1000 %0818 b18 1000 1000 0875 %0819 c10 0875 0875 0875 %0820 c11 0750 0750 0875 %0821 c12 0625 0625 0875 %0822 c13 0500 0500 0875 %0823 c14 0375 0375 0875 %0824 c15 0250 0250 0875 %0825 c16 0125 0125 0875 %0826 c17 0000 0000 0875 %0827 c18 1000 1000 0750 %0828 d10 0875 0875 0750 %0829 d11 0750 0750 0750 %0830 d12 0625 0625 0750 %0831 d13 0500 0500 0750 %0832 d14 0375 0375 0750 %0833 d15 0250 0250 0750 %0834 d16 0125 0125 0750 %0835 d17 0000 0000 0750 %0836 d18 1000 1000 0625 %0837 e10 0875 0875 0625 %0838 e11 0750 0750 0625 %0839 e12 0625 0625 0625 %0840 e13 0500 0500 0625 %0841 e14 0375 0375 0625 %0842 e15 0250 0250 0625 %0843 e16 0125 0125 0625 %0844 e17 0000 0000 0625 %0845 e18 1000 1000 0500 %0846 f10 0875 0875 0500 %0847 f11 0750 0750 0500 %0848 f12 0625 0625 0500 %0849 f13 0500 0500 0500 %0850 f14 0375 0375 0500 %0851 f15 0250 0250 0500 %0852 f16 0125 0125 0500 %0853 f17 0000 0000 0500 %0854 f18 1000 1000 0375 %0855 g10 0875 0875 0375 %0856 g11 0750 0750 0375 %0857 g12 0625 0625 0375 %0858 g13 0500 0500 0375 %0859 g14 0375 0375 0375 %0860 g15 0250 0250 0375 %0861 g16 0125 0125 0375 %0862 g17 0000 0000 0375 %0863 g18 1000 1000 0250 %0864 h10 0875 0875 0250 %0865 h11 0750 0750 0250 %0866 h12 0625 0625 0250 %0867 h13 0500 0500 0250 %0868 h14 0375 0375 0250 %0869 h15 0250 0250 0250 %0870 h16 0125 0125 0250 %0871 h17 0000 0000 0250 %0872 h18 1000 1000 0125 %0873 i10 0875 0875 0125 %0874 i11 0750 0750 0125 %0875 i12 0625 0625 0125 %0876 i13 0500 0500 0125 %0877 i14 0375 0375 0125 %0878 i15 0250 0250 0125 %0879 i16 0125 0125 0125 %0880 i17 0000 0000 0125 %0881 i18 1000 1000 0000 %0882 j10 0875 0875 0000 %0883 j11 0750 0750 0000 %0884 j12 0625 0625 0000 %0885 j13 0500 0500 0000 %0886 j14 0375 0375 0000 %0887 j15 0250 0250 0000 %0888 j16 0125 0125 0000 %0889 j17 0000 0000 0000 %0890 j18 1000 1000 1000 %0891 b19 1000 0875 1000 %0892 b20 1000 0750 1000 %0893 b21 1000 0625 1000 %0894 b22 1000 0500 1000 %0895 b23 1000 0375 1000 %0896 b24 1000 0250 1000 %0897 b25 1000 0125 1000 %0898 b26 1000 0000 1000 %0899 b27 0875 1000 0875 %0900 c19 0875 0875 0875 %0901 c20 0875 0750 0875 %0902 c21 0875 0625 0875 %0903 c22 0875 0500 0875 %0904 c23 0875 0375 0875 %0905 c24 0875 0250 0875 %0906 c25 0875 0125 0875 %0907 c26 0875 0000 0875 %0908 c27 0750 1000 0750 %0909 d19 0750 0875 0750 %0910 d20 0750 0750 0750 %0911 d21 0750 0625 0750 %0912 d22 0750 0500 0750 %0913 d23 0750 0375 0750 %0914 d24 0750 0250 0750 %0915 d25 0750 0125 0750 %0916 d26 0750 0000 0750 %0917 d27 0625 1000 0625 %0918 e19 0625 0875 0625 %0919 e20 0625 0750 0625 %0920 e21 0625 0625 0625 %0921 e22 0625 0500 0625 %0922 e23 0625 0375 0625 %0923 e24 0625 0250 0625 %0924 e25 0625 0125 0625 %0925 e26 0625 0000 0625 %0926 e27 0500 1000 0500 %0927 f19 0500 0875 0500 %0928 f20 0500 0750 0500 %0929 f21 0500 0625 0500 %0930 f22 0500 0500 0500 %0931 f23 0500 0375 0500 %0932 f24 0500 0250 0500 %0933 f25 0500 0125 0500 %0934 f26 0500 0000 0500 %0935 f27 0375 1000 0375 %0936 g19 0375 0875 0375 %0937 g20 0375 0750 0375 %0938 g21 0375 0625 0375 %0939 g22 0375 0500 0375 %0940 g23 0375 0375 0375 %0941 g24 0375 0250 0375 %0942 g25 0375 0125 0375 %0943 g26 0375 0000 0375 %0944 g27 0250 1000 0250 %0945 h19 0250 0875 0250 %0946 h20 0250 0750 0250 %0947 h21 0250 0625 0250 %0948 h22 0250 0500 0250 %0949 h23 0250 0375 0250 %0950 h24 0250 0250 0250 %0951 h25 0250 0125 0250 %0952 h26 0250 0000 0250 %0953 h27 0125 1000 0125 %0954 i19 0125 0875 0125 %0955 i20 0125 0750 0125 %0956 i21 0125 0625 0125 %0957 i22 0125 0500 0125 %0958 i23 0125 0375 0125 %0959 i24 0125 0250 0125 %0960 i25 0125 0125 0125 %0961 i26 0125 0000 0125 %0962 i27 0000 1000 0000 %0963 j19 0000 0875 0000 %0964 j20 0000 0750 0000 %0965 j21 0000 0625 0000 %0966 j22 0000 0500 0000 %0967 j23 0000 0375 0000 %0968 j24 0000 0250 0000 %0969 j25 0000 0125 0000 %0970 j26 0000 0000 0000 %0971 j27 0000 0000 0000 %0972 k01 0125 0125 0125 %0973 k02 0250 0250 0250 %0974 k03 0375 0375 0375 %0975 k04 0500 0500 0500 %0976 k05 0625 0625 0625 %0977 k06 0750 0750 0750 %0978 k07 0875 0875 0875 %0979 k08 1000 1000 1000 %0980 k09 0000 0000 0000 %0981 l01 0125 0125 0125 %0982 l02 0250 0250 0250 %0983 l03 0375 0375 0375 %0984 l04 0500 0500 0500 %0985 l05 0625 0625 0625 %0986 l06 0750 0750 0750 %0987 l07 0875 0875 0875 %0988 l08 1000 1000 1000 %0989 l09 0000 0000 0000 %0990 m01 0125 0125 0125 %0991 m02 0250 0250 0250 %0992 m03 0375 0375 0375 %0993 m04 0500 0500 0500 %0994 m05 0625 0625 0625 %0995 m06 0750 0750 0750 %0996 m07 0875 0875 0875 %0997 m08 1000 1000 1000 %0998 m09 0000 0000 0000 %0999 n01 0125 0125 0125 %1000 n02 0250 0250 0250 %1001 n03 0375 0375 0375 %1002 n04 0500 0500 0500 %1003 n05 0625 0625 0625 %1004 n06 0750 0750 0750 %1005 n07 0875 0875 0875 %1006 n08 1000 1000 1000 %1007 n09 0000 0000 0000 %1008 k10 0066 0066 0066 %1009 k11 0133 0133 0133 %1010 k12 0200 0200 0200 %1011 k13 0266 0266 0266 %1012 k14 0333 0333 0333 %1013 k15 0400 0400 0400 %1014 k16 0466 0466 0466 %1015 k17 0533 0533 0533 %1016 k18 0600 0600 0600 %1017 k19 0666 0666 0666 %1018 k20 0734 0734 0734 %1019 k21 0800 0800 0800 %1020 k22 0866 0866 0866 %1021 k23 0933 0933 0933 %1022 k24 1000 1000 1000 %1023 k25 0000 0000 0000 %1024 l10 0066 0066 0066 %1025 l11 0133 0133 0133 %1026 l12 0200 0200 0200 %1027 l13 0266 0266 0266 %1028 l14 0333 0333 0333 %1029 l15 0400 0400 0400 %1030 l16 0466 0466 0466 %1031 l17 0533 0533 0533 %1032 l18 0600 0600 0600 %1033 l19 0666 0666 0666 %1034 l20 0734 0734 0734 %1035 l21 0800 0800 0800 %1036 l22 0866 0866 0866 %1037 l23 0933 0933 0933 %1038 l24 1000 1000 1000 %1039 l25 0000 0000 0000 %1040 m10 0066 0066 0066 %1041 m11 0133 0133 0133 %1042 m12 0200 0200 0200 %1043 m13 0266 0266 0266 %1044 m14 0333 0333 0333 %1045 m15 0400 0400 0400 %1046 m16 0466 0466 0466 %1047 m17 0533 0533 0533 %1048 m18 0600 0600 0600 %1049 m19 0666 0666 0666 %1050 m20 0734 0734 0734 %1051 m21 0800 0800 0800 %1052 m22 0866 0866 0866 %1053 m23 0933 0933 0933 %1054 m24 1000 1000 1000 %1055 m25 0000 0000 0000 %1056 n10 0066 0066 0066 %1057 n11 0133 0133 0133 %1058 n12 0200 0200 0200 %1059 n13 0266 0266 0266 %1060 n14 0333 0333 0333 %1061 n15 0400 0400 0400 %1062 n16 0466 0466 0466 %1063 n17 0533 0533 0533 %1064 n18 0600 0600 0600 %1065 n19 0666 0666 0666 %1066 n20 0734 0734 0734 %1067 n21 0800 0800 0800 %1068 n22 0866 0866 0866 %1069 n23 0933 0933 0933 %1070 n24 1000 1000 1000 %1071 n25 0000 0000 0000 %1072 k26 1000 1000 1000 %1073 k27 1000 0000 0000 %1074 l26 0000 1000 1000 %1075 l27 1000 1000 0000 %1076 m26 0000 0000 1000 %1077 m27 0000 1000 0000 %1078 n26 1000 0000 1000 %1079 n27 0000 1000 0000 %1078 nx6 1000 0000 1000 %1079 nx7 ] def %END RGB0 %**************************************************************************** %For output linearization in CIELAB %**************************************************************************** %BEG -- LUT Code ---Look-up-Table for FP-file /nR 9 def %LUT size /nG 9 def /nB 9 def /nges nR nG nB mul mul def %********************************************************************* /Lab2RGB {%BEG Procedure Lab2RGB % --- Lab2RGB ----------------- % % --- Eingabe (stack): L* a* b* % --- Ausgabe (stack): iR iG iB ; die Indizes des LUT-Wertes mit dem geringsten Delta-E bzgl. Eingabewert % ---- : delta-E ; und das Delta-E dazu % /Zielb exch def /Ziela exch def /ZielL exch def /dE 1000 def /opt 0 def 1 1 nges { 1 sub 3 mul /ii exch def /dL lut ii get ZielL sub abs def dE dL ge { %dE>dL /da lut ii 1 add get Ziela sub abs def dE da ge { %dE>da /db lut ii 2 add get Zielb sub abs def dE db ge { %dE>db /dEneu dL dL mul da da mul db db mul add add sqrt def dE dEneu ge { % test ob dEneu < dE /dE dEneu def /opt ii def } if } if } if } if } for /opt opt 3 idiv def opt nG nB mul idiv % R auf den stack (Wertebereich real: 0-(nr-1)) opt nG nB mul mod nB idiv % G auf den stack opt nG nB mul mod nB mod % B auf den stack dEneu } def %END Procedure Lab2RGB %********************************************************************* /indexkonv {%BEG Procedure indexkonv % --- indexkonv ----------------- % % --- Eingabe (stack): iR iG iB ; Indizes eines LUT-Wertes % --- Ausgabe (stack): Position des LUT-Wertes im 1-dim Lut-Array % %errechnet aus r g b index auf stack den fortlaufenden index exch nB mul add exch nB nG mul mul add 3 mul } def %END Procedure indexkonv %********************************************************************* /set_oktant {%BEG Procedure set_oktant % --- set_oktant ----------------- % % --- Eingabe (stack): iR iG iB ; Indizes eines LUT-Wertes, % kennzeichnet die dem Ursprung entfernteste Ecke des ausgewaehlten Raumbereiches % sortierung v1->v8: RGB, RGB+1, RG+1B, RG+1B+1, usw.. % --- Ausgabe (stack): keine % /B_index exch def /G_index exch def /R_index exch def R_index G_index B_index indexkonv /tempindex exch def % /eswird R_index G_index B_index /zu tempindex /lin_v8L lut tempindex get def /lin_v8a lut tempindex 1 add get def /lin_v8b lut tempindex 2 add get def R_index G_index B_index 1 sub indexkonv /tempindex exch def % /eswird R_index G_index B_index 1 sub /zu tempindex jens /lin_v7L lut tempindex get def /lin_v7a lut tempindex 1 add get def /lin_v7b lut tempindex 2 add get def R_index G_index 1 sub B_index indexkonv /tempindex exch def /lin_v6L lut tempindex get def /lin_v6a lut tempindex 1 add get def /lin_v6b lut tempindex 2 add get def R_index G_index 1 sub B_index 1 sub indexkonv /tempindex exch def /lin_v5L lut tempindex get def /lin_v5a lut tempindex 1 add get def /lin_v5b lut tempindex 2 add get def R_index 1 sub G_index B_index indexkonv /tempindex exch def /lin_v4L lut tempindex get def /lin_v4a lut tempindex 1 add get def /lin_v4b lut tempindex 2 add get def R_index 1 sub G_index B_index 1 sub indexkonv /tempindex exch def /lin_v3L lut tempindex get def /lin_v3a lut tempindex 1 add get def /lin_v3b lut tempindex 2 add get def R_index 1 sub G_index 1 sub B_index indexkonv /tempindex exch def /lin_v2L lut tempindex get def /lin_v2a lut tempindex 1 add get def /lin_v2b lut tempindex 2 add get def R_index 1 sub G_index 1 sub B_index 1 sub indexkonv /tempindex exch def /lin_v1L lut tempindex get def /lin_v1a lut tempindex 1 add get def /lin_v1b lut tempindex 2 add get def } def %END Procedure set_oktant %********************************************************************* /L_abc {%BEG Procedure L_abc % --- L_abc ----------------- % % --- Eingabe (stack): alpha (R-Richtung) beta (G-Richtung) gamma (B-Richtung) % --- Ausgabe (stack): L* interpoliert aus LUT im aktuellen Oktanten % /gamma exch def /beta exch def /alpha exch def /alpham 1 alpha sub def /betam 1 beta sub def /gammam 1 gamma sub def lin_v8L alpha beta gamma mul mul mul lin_v7L alpha beta gammam mul mul mul add lin_v6L alpha betam gamma mul mul mul add lin_v5L alpha betam gammam mul mul mul add lin_v4L alpham beta gamma mul mul mul add lin_v3L alpham beta gammam mul mul mul add lin_v2L alpham betam gamma mul mul mul add lin_v1L alpham betam gammam mul mul mul add } def %END Procedure L_abc %********************************************************************* /a_abc {%BEG Procedure a_abc % --- a_abc ----------------- % % --- Eingabe (stack): alpha (R-Richtung) beta (G-Richtung) gamma (B-Richtung) % --- Ausgabe (stack): L* interpoliert aus LUT im aktuellen Oktanten % /gamma exch def /beta exch def /alpha exch def /alpham 1 alpha sub def /betam 1 beta sub def /gammam 1 gamma sub def lin_v8a alpha beta gamma mul mul mul lin_v7a alpha beta gammam mul mul mul add lin_v6a alpha betam gamma mul mul mul add lin_v5a alpha betam gammam mul mul mul add lin_v4a alpham beta gamma mul mul mul add lin_v3a alpham beta gammam mul mul mul add lin_v2a alpham betam gamma mul mul mul add lin_v1a alpham betam gammam mul mul mul add } def %END Procedure a_abc %********************************************************************* /b_abc {%BEG Procedure b_abc % --- b_abc ----------------- % % --- Eingabe (stack): alpha (R-Richtung) beta (G-Richtung) gamma (B-Richtung) % --- Ausgabe (stack): L* interpoliert aus LUT im aktuellen Oktanten % /gamma exch def /beta exch def /alpha exch def /alpham 1 alpha sub def /betam 1 beta sub def /gammam 1 gamma sub def lin_v8b alpha beta gamma mul mul mul lin_v7b alpha beta gammam mul mul mul add lin_v6b alpha betam gamma mul mul mul add lin_v5b alpha betam gammam mul mul mul add lin_v4b alpham beta gamma mul mul mul add lin_v3b alpham beta gammam mul mul mul add lin_v2b alpham betam gamma mul mul mul add lin_v1b alpham betam gammam mul mul mul add } def %END Procedure b_abc %********************************************************************* /Jacobi_abc {%BEG Procedure Jacobi_abc % --- Jacobi_abc ----------------- % % --- Eingabe (stack): alpha (R-Richtung) beta (G-Richtung) gamma (B-Richtung) % --- Ausgabe (stack): Jacobi Matrix an der stelle abc im aktuellen Oktanten % in der reihenfolge abcdefghi % (a b c) % (d e f) % (g h i) % /gamma exch def /beta exch def /alpha exch def /alpham 1 alpha sub def /betam 1 beta sub def /gammam 1 gamma sub def lin_v5L lin_v1L sub betam gammam mul mul lin_v6L lin_v2L sub betam gamma mul mul add lin_v7L lin_v3L sub beta gammam mul mul add lin_v8L lin_v4L sub beta gamma mul mul add lin_v3L lin_v1L sub alpham gammam mul mul lin_v4L lin_v2L sub alpham gamma mul mul add lin_v7L lin_v5L sub alpha gammam mul mul add lin_v8L lin_v6L sub alpha gamma mul mul add lin_v2L lin_v1L sub alpham betam mul mul lin_v4L lin_v3L sub alpham beta mul mul add lin_v6L lin_v5L sub alpha betam mul mul add lin_v8L lin_v7L sub alpha beta mul mul add lin_v5a lin_v1a sub betam gammam mul mul lin_v6a lin_v2a sub betam gamma mul mul add lin_v7a lin_v3a sub beta gammam mul mul add lin_v8a lin_v4a sub beta gamma mul mul add lin_v3a lin_v1a sub alpham gammam mul mul lin_v4a lin_v2a sub alpham gamma mul mul add lin_v7a lin_v5a sub alpha gammam mul mul add lin_v8a lin_v6a sub alpha gamma mul mul add lin_v2a lin_v1a sub alpham betam mul mul lin_v4a lin_v3a sub alpham beta mul mul add lin_v6a lin_v5a sub alpha betam mul mul add lin_v8a lin_v7a sub alpha beta mul mul add lin_v5b lin_v1b sub betam gammam mul mul lin_v6b lin_v2b sub betam gamma mul mul add lin_v7b lin_v3b sub beta gammam mul mul add lin_v8b lin_v4b sub beta gamma mul mul add lin_v3b lin_v1b sub alpham gammam mul mul lin_v4b lin_v2b sub alpham gamma mul mul add lin_v7b lin_v5b sub alpha gammam mul mul add lin_v8b lin_v6b sub alpha gamma mul mul add lin_v2b lin_v1b sub alpham betam mul mul lin_v4b lin_v3b sub alpham beta mul mul add lin_v6b lin_v5b sub alpha betam mul mul add lin_v8b lin_v7b sub alpha beta mul mul add } def %END Procedure Jacobi_abc %********************************************************************* /Inverse_mat {%BEG Procedure Inverse_mat % --- Inverse_mat ----------------- % % --- Eingabe (stack): Matrix in der reihenfolge abcdefghi % invertiert die Matrix (a b c) % (d e f) % (g h i) % --- Ausgabe (stack): Matrix % /i_i exch def /i_h exch def /i_g exch def /i_f exch def /i_e exch def /i_d exch def /i_c exch def /i_b exch def /i_a exch def /i_det i_a i_e i_i mul mul i_b i_d i_i mul mul sub i_a i_f i_h mul mul sub i_c i_d i_h mul mul add i_b i_f i_g mul mul add i_c i_e i_g mul mul sub def i_e i_i mul i_f i_h mul sub i_det div %a der inversen auf stack i_c i_h mul i_b i_i mul sub i_det div %b der inversen auf stack i_b i_f mul i_c i_e mul sub i_det div %c der inversen auf stack i_f i_g mul i_d i_i mul sub i_det div %d der inversen auf stack i_a i_i mul i_c i_g mul sub i_det div %e der inversen auf stack i_c i_d mul i_a i_f mul sub i_det div %f der inversen auf stack i_d i_h mul i_e i_g mul sub i_det div %g der inversen auf stack i_b i_g mul i_a i_h mul sub i_det div %h der inversen auf stack i_a i_e mul i_b i_d mul sub i_det div %i der inversen auf stack } def %END Procedure Inverse_mat %********************************************************************* /linear_finden {%BEG Procedure linear_finden % --- linear_finden ----------------- % % --- Eingabe (stack): iR iG iB ; Indizes eines LUT-Wertes, % kennzeichnet die dem Ursprung entfernteste Ecke des ausgewaehlten Raumbereiches % L* a* b* ; danach der zielpunkt als lab wert % --- Ausgabe (stack): Delta-E: Abstand zum Zielpunkt % alpha, beta, gamma die den kürzesten abstand zum gegebenen zielpunkt aufweisen % /lin_zielb exch def /lin_ziela exch def /lin_zielL exch def set_oktant /akt_a 0.5 def /akt_b 0.5 def /akt_c 0.5 def /last_L akt_a akt_b akt_c L_abc def /last_a akt_a akt_b akt_c a_abc def /last_b akt_a akt_b akt_c b_abc def /diff_L last_L lin_zielL sub def /diff_a last_a lin_ziela sub def /diff_b last_b lin_zielb sub def 0 %default rueckgabewert fuer delta-e (wird nie benutzt, aber fuer pop wichtig) 1 1 10 { pop %pop schleifenzaehler pop %pop letzes Delta-E akt_a akt_b akt_c Jacobi_abc Inverse_mat diff_b mul exch diff_a mul add exch diff_L mul add /delta_c exch def diff_b mul exch diff_a mul add exch diff_L mul add /delta_b exch def diff_b mul exch diff_a mul add exch diff_L mul add /delta_a exch def % akt_a akt_b akt_c % delta_a delta_b delta_c /akt_a akt_a delta_a sub def /akt_b akt_b delta_b sub def /akt_c akt_c delta_c sub def akt_a 0 lt {/akt_a 0 def} if akt_b 0 lt {/akt_b 0 def} if akt_c 0 lt {/akt_c 0 def} if 1 akt_a lt {/akt_a 1 def} if 1 akt_b lt {/akt_b 1 def} if 1 akt_c lt {/akt_c 1 def} if /last_L akt_a akt_b akt_c L_abc def /last_a akt_a akt_b akt_c a_abc def /last_b akt_a akt_b akt_c b_abc def /diff_L last_L lin_zielL sub def /diff_a last_a lin_ziela sub def /diff_b last_b lin_zielb sub def %/naechster %akt_a %akt_b %akt_c %last_L %last_a %last_b diff_L dup mul diff_a dup mul diff_b dup mul add add sqrt dup %Abbruch wenn Delta_e<0.1 0.1 lt {exit} if } for akt_a akt_b akt_c } def %END Procedure linear_finden %********************************************************************* /Lab2RGBinterpolation {%BEG Procedure Lab2RGBinterpolation /Ziel_b exch def /Ziel_a exch def /Ziel_L exch def Ziel_L Ziel_a Ziel_b Lab2RGB /now_delta_e exch def /B_next exch def /G_next exch def /R_next exch def /R_fin R_next nR 1 sub div def % defaults falls kein besserer wert gefunden /G_fin G_next nG 1 sub div def /B_fin B_next nB 1 sub div def -1 1 2 { R_next add /R_now exch def -1 1 2 { G_next add /G_now exch def -1 1 2 { B_next add /B_now exch def B_now 0 gt G_now 0 gt R_now 0 gt nB B_now gt nG G_now gt nR R_now gt and and and and and { R_now G_now B_now Ziel_L Ziel_a Ziel_b linear_finden /now_c exch def /now_b exch def /now_a exch def dup %rückgabe delta-e doppeln now_delta_e lt { /now_delta_e exch def /Bs0 B_now 1 sub nB 1 sub div 255 mul round 255 div def /Bs1 B_now nB 1 sub div 255 mul round 255 div def /B_fin Bs0 1 now_c sub mul Bs1 now_c mul add def /Gs0 G_now 1 sub nG 1 sub div 255 mul round 255 div def /Gs1 G_now nG 1 sub div 255 mul round 255 div def /G_fin Gs0 1 now_b sub mul Gs1 now_b mul add def /Rs0 R_now 1 sub nR 1 sub div 255 mul round 255 div def /Rs1 R_now nR 1 sub div 255 mul round 255 div def /R_fin Rs0 1 now_a sub mul Rs1 now_a mul add def } { pop } ifelse } if } for } for } for R_fin G_fin B_fin } bind def %END Procedure Lab2RGBinterpolation %**************************************************************************** /XYZrx089 3240 array def %1080*3=3240 /XYZrx100 3240 array def %**************************************************************************** /XYZ*system { %BEG procedure XYZ*system /IM0 1080 def /IM1 IM0 1 sub def /IM3 IM0 3 mul 1 sub def /IM4 IM0 4 mul 1 sub def 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i70 i 7 mul def /i71 i70 1 add def /i72 i70 2 add def /i73 i70 3 add def nrgbxyY i70 i put nrgbxyY i71 RGB0 i30 get 0.001 mul put nrgbxyY i72 RGB0 i31 get 0.001 mul put nrgbxyY i73 RGB0 i32 get 0.001 mul put } for %i=0,IM1 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i70 i 7 mul def /i71 i70 1 add def /i72 i70 2 add def /i73 i70 3 add def nrgbxyY i71 get 0.04045 le %equations of IEC 61966-2-1:2003 {/RsRGB nrgbxyY i71 get 12.92 div def} {/RsRGB nrgbxyY i71 get 0.055 add 1.055 div 2.4 exp def} ifelse nrgbxyY i72 get 0.04045 le {/GsRGB nrgbxyY i72 get 12.92 div def} {/GsRGB nrgbxyY i72 get 0.055 add 1.055 div 2.4 exp def} ifelse nrgbxyY i73 get 0.04045 le {/BsRGB nrgbxyY i73 get 12.92 div def} {/BsRGB nrgbxyY i73 get 0.055 add 1.055 div 2.4 exp def} ifelse XYZrx100 i30 0.4124 RsRGB mul 0.3576 GsRGB mul add 0.1805 BsRGB mul add 100 mul put XYZrx100 i31 0.2126 RsRGB mul 0.7152 GsRGB mul add 0.0722 BsRGB mul add 100 mul put XYZrx100 i32 0.0193 RsRGB mul 0.1192 GsRGB mul add 0.9505 BsRGB mul add 100 mul put } for %i=0,IM1 0 1 IM3 {/i exch def %i=0,IM3 XYZrx089 i XYZrx100 i get 0.8859 mul put } for %i=0,IM3 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i70 i 7 mul def /i74 i70 4 add def /i75 i70 5 add def /i76 i70 6 add def /FSUM XYZrx100 i30 get XYZrx100 i31 get add XYZrx100 i32 get add 0.0001 add def nrgbxyY i74 XYZrx100 i30 get FSUM div put nrgbxyY i75 XYZrx100 i31 get FSUM div put nrgbxyY i76 XYZrx100 i31 get put } for %i=0,IM1 /iN 1072 3 mul def /iW 1073 3 mul def /XLN100 XYZrx100 iN get def /YLN100 XYZrx100 iN 1 add get def /ZLN100 XYZrx100 iN 2 add get def /XLW100 XYZrx100 iW get def /YLW100 XYZrx100 iW 1 add get def /ZLW100 XYZrx100 iW 2 add get def /XLN089 XYZrx089 iN get def /YLN089 XYZrx089 iN 1 add get def /ZLN089 XYZrx089 iN 2 add get def /XLW089 XYZrx089 iW get def /YLW089 XYZrx089 iW 1 add get def /ZLW089 XYZrx089 iW 2 add get def % achromatic (D65) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 0.8859 mul def /YLWD65089 100.00 0.8859 mul def /ZLWD65089 108.88 0.8859 mul def /XLN001 XLWD65100 100 div def /YLN001 YLWD65100 100 div def /ZLN001 ZLWD65100 100 div def /LABN [(O (R)) (Y) (L (G)) (C) (V (B)) (M) (O (R)) (N) (W) (N0) (W1)] def } bind def %END procedure XYZ*system %************************************************************ /XD65W 95.04 def /YD65W 100.00 def /ZD65W 108.88 def /XD50W 96.42 def /YD50W 100.00 def /ZD50W 82.51 def /DAKTE [(D65) (D50)] def %Save 8 standard colours /COL*01 08 array def /COL*01 [(%O1 0) (%Y1 1) (%L1 2) (%C1 3) (%V1 4) (%M1 5) (%N1 6) (%W1 7) ] def /COL*02 08 array def /COL*02 [(%O2 0) (%Y2 1) (%L2 2) (%C2 3) (%V2 4) (%M2 5) (%N2 6) (%W2 7) ] def /COL*03 08 array def /COL*03 [(%O3 0) (%Y3 1) (%L3 2) (%C3 3) (%V3 4) (%M3 5) (%N3 6) (%W3 7) ] def /COL*04 08 array def /COL*04 [(%O4 0) (%Y4 1) (%L4 2) (%C4 3) (%V4 4) (%M4 5) (%N4 6) (%W4 7) ] def /COL*05 08 array def /COL*05 [(%O5 0) (%Y5 1) (%L5 2) (%C5 3) (%V5 4) (%M5 5) (%N5 6) (%W5 7) ] def /COL*06 08 array def /COL*06 [(%O6 0) (%Y6 1) (%L6 2) (%C6 3) (%V6 4) (%M6 5) (%N6 6) (%W6 7) ] def /COL*07 08 array def /COL*07 [(%O7 0) (%Y7 1) (%L7 2) (%C7 3) (%V7 4) (%M7 5) (%N7 6) (%W7 7) ] def /LAB*01 24 array def /LAB*02 24 array def /LAB*03 24 array def /LAB*04 24 array def /LAB*05 24 array def /LAB*06 24 array def /LAB*07 24 array def /LAB*a01 24 array def /LAB*a02 24 array def /LAB*a03 24 array def /LAB*a04 24 array def /LAB*a05 24 array def /LAB*a06 24 array def /LAB*a07 24 array def /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le and {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le and {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /cvisp3 {/xi exch cvi def xi 0 ge xi 9 le and {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /cvisp2 {/xi exch cvi def xi 0 ge xi 9 le and {(00) show} if xi 10 ge xi 99 le and {(0) show} if xi cvishow } bind def %BEG aus LG17 /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /LUT 10800 array def %1080*6 definiert /LAB*Fa0100 24 array def %start output /LAB*Fa1100 24 array def %linearized output /LAB*FaG0100 24 array def %start output/100 /LAB*FaG1100 24 array def %linearized output/100 /LAB*FaGA100 24 array def %either start- or linearized output/100 %********************************************************************* %BEG LG17_LECD display 0..40%_00_LUT.DAT /FileDataen (_LUT.DAT, 243 colours, 100101, Separation olv*, adapted) def /FileDatade (_LUT.DAT, 243 Farben, 100101, Separation olv*, adaptiert) def %include here JE060-7A0.TXT to JE060-7A7.TXT %END LG17_LECD display 0..40%_00_LUT.DAT %********************************************************************* /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /LAB*ioLmod {%BEG Procedure LAB*ioLmod %requires ISRL*ioL=0,1,3 /RJGBLAB* 12 array def /RJGBLAB*[ 39.92 58.74 27.99 % R CIE No.09 elementary colours in LAB, D65 81.26 -2.89 71.56 % J CIE No.10 52.23 -42.42 13.60 % G CIE No.11 30.57 1.41 -46.47 % B CIE No.12 ] def /LAB* 84 array def %12x3=36 including N,W + 16x3=48 elementary system /LAB*a 84 array def 0 1 11 {/sISO exch def /i30 sISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def sISO 7 le { %sISO=0,7 LAB*a i30 LAB*FaGA100 i30 get put %already adapted range 0..100 LAB*a i31 LAB*FaGA100 i31 get put LAB*a i32 LAB*FaGA100 i32 get put } %sISO=0,7 {%sISO=8,11 %Definition 8 to 11 /jISO sISO 8 sub def /j30 jISO 3 mul def /j31 j30 1 add def /j32 j30 2 add def LAB*a i30 RJGBLAB* j30 get put %already asumed as adapted LAB*a i31 RJGBLAB* j31 get put LAB*a i32 RJGBLAB* j32 get put } ifelse %sISO=0,7 and 8,11 } for /L*Nio LAB*a 18 get def %already adapted /A*Nio LAB*a 19 get def %already adapted, cero! /B*Nio LAB*a 20 get def %already adapted, cero! /L*Wio LAB*a 21 get def %already adapted /A*Wio LAB*a 22 get def %already adapted, cero! /B*Wio LAB*a 23 get def %already adapted, cero! /A*Dio A*Wio A*Nio sub def %cero /B*Dio B*Wio B*Nio sub def %cero /cf1 1 def /cLAB*s0 3 array def %C cyan blue /vLAB*s0 3 array def %V violet blue /mLAB*s0 3 array def %M magenta red /oLAB*s0 3 array def %O orange red /yLAB*s0 3 array def %Y yellow /lLAB*s0 3 array def %L leaf green /nLAB*s0 3 array def %N black /wLAB*s0 3 array def %W white /rLAB*s0 3 array def %R elementary red /jLAB*s0 3 array def %J elementary yellow /gLAB*s0 3 array def %G elementary green /bLAB*s0 3 array def %B elementary blue %Determine Matrix data input or output data oLAB*s0 0 LAB*a 0 get L*Nio sub put oLAB*s0 1 LAB*a 1 get put oLAB*s0 2 LAB*a 2 get put yLAB*s0 0 LAB*a 3 get L*Nio sub put yLAB*s0 1 LAB*a 4 get put yLAB*s0 2 LAB*a 5 get put lLAB*s0 0 LAB*a 6 get L*Nio sub put lLAB*s0 1 LAB*a 7 get put lLAB*s0 2 LAB*a 8 get put cLAB*s0 0 LAB*a 9 get L*Nio sub put cLAB*s0 1 LAB*a 10 get put cLAB*s0 2 LAB*a 11 get put vLAB*s0 0 LAB*a 12 get L*Nio sub put vLAB*s0 1 LAB*a 13 get put vLAB*s0 2 LAB*a 14 get put mLAB*s0 0 LAB*a 15 get L*Nio sub put mLAB*s0 1 LAB*a 16 get put mLAB*s0 2 LAB*a 17 get put nLAB*s0 0 LAB*a 18 get L*Nio sub put nLAB*s0 1 LAB*a 19 get put nLAB*s0 2 LAB*a 20 get put wLAB*s0 0 LAB*a 21 get L*Nio sub put wLAB*s0 1 LAB*a 22 get put wLAB*s0 2 LAB*a 23 get put rLAB*s0 0 LAB*a 24 get L*Nio sub put rLAB*s0 1 LAB*a 25 get put rLAB*s0 2 LAB*a 26 get put jLAB*s0 0 LAB*a 27 get L*Nio sub put jLAB*s0 1 LAB*a 28 get put jLAB*s0 2 LAB*a 29 get put gLAB*s0 0 LAB*a 30 get L*Nio sub put gLAB*s0 1 LAB*a 31 get put gLAB*s0 2 LAB*a 32 get put bLAB*s0 0 LAB*a 33 get L*Nio sub put bLAB*s0 1 LAB*a 34 get put bLAB*s0 2 LAB*a 35 get put % Determine the input or output angle in the A* B* plane % of each of the colours defined above /C*Ang cLAB*s0 2 get cLAB*s0 1 get 0.0001 add atan def /V*Ang vLAB*s0 2 get vLAB*s0 1 get 0.0001 add atan def /M*Ang mLAB*s0 2 get mLAB*s0 1 get 0.0001 add atan def /O*Ang oLAB*s0 2 get oLAB*s0 1 get 0.0001 add atan def /Y*Ang yLAB*s0 2 get yLAB*s0 1 get 0.0001 add atan def /L*Ang lLAB*s0 2 get mLAB*s0 1 get 0.0001 add atan def /N*Ang 0 def /W*Ang 0 def /R*Ang rLAB*s0 2 get rLAB*s0 1 get 0.0001 add atan def /J*Ang jLAB*s0 2 get jLAB*s0 1 get 0.0001 add atan def /G*Ang gLAB*s0 2 get gLAB*s0 1 get 0.0001 add atan def /B*Ang bLAB*s0 2 get bLAB*s0 1 get 0.0001 add atan def } def %END Procedure LAB*ioLmod %*********************************************************** /proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL { %BEG procedure proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %only for calculation without hue tables %input LAB*Fa %input LAB*a (6 adapted colours OYLCVM) %input nLAB*s0 (colour white N for calculation of lab*l) %input wLAB*s0 (colour white W for achromatic axis) %output LAB*Ma %output olvi3*Ma %output cmyn3*Ma /UXF1a wLAB*s0 1 get B*Fa mul wLAB*s0 2 get A*Fa mul sub def /UXF2a wLAB*s0 2 get L*Fa mul wLAB*s0 0 get B*Fa mul sub def /UXF3a wLAB*s0 0 get A*Fa mul wLAB*s0 1 get L*Fa mul sub def /T1 0 def /T2 0 def 0 1 5 {/ia exch def /ia30 ia 3 mul def ia 5 eq {/ia31 0 def} {/ia31 ia30 3 add def} ifelse /T1 LAB*a ia30 get UXF1a mul LAB*a ia30 1 add get UXF2a mul add LAB*a ia30 2 add get UXF3a mul add def /T2 LAB*a ia31 get UXF1a mul LAB*a ia31 1 add get UXF2a mul add LAB*a ia31 2 add get UXF3a mul add def T1 0 le {/T1X (N) def} {/T1X (P) def} ifelse T2 0 gt {/T2X (P) def} {/T2X (N) def} ifelse T1 0 le T2 0 gt and {/ia3END ia30 def exit} if } for /L*11a LAB*a ia3END get def /A*11a LAB*a ia3END 1 add get def /B*11a LAB*a ia3END 2 add get def ia3END 15 ge {/ia3END -3 def} if /L*21a LAB*a ia3END 3 add get def /A*21a LAB*a ia3END 4 add get def /B*21a LAB*a ia3END 5 add get def /NENNER L*21a L*11a sub UXF1a mul A*21a A*11a sub UXF2a mul add B*21a B*11a sub UXF3a mul add def /ZAEHLE L*21a UXF1a mul A*21a UXF2a mul add B*21a UXF3a mul add def NENNER 0 ne {/ALPH ZAEHLE NENNER div def} {/ALPH 99999} ifelse /L*Ma ALPH L*11a mul 1 ALPH sub L*21a mul add def /A*Ma ALPH A*11a mul 1 ALPH sub A*21a mul add def /B*Ma ALPH B*11a mul 1 ALPH sub B*21a mul add def /C*Ma A*Ma dup mul B*Ma dup mul add 0.000001 add sqrt def /H*Ma B*Ma A*Ma 0.0001 add atan def /ia30 ia 3 mul def /iap 1 ALPH sub def /iam ALPH def ia 0 eq {/c3*Ma 0 def %L, c*=0, sector O->Y /m3*Ma iam def %L, m*=1->0 /y3*Ma 1 def %L, y*=1 } if ia 1 eq {/c3*Ma iap def %L, c*=0->1, sector Y->L /m3*Ma 0 def %L, m*=0 /y3*Ma 1 def %L, y*=1 } if ia 2 eq {/c3*Ma 1 def %L, c*=1, sector L->C /m3*Ma 0 def %L, m*=0 /y3*Ma iam def %L, y*=1->0 } if ia 3 eq {/c3*Ma 1 def %L, c*=1, sector C->V /m3*Ma iap def %L, m*=1->0 /y3*Ma 0 def %L, y*=0 } if ia 4 eq {/c3*Ma iam def %L, c*=1->0, sector V->M /m3*Ma 1 def %L, m*=1 /y3*Ma 0 def %L, y*=0 } if ia 5 eq {/c3*Ma 0 def %L, c*=0, sector M->O /m3*Ma 1 def %L, m*=1 /y3*Ma iap def %L, y*=0->1 } if /o3*Ma 1 c3*Ma sub def /l3*Ma 1 m3*Ma sub def /v3*Ma 1 y3*Ma sub def /i3*Ma 1 def /lab*nMa 0.00 def /lab*cMa 1.00 def /lab*wMa 0.00 def /lab*tMa 0.50 def /lab*hMa H*Ma 360 div def /lab*lMa L*Ma nLAB*s0 0 get sub wLAB*s0 0 get nLAB*s0 0 get sub 0.000001 add div def } bind def %END procedure proc_LAB*Fa_LAB*MaNTABl_olvi3*cmyn3*Ma*ioL %******************************************************************* /proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL { %BEG procedure proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL %only for calculation without hue tables %input LAB*Fae %input LAB*a (4 adapted colours RJGB, No. 8 to 11) %input nLAB*s0 (colour white N for calculation of lab*l) %input wLAB*s0 (colour white W for achromatic axis) %output LAB*Mae %output olvi3*Mae %output cmyn3*Mae /UXF1a wLAB*s0 1 get B*Fae mul wLAB*s0 2 get A*Fae mul sub def /UXF2a wLAB*s0 2 get L*Fae mul wLAB*s0 0 get B*Fae mul sub def /UXF3a wLAB*s0 0 get A*Fae mul wLAB*s0 1 get L*Fae mul sub def /T1 0 def /T2 0 def 0 1 5 {/ia exch def /ia30 ia 3 mul def ia 5 eq {/ia31 0 def} {/ia31 ia30 3 add def} ifelse /T1 LAB*a ia30 get UXF1a mul LAB*a ia30 1 add get UXF2a mul add LAB*a ia30 2 add get UXF3a mul add def /T2 LAB*a ia31 get UXF1a mul LAB*a ia31 1 add get UXF2a mul add LAB*a ia31 2 add get UXF3a mul add def T1 0 le {/T1X (N) def} {/T1X (P) def} ifelse T2 0 gt {/T2X (P) def} {/T2X (N) def} ifelse T1 0 le T2 0 gt and {/ia3END ia30 def exit} if } for /L*11a LAB*a ia3END get def /A*11a LAB*a ia3END 1 add get def /B*11a LAB*a ia3END 2 add get def ia3END 15 ge {/ia3END -3 def} if /L*21a LAB*a ia3END 3 add get def /A*21a LAB*a ia3END 4 add get def /B*21a LAB*a ia3END 5 add get def /NENNER L*21a L*11a sub UXF1a mul A*21a A*11a sub UXF2a mul add B*21a B*11a sub UXF3a mul add def /ZAEHLE L*21a UXF1a mul A*21a UXF2a mul add B*21a UXF3a mul add def NENNER 0 ne {/ALPH ZAEHLE NENNER div def} {/ALPH 99999} ifelse /L*Mae ALPH L*11a mul 1 ALPH sub L*21a mul add def /A*Mae ALPH A*11a mul 1 ALPH sub A*21a mul add def /B*Mae ALPH B*11a mul 1 ALPH sub B*21a mul add def /C*Mae A*Mae dup mul B*Mae dup mul add 0.000001 add sqrt def /H*Mae B*Mae A*Mae 0.0001 add atan def /ia30 ia 3 mul def /iap 1 ALPH sub def /iam ALPH def ia 0 eq {/c3*Mae 0 def %L, c*=0, sector O->Y /m3*Mae iam def %L, m*=1->0 /y3*Mae 1 def %L, y*=1 } if ia 1 eq {/c3*Mae iap def %L, c*=0->1, sector Y->L /m3*Mae 0 def %L, m*=0 /y3*Mae 1 def %L, y*=1 } if ia 2 eq {/c3*Mae 1 def %L, c*=1, sector L->C /m3*Mae 0 def %L, m*=0 /y3*Mae iam def %L, y*=1->0 } if ia 3 eq {/c3*Mae 1 def %L, c*=1, sector C->V /m3*Mae iap def %L, m*=1->0 /y3*Mae 0 def %L, y*=0 } if ia 4 eq {/c3*Mae iam def %L, c*=1->0, sector V->M /m3*Mae 1 def %L, m*=1 /y3*Mae 0 def %L, y*=0 } if ia 5 eq {/c3*Mae 0 def %L, c*=0, sector M->O /m3*Mae 1 def %L, m*=1 /y3*Mae iap def %L, y*=0->1 } if /o3*Mae 1 c3*Mae sub def /l3*Mae 1 m3*Mae sub def /v3*Mae 1 y3*Mae sub def /i3*Mae 1 def /lab*nMae 0.00 def /lab*cMae 1.00 def /lab*wMae 0.00 def /lab*tMae 0.50 def /lab*hMae H*Mae 360 div def /lab*lMae L*Mae nLAB*s0 0 get sub wLAB*s0 0 get nLAB*s0 0 get sub 0.000001 add div def } bind def %END procedure proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL %******************************************************************* %END aus LG17 %%EndProlog gsave /lanind 0 def /lantex [(G) (E) (S) (N) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showm {6 lanind eq {show} {pop} ifelse} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 0 def /lanind2 0 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop} %/IMES IMES def {/IMES 0 def} ifelse /xchartg where {pop /xchartx xchartg def} {/xchartx 0 def} ifelse /xcolorg where {pop /xcolorx xchartg def} {/xcolorx 0 def} ifelse /colormg where {pop /colorm colormg def} {/colorm 0 def} ifelse %BEG aus LG17 /cvi100show {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le and {(000) show} if xia 10 ge xia 99 le and {(00) show} if xia 100 ge xia 999 le and {(0) show} if % xia 1000 ge xia 9999 le and {() show} if xia cvishow ( ) show } bind def /LUTL* 247 array def %243+4=247 /LUTA* 247 array def /LUTB* 247 array def /LUTr* 247 array def /LUTg* 247 array def /LUTb* 247 array def /C*ab 247 array def /L* 247 array def /LUTl* 247 array def %243+4=247 /LUTc1* 247 array def /LUTc2* 247 array def /LUTt1* 247 array def /LUTt2* 247 array def /LUTc*rgb 247 array def /LUTt*rgb 247 array def /l1* 247 array def %243+4=247 /l2* 247 array def %l* not possible allread used olv* /c1* 247 array def /c2* 247 array def /t1* 247 array def /t2* 247 array def /c1*rgb 247 array def /c2*rgb 247 array def /t1*rgb 247 array def /t2*rgb 247 array def /ColNames [(O) (Y) (L) (C) (V) (M) (N) (W) (R) (J) (G) (B) (R) (R25J) (R50J) (R75J) (J) (J25G) (J50G) (J75G) (G) (G25B) (G50B) (G75B) (B) (B25R) (B50R) (B75R) (R) ] def /o3Ma [1 1 0 0 0 1 0 1 1 1 0 0 1 1.00 1.00 1.00 1 0.75 0.50 0.25 0 0.00 0.00 0.00 0 0.50 1.00 1.00 1] def /l3Ma [0 1 1 1 0 0 0 1 0 1 1 0 0 0.25 0.50 0.75 1 1.00 1.00 1.00 1 1.00 1.00 0.50 0 0.00 0.00 0.00 0] def /v3Ma [0 0 0 1 1 1 0 1 0 0 0 1 0 0.00 0.00 0.00 0 0.00 0.00 0.00 0 0.50 1.00 1.00 1 1.00 1.00 0.50 0] def /yd 340 def %y-Zeilenabstand %Spalten /S1 20 def /S2 450 def /S3 1550 def /S4 2650 def /S5 3750 def /S6 4650 def /S7 5350 def /S8 6400 def /S9 7200 def /S10 8000 def /S11 8800 def /S12 9600 def /yu1 4650 def /yu2 3800 4000 add def /nshow {300 /Times-ISOL1 FS show} bind def /kshow {300 /TimesI-ISOL1 FS show} bind def /bshow {300 /TimesB-ISOL1 FS show} bind def /jshow {300 /TimesBI-ISOL1 FS show} bind def /sshow {300 /Symbol FS show} bind def /ishow {220 /Times-ISOL1 FS -00 -50 rmoveto show 00 50 rmoveto} bind def /eshow {220 /Times-ISOL1 FS 0 100 rmoveto show 0 -100 rmoveto} bind def %72 90 translate %0.01 MM dup scale /L*olv 8 array def /A*olv 8 array def /B*olv 8 array def /C*olv 8 array def /H*olv 8 array def /N*olv 8 array def /o*olv 8 array def /l*olv 8 array def /v*olv 8 array def /L*rgb 8 array def /A*rgb 8 array def /B*rgb 8 array def /C*rgb 8 array def /H*rgb 8 array def /N*rgb 8 array def /o*rgb 8 array def /l*rgb 8 array def /v*rgb 8 array def /angle_olv 7 array def /angle_olvG01 7 array def /angle_olvG11 7 array def /angle_olvGA1 7 array def %either angle_olvG01 or angle_olvG11 /angle_rgb 7 array def /angle_olv [38 96 151 236 305 354 398] def %standard offset /angle_rgb [26 92 162 217 272 329 386] def %CIE-test colors /angle_olvi 28 array def %shift by 00,25,50,75% /angle_olvG01i 28 array def %shift by 00,25,50,75% /angle_olvG11i 28 array def %shift by 00,25,50,75% /angle_olvGA1i 28 array def %either angle_olvG01i or angle_olvG11i /angle_rgbi 28 array def %shift by 00,25,50,75% /xcolor xcolorx def /xchart xchartx def /k30j 8 array def /k30j [648 720 072 080 008 656 000 728] def % O1 Y1 L1 C1 V1 M1 N1 W1 %END aus LG17 %3240=1080*3 /LAB*rc089 3240 array def /XYZrc089 3240 array def /LAB*ra089 3240 array def /XYZra089 3240 array def /LAB*la089 3240 array def /XYZla089 3240 array def /LAB*lc089 3240 array def /XYZlc089 3240 array def /XYZ_Xj 1080 array def /XYZ_Yj 1080 array def /XYZ_Zj 1080 array def /LAB*Lj 1080 array def /LAB*aj 1080 array def /LAB*bj 1080 array def /LAB*Lja 1080 array def /LAB*aja 1080 array def /LAB*bja 1080 array def /LAB*Cja 1080 array def /LAB*Hja 1080 array def /ymax 16600 def /ydel 203 def /cvishow {0.5 add cvi 6 string cvs show} def /cvsshow1 {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /RJGBLAB* 12 array def /RJGBLAB*[ 39.92 58.74 27.99 % R CIE No.09 elementary colours in LAB, D65 81.26 -2.89 71.56 % J CIE No.10 52.23 -42.42 13.60 % G CIE No.11 30.57 1.41 -46.47 % B CIE No.12 ] def /RGBhab08 8 array def RGBhab08 0 RJGBLAB* 02 get RJGBLAB* 01 get atan put %026 RGBhab08 1 RJGBLAB* 05 get RJGBLAB* 04 get atan put %092 RGBhab08 2 RJGBLAB* 08 get RJGBLAB* 07 get atan put %162 RGBhab08 4 RJGBLAB* 11 get RJGBLAB* 10 get atan put %272 RGBhab08 3 RGBhab08 2 get RGBhab08 4 get add 0.5 mul put %217 RGBhab08 5 RGBhab08 4 get RGBhab08 0 get 360 add add 0.5 mul put %329 RGBhab08 6 RGBhab08 0 get 360 add put %386 RGBhab08 7 RGBhab08 1 get 360 add put %452 /RGBhab08d 8 array def 0 1 6 {/j exch def %j=0,6 RGBhab08d j RGBhab08 j 1 add get RGBhab08 j get sub put } for /xs 1000 def /ys xs def /d2 xs 2 div def /d8 xs 8 div def /xs5x xs 5.4 mul def /ys5x ys 5.4 mul def XYZ*system /Lrefl 11 array def /Lrefl [(0%) (0%) (0%) (0%) (0,6%) (1,2%) (2,5%) (5%) (10%) (20%) (40%)] def /u*dtx [(o) (y) (l) (c) (v) (m) (o)] def /u*etx [(r) (j) (g) () (b) () (r)] def /LAB*na089 3240 array def /XYZna089 3240 array def /IN 27 array def /IN [0000 0001 0002 0003 0004 0005 0006 0007 0008 0243 0244 0245 0246 0247 0248 0249 0250 0251 0486 0487 0488 0489 0490 0491 0492 0493 0494] def /LUTL*64a 64 array def /LUTA*64a 64 array def /LUTB*64a 64 array def /LUTC*64a 64 array def /LUTH*64a 64 array def /holv*64a 64 array def /OLVhab64 64 array def /RGBhab64 64 array def /indton64 64 array def /LNWton09 09 array def /L*ton 9 array def /RJGB16 16 array def /RJGB16 [(r00j=R) (r25j) (r50j) (r75j) (j00g=J) (j25g) (j50g) (j75g) (g00b=G) (g25b) (g50b) (g75b) (b00r=B) (b25r) (b50r) (b75r)] def /L05 5 array def /L05 [(n000w=N) (n025w) (n050w) (n075w) (n100w=W)] def /RGB*16 16 array def /RGB*16 [(1.00 0.00 0.00) (1.00 0.25 0.00) (1.00 0.50 0.00) (1.00 0.75 0.00) (1.00 1.00 0.00) (0.75 1.00 0.00) (0.50 1.00 0.00) (0.25 1.00 0.00) (0.00 1.00 0.00) (0.00 1.00 0.50) (0.00 1.00 1.00) (0.00 0.50 1.00) (0.00 0.00 1.00) (0.50 0.00 1.00) (1.00 0.00 1.00) (1.00 0.00 0.50) ] def /RGBNM*16 16 array def /RGBNW*16 [(1.00 0.00 0.00) (0.50 0.00 0.00) (1.00 0.50 0.50) () (1.00 1.00 0.00) (0.50 0.50 0.00) (1.00 1.00 0.50) () (0.00 1.00 0.00) (0.00 0.50 0.00) (0.50 1.00 0.50) () (0.00 0.00 1.00) (0.00 0.00 0.50) (0.50 0.50 1.00) ()] def /RGB*005 05 array def /RGB*005 [(0.00 0.00 0.00) (0.25 0.25 0.25) (0.50 0.50 0.50) (0.75 0.75 0.75) (1.00 1.00 1.00)] def /RGB*009 09 array def /RGB*009 [(0.000 0.000 0.000) (0.125 0.125 0.125) (0.250 0.250 0.250) (0.375 0.375 0.375) (0.500 0.500 0.500) (0.625 0.625 0.625) (0.750 0.750 0.750) (0.875 0.875 0.875) (1.000 1.000 1.000)] def /OLV64 64 array def /OLV64 [(o00y=O) (o12y) (o25y) (o37y) (o50y) (o62y) (o75y) (o87y) (y00l=Y) (y12l) (y25l) (y37l) (y50l) (y62l) (y75l) (y87l) (l00c=L) (l12c) (l25c) (l37c) (l50c) (l62c) (l75c) (l87c) (c00v=C) (c12v) (c25v) (c37v) (c50v) (c62v) (c75v) (c87v) (v00m=V) (v12m) (v25m) (v37m) (v50m) (v62m) (v75m) (v87m) (m00o=M) (m12o) (m25o) (m37o) (m50o) (m62o) (m75o) (m87o) %repeat for range >360 degree (o00y=O) (o12y) (o25y) (o37y) (o50y) (o62y) (o75y) (o87y) (y00l=Y) (y12l) (y25l) (y37l) (y50l) (y62l) (y75l) (y87l) ] def /RGB64 64 array def /RGB64[(r00j=R) (r12j) (r25j) (r37j) (r50j) (r62j) (r75j) (r87j) (j00g=J) (j12g) (j25g) (j37g) (j50g) (j62g) (j75g) (j87g) (g00c'=G) (g12c') (g25c') (g37c') (g50c') (g62c') (g75c') (g87c') (c'00b=C') (c'12b) (c'25b) (c'37b) (c'50b) (c'62b) (c'75b) (c'87b) (b00m'=B) (b12m') (b25m') (b37m') (b50m') (b62m') (b75m') (b87m') (m'00r=M') (m'12r) (m'25r) (m'37r) (m'50r) (m'62r) (m'75r) (m'87r) %repeat for range >360 degree (r00j=R) (r12j) (r25j) (r37j) (r50j) (r62j) (r75j) (r87j) (j00g=J) (j12g) (j25g) (j37g) (j50g) (j62g) (j75g) (j87g) ] def /RGBOLV*64tx 64 array def /RGBOLV*64tx [(1.000 0.000 0.000) (1.000 0.125 0.000) (1.000 0.250 0.000) (1.000 0.375 0.000) %O-Y (1.000 0.500 0.000) (1.000 0.625 0.000) (1.000 0.750 0.000) (1.000 0.875 0.000) (1.000 1.000 0.000) (0.875 1.000 0.000) (0.750 1.000 0.000) (0.625 1.000 0.000) %Y-L (0.500 1.000 0.000) (0.375 1.000 0.000) (0.250 1.000 0.000) (0.125 1.000 0.000) (0.000 1.000 0.000) (0.000 1.000 0.125) (0.000 1.000 0.250) (0.000 1.000 0.375) %L-C (0.000 1.000 0.500) (0.000 1.000 0.625) (0.000 1.000 0.750) (0.000 1.000 0.875) (0.000 1.000 1.000) (0.000 0.875 1.000) (0.000 0.750 1.000) (0.000 0.625 1.000) %C-V (0.000 0.500 1.000) (0.000 0.375 1.000) (0.000 0.250 1.000) (0.000 0.125 1.000) (0.000 0.000 1.000) (0.125 0.000 1.000) (0.250 0.000 1.000) (0.375 0.000 1.000) %V-M (0.500 0.000 1.000) (0.625 0.000 1.000) (0.750 0.000 1.000) (0.875 0.000 1.000) (1.000 0.000 1.000) (1.000 0.000 0.875) (1.000 0.000 0.750) (1.000 0.000 0.625) %M-O (1.000 0.000 0.500) (1.000 0.000 0.375) (1.000 0.000 0.250) (1.000 0.000 0.125) %repeat for range >360 degree (1.000 0.000 0.000) (1.000 0.125 0.000) (1.000 0.250 0.000) (1.000 0.375 0.000) %O-Y (1.000 0.500 0.000) (1.000 0.625 0.000) (1.000 0.750 0.000) (1.000 0.875 0.000) (1.000 1.000 0.000) (0.875 1.000 0.000) (0.750 1.000 0.000) (0.625 1.000 0.000) %Y-L (0.500 1.000 0.000) (0.375 1.000 0.000) (0.250 1.000 0.000) (0.125 1.000 0.000) ] def /RGBOLV*192 192 array def /RGBOLV*192 [1.000 0.000 0.000 1.000 0.125 0.000 1.000 0.250 0.000 1.000 0.375 0.000 %O-Y 1.000 0.500 0.000 1.000 0.625 0.000 1.000 0.750 0.000 1.000 0.875 0.000 1.000 1.000 0.000 0.875 1.000 0.000 0.750 1.000 0.000 0.625 1.000 0.000 %Y-L 0.500 1.000 0.000 0.375 1.000 0.000 0.250 1.000 0.000 0.125 1.000 0.000 0.000 1.000 0.000 0.000 1.000 0.125 0.000 1.000 0.250 0.000 1.000 0.375 %L-C 0.000 1.000 0.500 0.000 1.000 0.625 0.000 1.000 0.750 0.000 1.000 0.875 0.000 1.000 1.000 0.000 0.875 1.000 0.000 0.750 1.000 0.000 0.625 1.000 %C-V 0.000 0.500 1.000 0.000 0.375 1.000 0.000 0.250 1.000 0.000 0.125 1.000 0.000 0.000 1.000 0.125 0.000 1.000 0.250 0.000 1.000 0.375 0.000 1.000 %V-M 0.500 0.000 1.000 0.625 0.000 1.000 0.750 0.000 1.000 0.875 0.000 1.000 1.000 0.000 1.000 1.000 0.000 0.875 1.000 0.000 0.750 1.000 0.000 0.625 %M-O 1.000 0.000 0.500 1.000 0.000 0.375 1.000 0.000 0.250 1.000 0.000 0.125 %repeat for range >360 degree 1.000 0.000 0.000 1.000 0.125 0.000 1.000 0.250 0.000 1.000 0.375 0.000 %O-Y 1.000 0.500 0.000 1.000 0.625 0.000 1.000 0.750 0.000 1.000 0.875 0.000 1.000 1.000 0.000 0.875 1.000 0.000 0.750 1.000 0.000 0.625 1.000 0.000 %Y-L 0.500 1.000 0.000 0.375 1.000 0.000 0.250 1.000 0.000 0.125 1.000 0.000 ] def /RGBOLV*640 64 array def /RGBOLV*641 64 array def /RGBOLV*642 64 array def 0 1 63 {/j exch def %j=0,63 RGBOLV*640 j RGBOLV*192 j 3 mul get put RGBOLV*641 j RGBOLV*192 j 3 mul 1 add get put RGBOLV*642 j RGBOLV*192 j 3 mul 2 add get put } for %j=0,63 /RGBOLVL 1 def %Interpretation rgb->rgb* (0,2) or rgb->olv* (1,3) /LABOLVL 0 def %Output LAB* (0) or OLV*/RGB* (1) /REFLECL 0 def %0 1 0 {/REFLECL exch def %beg REFLECL=0,0 /lut 2187 array def %729x3=2187 /lut1 1080 array def /lut2 1080 array def /lut3 1080 array def /OLVhab08 8 array def /OLVhab08d 8 array def /x3D 0 def %0,1 output Faeit or Fae3D on page 2,3 /xtext 1 def %0,1 without/with text output 72 90 translate 0.01 MM dup scale gsave /xchartix xchartx def 00 1 01 {/xchartix exch def %beg xchartix=00,01 /xcharti xchartix 2 idiv 3 add def %range 3...10 /xcharts xchartix xchartix 2 idiv 2 mul sub def %range 0...1 xcharts 0 eq {%xcharts=0 x3D 0 eq RGBOLVL 0 eq and {/FileTex (Fadin) def} if x3D 0 eq RGBOLVL 1 eq and {/FileTex (Fadin) def} if x3D 1 eq RGBOLVL 0 eq and {/FileTex (Fadin) def} if x3D 1 eq RGBOLVL 1 eq and {/FileTex (Fadin) def} if }%xcharts=0 {%xcharts=1 x3D 0 eq RGBOLVL 0 eq and {/FileTex (Faeit) def} if x3D 0 eq RGBOLVL 1 eq and {/FileTex (Fadit) def} if x3D 1 eq RGBOLVL 0 eq and {/FileTex (Fae3D) def} if x3D 1 eq RGBOLVL 1 eq and {/FileTex (Fad3D) def} if } ifelse %xcharts=1 gsave xcharti 2 le {/il 0 def} {/il xcharti 3 sub def} ifelse %Reference black and factors /YrN 2.52 def /ilf [0.00 0.25 0.50 1.00 2.00 4.00 8.00 16.00] def /Xtref089 YrN ilf il get mul XLN001 mul def /Ytref089 YrN ilf il get mul def /Ztref089 YrN ilf il get mul ZLN001 mul def /YNil Ytref089 def /YNil001 YNil 100 div def YNil001 6 29 div 3 exp ge {/FYYn YNil001 0.3333 exp def} {/FYYn 841 108 div YNil001 mul 4 29 div add def} ifelse /L*Nil 116 FYYn mul 16 sub def /IM1 1079 def 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def XYZrc089 i30 XYZrx089 i30 get put XYZrc089 i31 XYZrx089 i31 get put XYZrc089 i32 XYZrx089 i32 get put /XQ XYZrc089 i30 get XLWD65100 div def /YQ XYZrc089 i31 get YLWD65100 div def /ZQ XYZrc089 i32 get ZLWD65100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LAB*rc089 i30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LAB*rc089 i31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LAB*rc089 i32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,IM1 /jN 1072 3 mul def /L*N LAB*rc089 jN get def /A*N LAB*rc089 jN 1 add get def /B*N LAB*rc089 jN 2 add get def /jW 1073 3 mul def /L*W LAB*rc089 jW get def /A*W LAB*rc089 jW 1 add get def /B*W LAB*rc089 jW 2 add get def 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def LAB*ra089 i30 LAB*rc089 i30 get put /l*CIE LAB*rc089 i30 get L*N sub L*W L*N sub div def %system rel. lightn. /a*s A*W A*N sub l*CIE mul def /b*s B*W B*N sub l*CIE mul def LAB*ra089 i31 LAB*rc089 i31 get A*N sub a*s sub put LAB*ra089 i32 LAB*rc089 i32 get B*N sub b*s sub put } for %i=0,IM1 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def /X* {LAB*ra089 i30 get 16 add 116 div LAB*ra089 i31 get 500 div add} bind def /Y* {LAB*ra089 i30 get 16 add 116 div} bind def /Z* {LAB*ra089 i30 get 16 add 116 div LAB*ra089 i32 get 200 div sub} bind def XYZra089 i30 X* DecodeXYZ* XLWD65100 mul put XYZra089 i31 Y* DecodeXYZ* YLWD65100 mul put XYZra089 i32 Z* DecodeXYZ* ZLWD65100 mul put } for %i=0,IM1 xcharti 2 ge {%xcharti>=2 /jW 1073 3 mul def %for white X data /Xwref089 XYZra089 jW get def /Ywref089 XYZra089 jW 1 add get def /Zwref089 XYZra089 jW 2 add get def /jN 1072 3 mul 1 add def %for black X data /YrN XYZra089 jN 1 add get def /Xnref089 YrN XLN001 mul def /Ynref089 YrN def /Znref089 YrN ZLN001 mul def 0 1 IM1 {/i exch def /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def XYZna089 i30 XYZra089 i30 get Xnref089 sub Xwref089 Xwref089 Xnref089 sub div mul put XYZna089 i31 XYZra089 i31 get Ynref089 sub Ywref089 Ywref089 Ynref089 sub div mul put XYZna089 i32 XYZra089 i32 get Znref089 sub Zwref089 Zwref089 Znref089 sub div mul put } for %i=I1,I2 0 1 IM1 {/i exch def /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def /XQ XYZna089 i30 get XLWD65100 div def /YQ XYZna089 i31 get YLWD65100 div def /ZQ XYZna089 i32 get ZLWD65100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LAB*na089 i30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LAB*na089 i31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LAB*na089 i32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=I1,I2 } if %xchart>=2 xcharti 3 ge {%xchart>=3 /jW 1073 3 mul def %for white X data %/jW 57 3 mul def %W /Xwref089 XYZra089 jW get def /Ywref089 XYZra089 jW 1 add get def /Zwref089 XYZra089 jW 2 add get def /kn Ywref089 Ywref089 Ytref089 sub div def 0 1 IM1 {/i exch def /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def XYZla089 i30 XYZna089 i30 get kn div Xtref089 add put XYZla089 i31 XYZna089 i31 get kn div Ytref089 add put XYZla089 i32 XYZna089 i32 get kn div Ztref089 add put } for %i=I1,I2 0 1 IM1 {/i exch def /i30 i 3 mul def /i31 i 3 mul 1 add def /i32 i 3 mul 2 add def /XQ XYZla089 i30 get XLWD65100 div def /YQ XYZla089 i31 get YLWD65100 div def /ZQ XYZla089 i32 get ZLWD65100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LAB*la089 i30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LAB*la089 i31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LAB*la089 i32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=I1,I2 } if %xchart>=3 xcharti 0 eq {%xcharti=0 (1x) 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def % 10100 ymax i i 80 idiv 80 mul sub ydel mul sub moveto LAB*Lj i LAB*rc089 i30 get put LAB*aj i LAB*rc089 i31 get put LAB*bj i LAB*rc089 i32 get put XYZ_Xj i XYZrc089 i30 get put XYZ_Yj i XYZrc089 i31 get put XYZ_Zj i XYZrc089 i32 get put } for %i=0,IM1 } if %xcharti=0 (1x) xcharti 1 eq {%xcharti=1 (1x) 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def % 10100 ymax i i 80 idiv 80 mul sub ydel mul sub moveto LAB*Lj i LAB*ra089 i30 get put LAB*aj i LAB*ra089 i31 get put LAB*bj i LAB*ra089 i32 get put XYZ_Xj i XYZra089 i30 get put XYZ_Yj i XYZra089 i31 get put XYZ_Zj i XYZra089 i32 get put } for %i=0,IM1 } if %xcharti=1 (1x) xcharti 2 eq {%xcharti=2 (1x) 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def % 10100 ymax i i 80 idiv 80 mul sub ydel mul sub moveto LAB*Lj i LAB*na089 i30 get put LAB*aj i LAB*na089 i31 get put LAB*bj i LAB*na089 i32 get put XYZ_Xj i XYZna089 i30 get put XYZ_Yj i XYZna089 i31 get put XYZ_Zj i XYZna089 i32 get put } for %i=0,IM1 } if %xcharti=2 (1x) xcharti 3 ge {%xcharti=3,4,5,6,7,8,9,10 (8x) 0 1 IM1 {/i exch def %i=0,IM1 /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def % 10100 ymax i i 80 idiv 80 mul sub ydel mul sub moveto LAB*Lj i LAB*la089 i30 get put LAB*aj i LAB*la089 i31 get put LAB*bj i LAB*la089 i32 get put XYZ_Xj i XYZla089 i30 get put XYZ_Yj i XYZla089 i31 get put XYZ_Zj i XYZla089 i32 get put } for %i=0,IM1 } if %xcharti=3,4,5,6,7,8,9,10 (8x) xcharti 0 eq {/Xprint 0 def /FileData (LAB*rc) def} if xcharti 1 eq {/Xprint 1 def /FileData (LAB*ra) def} if xcharti 2 eq {/Xprint 1 def /FileData (LAB*na) def} if xcharti 3 eq {/Xprint 1 def /FileData (LAB*la0) def} if xcharti 4 eq {/Xprint 1 def /FileData (LAB*la1) def} if xcharti 5 eq {/Xprint 1 def /FileData (LAB*la2) def} if xcharti 6 eq {/Xprint 1 def /FileData (LAB*la3) def} if xcharti 7 eq {/Xprint 1 def /FileData (LAB*la4) def} if xcharti 8 eq {/Xprint 1 def /FileData (LAB*la5) def} if xcharti 9 eq {/Xprint 1 def /FileData (LAB*la6) def} if xcharti 10 eq {/Xprint 1 def /FileData (LAB*la7) def} if 0 1 728 {/j exch def %j=1,728 %necessary in both cases j 072 eq {%072 0-8-0 L 2 LAB*01 06 LAB*Lj j get put LAB*01 07 LAB*aj j get put LAB*01 08 LAB*bj j get put} if j 080 eq {%080 0-8-8 C 3 LAB*01 09 LAB*Lj j get put LAB*01 10 LAB*aj j get put LAB*01 11 LAB*bj j get put} if j 008 eq {%008 0-0-8 V 4 LAB*01 12 LAB*Lj j get put LAB*01 13 LAB*aj j get put LAB*01 14 LAB*bj j get put} if j 000 eq {%000 0-0-0 N 6 LAB*01 18 LAB*Lj j get put LAB*01 19 LAB*aj j get put LAB*01 20 LAB*bj j get put} if j 648 eq {%648 8-0-0 O 0 LAB*01 00 LAB*Lj j get put LAB*01 01 LAB*aj j get put LAB*01 02 LAB*bj j get put} if j 720 eq {%720 8-8-0 Y 1 LAB*01 03 LAB*Lj j get put LAB*01 04 LAB*aj j get put LAB*01 05 LAB*bj j get put} if j 656 eq {%656 8-0-8 M 5 LAB*01 15 LAB*Lj j get put LAB*01 16 LAB*aj j get put LAB*01 17 LAB*bj j get put} if j 728 eq {%728 8-8-8 W 7 LAB*01 21 LAB*Lj j get put LAB*01 22 LAB*aj j get put LAB*01 23 LAB*bj j get put} if } for %j=0,728 729 1 971 {/j exch def %j=729,971 %necessary in both cases j 963 eq {%963 0-8-0 L 2 LAB*02 06 LAB*Lj j get put LAB*02 07 LAB*aj j get put LAB*02 08 LAB*bj j get put} if j 737 eq {%737 0-8-8 C 3 LAB*02 09 LAB*Lj j get put LAB*02 10 LAB*aj j get put LAB*02 11 LAB*bj j get put} if j 818 eq {%818 0-0-8 V 4 LAB*02 12 LAB*Lj j get put LAB*02 13 LAB*aj j get put LAB*02 14 LAB*bj j get put} if j 809 eq {%809 or 890 or 971 0-0-0 N 6 LAB*02 18 LAB*Lj j get LAB*Lj 890 get add LAB*Lj 971 get add 3 div put LAB*02 19 LAB*aj j get LAB*aj 890 get add LAB*aj 971 get add 3 div put LAB*02 20 LAB*bj j get LAB*bj 890 get add LAB*bj 971 get add 3 div put} if j 801 eq {%801 8-0-0 O 0 LAB*02 00 LAB*Lj j get put LAB*02 01 LAB*aj j get put LAB*02 02 LAB*bj j get put} if j 882 eq {%882 8-8-0 Y 1 LAB*02 03 LAB*Lj j get put LAB*02 04 LAB*aj j get put LAB*02 05 LAB*bj j get put} if j 899 eq {%899 8-0-8 M 5 LAB*02 15 LAB*Lj j get put LAB*02 16 LAB*aj j get put LAB*02 17 LAB*bj j get put} if j 729 eq {%729 or 810 or 891 8-8-8 W 7 LAB*02 21 LAB*Lj j get LAB*Lj 810 get add LAB*Lj 891 get add 3 div put LAB*02 22 LAB*aj j get LAB*aj 810 get add LAB*aj 891 get add 3 div put LAB*02 23 LAB*bj j get LAB*bj 810 get add LAB*bj 891 get add 3 div put} if } for %j=j=729,971 972 1 1079 {/j exch def %j=972,1079 %only last colours 1072 to 1079 j 1078 eq {%1078 0-8-0 L 2 LAB*03 06 LAB*Lj j get put LAB*03 07 LAB*aj j get put LAB*03 08 LAB*bj j get put} if j 1075 eq {%1075 0-8-8 C 3 LAB*03 09 LAB*Lj j get put LAB*03 10 LAB*aj j get put LAB*03 11 LAB*bj j get put} if j 1077 eq {%1077 0-0-8 V 4 LAB*03 12 LAB*Lj j get put LAB*03 13 LAB*aj j get put LAB*03 14 LAB*bj j get put} if j 1072 eq {%1072 0-0-0 N 6 LAB*03 18 LAB*Lj j get put LAB*03 19 LAB*aj j get put LAB*03 20 LAB*bj j get put} if j 1074 eq {%1074 8-0-0 O 0 LAB*03 00 LAB*Lj j get put LAB*03 01 LAB*aj j get put LAB*03 02 LAB*bj j get put} if j 1076 eq {%1076 8-8-0 Y 1 LAB*03 03 LAB*Lj j get put LAB*03 04 LAB*aj j get put LAB*03 05 LAB*bj j get put} if j 1079 eq {%1079 8-0-8 M 5 LAB*03 15 LAB*Lj j get put LAB*03 16 LAB*aj j get put LAB*03 17 LAB*bj j get put} if j 1073 eq {%1073 8-8-8 W 7 LAB*03 21 LAB*Lj j get put LAB*03 22 LAB*aj j get put LAB*03 23 LAB*bj j get put} if } for %j=j=972,1079 972 1 1079 {/j exch def %09 step N,W: j=0972,0980; 0981,0989; 0990,0998; % 0999,1007 %16 step N,W: j=1008,1023; 1024,1039; 1040,1055; % 1056,1071 %necessary for four 09-step grey scales j 0972 eq {%0972 or 1008 0-0-0 N 6 LAB*04 18 LAB*Lj j get put LAB*04 19 LAB*aj j get put LAB*04 20 LAB*bj j get put} if j 0980 eq {%0980 or 1023 8-8-8 W 7 LAB*04 21 LAB*Lj j get put LAB*04 22 LAB*aj j get put LAB*04 23 LAB*bj j get put} if j 0981 eq {%0981 or 1024 0-0-0 N 6 LAB*05 18 LAB*Lj j get put LAB*05 19 LAB*aj j get put LAB*05 20 LAB*bj j get put} if j 0989 eq {%0989 or 1039 8-8-8 W 7 LAB*05 21 LAB*Lj j get put LAB*05 22 LAB*aj j get put LAB*05 23 LAB*bj j get put} if j 0990 eq {%0990 or 1040 0-0-0 N 6 LAB*06 18 LAB*Lj j get put LAB*06 19 LAB*aj j get put LAB*06 20 LAB*bj j get put} if j 0998 eq {%0998 or 1055 8-8-8 W 7 LAB*06 21 LAB*Lj j get put LAB*06 22 LAB*aj j get put LAB*06 23 LAB*bj j get put} if j 0999 eq {%0999 or 1056 0-0-0 N 6 LAB*07 18 LAB*Lj j get put LAB*07 19 LAB*aj j get put LAB*07 20 LAB*bj j get put} if j 1007 eq {%1007 or 1071 8-8-8 W 7 LAB*07 21 LAB*Lj j get put LAB*07 22 LAB*aj j get put LAB*07 23 LAB*bj j get put} if } for %j=972,1079 %Adaptation /L*Nio LAB*07 18 get def /A*Nio LAB*07 19 get def /B*Nio LAB*07 20 get def /L*Wio LAB*07 21 get def /A*Wio LAB*07 22 get def /B*Wio LAB*07 23 get def /A*Dio A*Wio A*Nio sub def /B*Dio B*Wio B*Nio sub def 0 1 1079 {/j exch def %j=0,1079 LAB*Lja j LAB*Lj j get put /l*CIE LAB*Lj j get L*Nio sub L*Wio L*Nio sub div def %system rel. lightn. /a*s A*Wio A*Nio sub l*CIE mul def /b*s B*Wio B*Nio sub l*CIE mul def LAB*aja j LAB*aj j get A*Nio sub a*s sub put LAB*bja j LAB*bj j get B*Nio sub b*s sub put LAB*Cja j LAB*aja j get dup mul LAB*bja j get dup mul add 0.0001 add sqrt put LAB*Cja j get 0.02 le {%LAB*Cja<=0.02 achromatic LAB*Hja j 0 put } {%LAB*Cja>0.02 chromatic LAB*Hja j LAB*bja j get LAB*aja j get 0.0001 add atan put } ifelse } for %j=0,1079 0 3 2186 {/j exch def %j=0,2186 /j3 j 3 idiv def lut j LAB*Lja j3 get put lut j 1 add LAB*aja j3 get put lut j 2 add LAB*bja j3 get put } for %j=0,2186 %*********************************************************************************** xcharti 2 le {/jN 1072 3 mul def /YNil XYZrx089 jN 1 add get def /L*Nil LAB*rc089 jN get def} if /RJGB0 RJGBLAB* 02 get RJGBLAB* 01 get atan def %026 /RJGB1 RJGBLAB* 05 get RJGBLAB* 04 get atan def %092 /RJGB2 RJGBLAB* 08 get RJGBLAB* 07 get atan def %162 /RJGB3 RJGBLAB* 11 get RJGBLAB* 10 get atan def %272 /CeGB RJGB2 RJGB3 add 0.5 mul def /MeBR RJGB3 RJGB0 360 add add 0.5 mul def 0 1 47 {/j exch def %i=0,47 elementary and intemediate hue angles /j0 j j 8 idiv 8 mul sub def %0,1,2,3,4,5,6,7 /b0 j0 0.125 mul def /a0 1 b0 sub def j 00 ge j 07 le and {RGBhab64 j a0 RJGB0 mul b0 RJGB1 mul add put} if j 08 ge j 15 le and {RGBhab64 j a0 RJGB1 mul b0 RJGB2 mul add put} if j 16 ge j 23 le and {RGBhab64 j a0 RJGB2 mul b0 CeGB mul add put} if j 24 ge j 31 le and {RGBhab64 j a0 CeGB mul b0 RJGB3 mul add put} if j 32 ge j 39 le and {RGBhab64 j a0 RJGB3 mul b0 MeBR mul add put} if j 40 ge j 47 le and {RGBhab64 j a0 MeBR mul b0 RJGB0 360 add mul add dup 360 ge {360 sub} if put} if } for %j=0,47 elementary and intemediate hue angles 0 1 15 {/j exch def %j=0,15 %for interpolation 0 rgb* (0,2) /LAB*hMaP LAB*hMa def LAB*hMa OLVhab64 0 get lt {/LAB*hMaP LAB*hMa 360 add def} if /joj -1 def 0 1 62 {/jj exch def %jj=1,62 /habton0 OLVhab64 jj get def /habton1 OLVhab64 jj 1 add get def LAB*hMaP habton0 ge LAB*hMaP habton1 lt and {/joj jj def exit } if } for %jj=0,62 joj -1 eq {%output in case of data failure -100 -100 rmoveto (STOPjoj=-1) show (, ) show jj cvishow (, ) show LAB*hMaP cvsshow1 (, ) show OLVhab64 jj get cvsshow1 (, ) show OLVhab64 jj 1 add get cvsshow1 } if % } if %RGBOLVL=0 /A2 LAB*hMaP habton0 sub habton1 habton0 sub div def /A1 1 A2 sub def /jxj joj def %RGBOLVL 0 eq RGBOLVL 2 eq or {joj} {jrj} ifelse def /LAB*L*Ma LUTL*64a jxj get A1 mul LUTL*64a jxj 1 add get A2 mul add def /LAB*C*Ma LUTC*64a jxj get A1 mul LUTC*64a jxj 1 add get A2 mul add def /LAB*H*Ma LUTH*64a jxj get A1 mul LUTH*64a jxj 1 add get A2 mul add def /LAB*a*Ma LAB*C*Ma LAB*H*Ma cos mul def /LAB*b*Ma LAB*C*Ma LAB*H*Ma sin mul def /o3*Maeit RGBOLV*640 jxj get A1 mul RGBOLV*640 jxj 1 add get A2 mul add def /l3*Maeit RGBOLV*641 jxj get A1 mul RGBOLV*641 jxj 1 add get A2 mul add def /v3*Maeit RGBOLV*642 jxj get A1 mul RGBOLV*642 jxj 1 add get A2 mul add def } ifelse %chromatic colours /LAB*L*M LAB*L*Ma def /l*CIE LAB*L*Ma L*Nio sub L*Wio L*Nio sub div def %relative lightness %relative chroma c*3, blackness n*3, brilliance i*3 /minFa o3*Fa def l3*Fa minFa lt {/minFa l3*Fa def} if v3*Fa minFa lt {/minFa v3*Fa def} if /maxFa o3*Fa def l3*Fa maxFa gt {/maxFa l3*Fa def} if v3*Fa maxFa gt {/maxFa v3*Fa def} if /i*3 maxFa def /c*3 maxFa minFa sub def /n*3 1 i*3 sub def %CIE lightness and chroma of colour Fa %See equations (1) to (4) of www.ps.bam.de/D33872-AE.PDF, Page 10 /t*3 i*3 c*3 0.5 mul sub def /l*3 t*3 c*3 LAB*L*Ma L*Nio sub L*Wio L*Nio sub div 0.5 sub mul add def %calculation of o3*Faeit, l3*Faeit v3*Faeit % from o3*Maeit, l3*Maeit v3*Maeit /i*3 1 n*3 sub def /o3*Faeitn o3*Maeit i*3 mul def /l3*Faeitn l3*Maeit i*3 mul def /v3*Faeitn v3*Maeit i*3 mul def /minFaeitn o3*Faeitn def l3*Faeitn minFaeitn lt {/minFaeitn l3*Faeitn def} if v3*Faeitn minFaeitn lt {/minFaeitn v3*Faeitn def} if /maxFaeitn o3*Faeitn def l3*Faeitn maxFaeitn gt {/maxFaeitn l3*Faeitn def} if v3*Faeitn maxFaeitn gt {/maxFaeitn v3*Faeitn def} if /o3*Faeit o3*Faeitn def %default /l3*Faeit l3*Faeitn def /v3*Faeit v3*Faeitn def %change of minFaeitn minFaeitn o3*Faeitn eq {/o3*Faeit maxFaeitn c*3 sub def} if minFaeitn l3*Faeitn eq {/l3*Faeit maxFaeitn c*3 sub def} if minFaeitn v3*Faeitn eq {/v3*Faeit maxFaeitn c*3 sub def} if /LAB*L*Fa l*3 L*Wio L*Nio sub mul L*Nio add def /LAB*C*Fa LAB*C*Ma c*3 mul def /LAB*a*Fa LAB*C*Fa LAB*hFa cos mul def /LAB*b*Fa LAB*C*Fa LAB*hFa sin mul def %for output of data for colours Ma and Fa LAB*hMa 360 ge {/LAB*hMa LAB*hMa 360 sub def} if /LAB*hFa LAB*hMa def /LAB*L*Fait LAB*L*Fa def /LAB*a*Fait LAB*a*Fa def /LAB*b*Fait LAB*b*Fa def /LAB*C*Fait LAB*a*Fait dup mul LAB*b*Fait dup mul add 0.0001 add sqrt def /LAB*H*Fait LAB*b*Fait LAB*a*Fait 0.0001 add atan def %****************************************************** x3D 0 eq {%output intended (it) lut1 xchartl LAB*L*Fait put lut2 xchartl LAB*a*Fait put lut3 xchartl LAB*b*Fait put }%output intended (it) {%output 3D LAB*L*Fait LAB*a*Fait LAB*b*Fait %*************************************************** Lab2RGBinterpolation %procedure for 3D interpolation %*************************************************** /v*3Fa3D exch def /l*3Fa3D exch def /o*3Fa3D exch def %produces in addition: %delta_L*, delta_a*, delta_b*, delta_E* %LAB*L*Fa3D, LAB*a*Fa3D, LAB*b*Fa3D, LAB*C*Fa3D, LAB*hFa3D %end 3D interpolation of measured start output data lut1 xchartl LAB*L*Fa3D put lut2 xchartl LAB*a*Fa3D put lut3 xchartl LAB*b*Fa3D put } ifelse %output x3D } if %xcharts=1 } for %xchartl=0,1079 %begin calculation and output of graph with 16 pictures /icolor 0 def xcharts 0 eq {/xcolor 0 def} if xcharts 1 eq {/xcolor 1 def} if xcolor 0 eq {/olvrgb 0 def %text O-C etc. %only for start plot, allways olvrgb=0 } {/olvrgb 1 RGBOLVL sub def %text O-C (0), R-G (1) %only for second plot, olvrgb=0 or 1 } ifelse colorm 1 eq {proc_lut0} if %Definition lut0 and lut depending on xcolor %************************************************************************* 0 1 1079 {/j exch def %j=0,1079 /j100 j 10 mul def /j101 j100 1 add def /j102 j100 2 add def LUT j100 lut1 j get 100 mul put LUT j101 lut2 j get 100 mul put LUT j102 lut3 j get 100 mul put } for %j=0,1079 %j=0,1079 0 1 7 {/k exch def %k=0,7 /k30 k 3 mul def /k31 k30 1 add def /k32 k30 2 add def /j k30j k get def xcolor 0 eq {%xcolor=0 LAB*Fa0100 k30 lut1 j get put LAB*Fa0100 k31 lut2 j get put LAB*Fa0100 k32 lut3 j get put }%xcolor=0 {%xcolor=1 LAB*Fa1100 k30 lut1 j get put LAB*Fa1100 k31 lut2 j get put LAB*Fa1100 k32 lut3 j get put } ifelse %xcolor=0,1 } for %k=0,7 %************************************************************************* 0 1 1079 {/j exch def %j=0,1079 /j30 j 03 mul def /j31 j30 1 add def /j32 j30 2 add def /j100 j 10 mul 3 add def /j101 j100 1 add def /j102 j100 2 add def LUT j100 RGB0 j30 get put LUT j101 RGB0 j31 get put LUT j102 RGB0 j32 get put } for %j=0,1079 %j=0,1079 0 1 23 {/i exch def LAB*FaGA100 i xcolor 0 eq {LAB*Fa0100}{LAB*Fa1100} ifelse i get 100 div put } for 0 1 05 {/i exch def %i=0,5 /A*Fa LAB*FaGA100 i 3 mul 1 add get def /B*Fa LAB*FaGA100 i 3 mul 2 add get def /H*Fa B*Fa A*Fa 0.0001 add atan def angle_olvGA1 i H*Fa put i 0 eq {angle_olvGA1 6 H*Fa 360 add put} if } for %i=0,5 0 1 5 {/i exch def /i1 i 1 add def %i=0,5 /angle_olvGA1_dif angle_olvGA1 i1 get angle_olvGA1 i get sub def angle_olvGA1i i angle_olvGA1 i get put angle_olvGA1i i 07 add angle_olvGA1 i get angle_olvGA1_dif 0.00 mul add put angle_olvGA1i i 14 add angle_olvGA1 i get angle_olvGA1_dif 0.00 mul add put angle_olvGA1i i 21 add angle_olvGA1 i get angle_olvGA1_dif 0.00 mul add put } for %i=0,5 LAB*ioLmod 0 1 0 {/ibild exch def %ibild=0,1 ibild 0 eq {%BEG ibild=0 0 1 05 {/ic exch def %ic=0,11 S1 20 add yu2 yd ic mul sub moveto ( ) nshow N*olv ic ColNames ic get put } for %ic=0,11 0 1 05 {/i exch def %i=0,5 /ya yu2 yd i mul sub def /L*Fa LAB*a i 3 mul get def /A*Fa LAB*a i 3 mul 1 add get def /B*Fa LAB*a i 3 mul 2 add get def /C*Fa A*Fa dup mul B*Fa dup mul add sqrt def /H*Fa B*Fa A*Fa 0.0001 add atan def L*olv i L*Fa put A*olv i A*Fa put B*olv i B*Fa put C*olv i C*Fa put H*olv i H*Fa put o*olv i o3Ma i get put l*olv i l3Ma i get put v*olv i v3Ma i get put i 5 eq {L*olv 6 L*olv 0 get put A*olv 6 A*olv 0 get put B*olv 6 B*olv 0 get put A*olv 6 A*olv 0 get put C*olv 6 C*olv 0 get put H*olv 6 H*olv 0 get put o*olv 6 o*olv 0 get put l*olv 6 l*olv 0 get put v*olv 6 v*olv 0 get put } if } for %i=0,5 }%END ibild=0 {%BEG ibild=1 12 2 27 {/ic exch def %ic=12,27 N*rgb ic 12 sub 2 idiv ColNames ic get put } for %ic=12,27 %calculation of intermediate elementary colours %/proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL { %BEG procedure proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL %only for calculation without hue tables %input LAB*Fae %input LAB*a (4 adapted colours RJGB, No. 8 to 11) %input nLAB*s0 (colour white N for calculation of lab*l) %input wLAB*s0 (colour white W for achromatic axis) %output LAB*Mae %output olvi3*Mae %output cmyn3*Mae 0 1 3 {/j exch def %j=0,3 /L*Fae0 LAB*a j 8 add 3 mul 0 add get def /A*Fae0 LAB*a j 8 add 3 mul 1 add get def /B*Fae0 LAB*a j 8 add 3 mul 2 add get def /H*Fae0 B*Fae0 A*Fae0 0.0001 add atan def j 2 le {/L*Fae1 LAB*a j 1 add 8 add 3 mul 0 add get def /A*Fae1 LAB*a j 1 add 8 add 3 mul 1 add get def /B*Fae1 LAB*a j 1 add 8 add 3 mul 2 add get def /H*Fae1 B*Fae1 A*Fae1 0.0001 add atan def } {/L*Fae1 LAB*a 0 8 add 3 mul 0 add get def /A*Fae1 LAB*a 0 8 add 3 mul 1 add get def /B*Fae1 LAB*a 0 8 add 3 mul 2 add get def /H*Fae1 B*Fae1 A*Fae1 0.0001 add atan 360 add def } ifelse 0 1 1 {/i exch def %i=0,3 /n j 2 mul i add def /ya yu2 yd n mul sub 8000 add def /alph i 2 div def /beta 1 alph sub def /L*Fae L*Fae0 beta mul L*Fae1 alph mul add def /H*Fae H*Fae0 beta mul H*Fae1 alph mul add def /A*Fae 100 H*Fae cos mul def /B*Fae 100 H*Fae sin mul def proc_LAB*Fae_LAB*MaeNTABl_olvi3*cmyn3*Ma*ioL n 0 ge {/ineu n def} if n 2 ge {/ineu n 1 sub def} if n 4 ge {/ineu n 2 sub def} if L*rgb ineu L*Mae put A*rgb ineu A*Mae put B*rgb ineu B*Mae put C*rgb ineu C*Mae put H*rgb ineu H*Mae put n 7 eq {/ineu 6 def %ineu=6 L*rgb ineu L*rgb 0 get put A*rgb ineu A*rgb 0 get put B*rgb ineu B*rgb 0 get put C*rgb ineu C*rgb 0 get put H*rgb ineu H*rgb 0 get put } if %ineu=6 } for %i=0,1 } for %j=0,3 } ifelse %END ibild=1 } for %ibild=0,1 20 setlinewidth 0 0 25000 17100 0.0 0.0 0.0 0.0 colrecfi %area white grey 0 0 25000 17100 0.0 0.0 0.0 1.0 colrecst %Rahmen Schwarz /xchartl xchart def 0 1 15 {/xchartl exch def %beg xchartl=0,15 %special space for 'xm03'PROZ0.COM 2x before/after xchartl xchartl 0 eq { 100 13000 translate} if xchartl 1 eq { 6100 13000 translate} if xchartl 2 eq { 100 08750 translate} if xchartl 3 eq { 6100 08750 translate} if xchartl 4 eq { 100 4500 translate} if xchartl 5 eq { 6100 4500 translate} if xchartl 6 eq { 100 0250 translate} if xchartl 7 eq { 6100 0250 translate} if xchartl 8 eq {13500 13000 translate} if xchartl 9 eq {19500 13000 translate} if xchartl 10 eq {13500 08750 translate} if xchartl 11 eq {19500 08750 translate} if xchartl 12 eq {13500 4500 translate} if xchartl 13 eq {19500 4500 translate} if xchartl 14 eq {13500 0250 translate} if xchartl 15 eq {19500 0250 translate} if /xwidth 5400 def /ywidth 4000 def 0 0 xwidth ywidth 0.0 0.0 0.0 0.5 colrecfi %Rechteck Mittelgrau 20 setlinewidth 0 0 xwidth ywidth 0.0 0.0 0.0 1.0 colrecst %Rahmen Schwarz 150 /Times-ISOL1 FS 0 setgray /Param (; cf1=1.00; nt=0.18; nx=1.0, LECD_08_95) def 300 -150 moveto xchartl 7 le {(LG170-) show} {(LG171-) show} ifelse xchartl 0 ge xchartl 7 le and {xchartl 1 add cvishow} if xchartl 8 ge xchartl 15 le and {xchartl 7 sub cvishow} if (R) show %R (, ) show Lrefl xcharti get show (_) show FileTex show ( ) show xcharts cvishow ( ) show %Param show 2600 0300 translate gsave 0.8 0.8 scale 1 setgray -3200 4175 moveto TBS (System: ) show FileDat show ( ) show Lrefl xcharti get show (_) show FileTex show /x400 400 def /x700 550 def 0 1 5 {/i exch def /i1 i 1 add def %i=0,5 /angle_olv_dif angle_olv i1 get angle_olv i get sub def angle_olvi i angle_olv i get put angle_olvi i 07 add angle_olv i get angle_olv_dif 0.00 mul add put angle_olvi i 14 add angle_olv i get angle_olv_dif 0.00 mul add put angle_olvi i 21 add angle_olv i get angle_olv_dif 0.00 mul add put /angle_rgb_dif angle_rgb i1 get angle_rgb i get sub def angle_rgbi i angle_rgb i get put angle_rgbi i 07 add angle_rgb i get angle_rgb_dif 0.00 mul add put angle_rgbi i 14 add angle_rgb i get angle_rgb_dif 0.00 mul add put angle_rgbi i 21 add angle_rgb i get angle_rgb_dif 0.00 mul add put } for %i=0,5 /angle6 7 array def /angle6i 28 array def /cfarb_olv_o 7 array def /cfarb_olv_l 7 array def /cfarb_olv_v 7 array def /cfarb_rgb_r 7 array def /cfarb_rgb_g 7 array def /cfarb_rgb_b 7 array def /cfarb_olv00_o 7 array def /cfarb_olv00_l 7 array def /cfarb_olv00_v 7 array def /cfarb_olv25_o 7 array def /cfarb_olv25_l 7 array def /cfarb_olv25_v 7 array def /cfarb_olv50_o 7 array def /cfarb_olv50_l 7 array def /cfarb_olv50_v 7 array def /cfarb_olv75_o 7 array def /cfarb_olv75_l 7 array def /cfarb_olv75_v 7 array def /cfarb_rgb00_r 7 array def /cfarb_rgb00_g 7 array def /cfarb_rgb00_b 7 array def /cfarb_rgb25_r 7 array def /cfarb_rgb25_g 7 array def /cfarb_rgb25_b 7 array def /cfarb_rgb50_r 7 array def /cfarb_rgb50_g 7 array def /cfarb_rgb50_b 7 array def /cfarb_rgb75_r 7 array def /cfarb_rgb75_g 7 array def /cfarb_rgb75_b 7 array def /cname_olv [(O) (Y) (L) (C) (V) (M) (O)] def /cfarb_olv_o [1 1 0 0 0 1 1] def /cfarb_olv_l [0 1 1 1 0 0 0] def /cfarb_olv_v [0 0 0 1 1 1 0] def /cname_rgb [(R) (J) (G) (G50B) (B) (B50R) (R)] def /cfarb_rgb_r [1 1 0 0 0 1 1] def /cfarb_rgb_g [0 1 1 1 0 0 0] def /cfarb_rgb_g [0 0 0 1 1 1 0] def /cname_olv00 [(O00Y) (Y00L) (L00C) (C00V) (V00M) (M00O) (O00Y)] def /cfarb_olv00_o [1 1 0 0 0 1 1] def /cfarb_olv00_l [0 1 1 1 0 0 0] def /cfarb_olv00_v [0 0 0 1 1 1 0] def /cname_olv25 [(O25Y) (Y25L) (L25C) (C25V) (V25M) (M25O) (O25Y)] def /cfarb_olv25_o [1.00 0.75 0.00 0.00 0.25 1.00 1.00] def /cfarb_olv25_l [0.25 1.00 1.00 0.75 0.00 0.00 0.25] def /cfarb_olv25_v [0.00 0.00 0.25 1.00 1.00 0.75 0.00] def /cname_olv50 [(O50Y) (Y50L) (L50C) (C50V) (V50M) (M50O) (O50Y)] def /cfarb_olv50_o [1.00 0.50 0.00 0.00 0.50 1.00 1.00] def /cfarb_olv50_l [0.50 1.00 1.00 0.50 0.00 0.00 0.50] def /cfarb_olv50_v [0.00 0.00 0.50 1.00 1.00 0.50 0.00] def /cname_olv75 [(O75Y) (Y75L) (L75C) (C75V) (V75M) (M75O) (O75Y)] def /cfarb_olv75_o [1.00 0.25 0.00 0.00 0.75 1.00 1.00] def /cfarb_olv75_l [0.75 1.00 1.00 0.25 0.00 0.00 0.75] def /cfarb_olv75_v [0.00 0.00 0.75 1.00 1.00 0.25 0.00] def /cname_rgb00 [(R00J) (J00G) (G00B) (G50B) (B00R) (B50R) (R00J)] def /cfarb_rgb00_r [1 1 0 0 0 1 1] def /cfarb_rgb00_g [0 1 1 1 0 0 0] def /cfarb_rgb00_b [0 0 0 1 1 1 0] def /cname_rgb25 [(R25J) (J25G) (G13B) (G62B) (B12R) (B63R) (R25J)] def /cfarb_rgb25_r [1.00 0.75 0.00 0.00 0.25 1.00 1.00] def /cfarb_rgb25_g [0.25 1.00 1.00 0.75 0.00 0.00 0.25] def /cfarb_rgb25_b [0.00 0.00 0.25 1.00 1.00 0.75 0.00] def /cname_rgb50 [(R50J) (J50G) (G25B) (G75B) (B25R) (B75R) (R50J)] def /cfarb_rgb50_r [1.00 0.50 0.00 0.00 0.50 1.00 1.00] def /cfarb_rgb50_g [0.50 1.00 1.00 0.50 0.00 0.00 0.50] def /cfarb_rgb50_b [0.00 0.00 0.50 1.00 1.00 0.50 0.00] def /cname_rgb75 [(R75J) (J75G) (G38B) (G88B) (B38R) (B88R) (R75J)] def /cfarb_rgb75_r [1.00 0.25 0.00 0.00 0.75 1.00 1.00] def /cfarb_rgb75_g [0.75 1.00 1.00 0.25 0.00 0.00 0.75] def /cfarb_rgb75_b [0.00 0.00 0.75 1.00 1.00 0.25 0.00] def /cname6 7 array def 0 1 6 {/i exch def cname6 i olvrgb 0 eq {%olvrgb=0 xcolor 0 eq xcolor 1 eq or {cname_olv00 i get} if xcolor 2 eq xcolor 3 eq or {cname_olv00 i get} if xcolor 4 eq xcolor 5 eq or {cname_olv00 i get} if xcolor 6 eq xcolor 7 eq or {cname_olv00 i get} if } {%olvrgb=1 xcolor 0 eq xcolor 1 eq or {cname_rgb00 i get} if xcolor 2 eq xcolor 3 eq or {cname_rgb00 i get} if xcolor 4 eq xcolor 5 eq or {cname_rgb00 i get} if xcolor 6 eq xcolor 7 eq or {cname_rgb00 i get} if } ifelse put angle6 i olvrgb 0 eq {%olvrgb=0 xcolor 0 eq xcolor 1 eq or {angle_olvi i get} if xcolor 2 eq xcolor 3 eq or {angle_olvi i get} if xcolor 4 eq xcolor 5 eq or {angle_olvi i get} if xcolor 6 eq xcolor 7 eq or {angle_olvi i get} if } {%olvrgb=1 xcolor 0 eq xcolor 1 eq or {angle_rgbi i get} if xcolor 2 eq xcolor 3 eq or {angle_rgbi i get} if xcolor 4 eq xcolor 5 eq or {angle_rgbi i get} if xcolor 6 eq xcolor 7 eq or {angle_rgbi i get} if } ifelse put } for xchartl 0 eq xchartl 4 eq or xchartl 8 eq or xchartl 12 eq or {/jbild 0 def} if xchartl 1 eq xchartl 5 eq or xchartl 9 eq or xchartl 13 eq or {/jbild 1 def} if xchartl 2 eq xchartl 6 eq or xchartl 10 eq or xchartl 14 eq or {/jbild 2 def} if xchartl 3 eq xchartl 7 eq or xchartl 11 eq or xchartl 15 eq or {/jbild 3 def} if jbild 3 ne {%jbild#3 -3200 3900 moveto TBS lanind 0 eq {(Buntton: )} {(Hue: )} ifelse show TBIS (h*) show TBL 0 -50 rmoveto jbild 0 eq {cname6 0 get show} if jbild 1 eq {cname6 1 get show} if jbild 2 eq {cname6 2 get show} if 0 50 rmoveto TBS (=) show jbild 0 eq {angle6 0 get cvishow} if jbild 1 eq {angle6 1 get cvishow} if jbild 2 eq {angle6 2 get cvishow} if (/360; ) show TBIS (h*) show TBL 0 -50 rmoveto jbild 0 eq {cname6 3 get show % olvrgb 1 eq {0 -50 rmoveto (gb) show 0 50 rmoveto} if } if jbild 1 eq {cname6 4 get show} if jbild 2 eq {cname6 5 get show % olvrgb 1 eq {0 -50 rmoveto (br) show 0 50 rmoveto} if } if 0 50 rmoveto TBS (=) show jbild 0 eq {angle6 3 get cvishow} if jbild 1 eq {angle6 4 get cvishow} if jbild 2 eq {angle6 5 get cvishow} if (/360) show } if %jbild#3 %xchartl 12 ge {%xchartl>=12 %-3200 3625 xchartl 15 eq {300 add} if moveto %TBS lanind 0 eq {(Ergebnis: )} {(Result: )} ifelse show %TBIS (c*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto %TBS (=) show %TBIS (c*) show %TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto %TBS (; ) show %TBIS (t*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto %TBS (=) show %TBIS (t*) show %TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto % } if %xchartl>=12 xchartl 0 ge xchartl 3 le and {%0<=xchartl<=3 -3200 4400 moveto TBS (Linear relation ) showen (Beziehung ) showde TBS (CIELAB \050) show TBIS (L*,a*,b*) show TBS (\051) show TBS ( and ) showen ( und ) showde TBIS (adapted (a) ) showen (adaptiertes (a) ) showde TBS (CIELAB \050) show TBIS (C*) show TBL 0 -50 rmoveto (ab,a) show 0 50 rmoveto TBS (, ) show TBIS (L*) show TBS (\051) show x400 4100 moveto TBIS (l*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS (=\050 ) show TBIS (L*) show TBS ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( \051 / \050) show TBIS (L*) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( \051) show x400 3800 moveto TBIS (a*) show 0 -50 rmoveto TBL (a) show 0 50 rmoveto TBS (=) show TBIS (a*) show TBS ( - ) show TBIS (a*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( - ) show TBIS (l*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS ( [ ) show TBIS (a*) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto TBS ( - ) show TBIS (a*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( ]) show x400 3500 moveto TBIS (b*) show 0 -50 rmoveto TBL (a) show 0 50 rmoveto TBS (=) show TBIS (b*) show TBS ( - ) show TBIS (b*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( - ) show TBIS (l*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS ( [ ) show TBIS (b*) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto TBS ( - ) show TBIS (b*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( ]) show x400 500 add 3200 moveto TBIS (C*) show 0 -50 rmoveto TBL (ab,a) show 0 50 rmoveto TBS (=[ ) show TBIS (a*) show 0 -50 rmoveto TBL (a) show 0 050 rmoveto 0 100 rmoveto TBL (2) show 0 -100 rmoveto TBS ( + ) show TBIS (b*) show 0 -50 rmoveto TBL (a) show 0 050 rmoveto 0 100 rmoveto TBL (2) show 0 -100 rmoveto TBS ( ] ) show 0 100 rmoveto TBL (1/2) show 0 -100 rmoveto } if %0<=xchartl<=3 xchartl 4 ge xchartl 7 le and {%4<=xchartl<=7 -3200 4400 moveto %TBS (Linear relation ) showen (Beziehung ) showde TBIS (Adapted (a) ) showen (Adaptiertes (a) ) showde TBS (CIELAB \050) show TBIS (C*) show TBL 0 -50 rmoveto (ab,a) show 0 50 rmoveto TBS (, ) show TBIS (L*) show TBS (\051) show TBS ( and ) showen ( und ) showde TBIS (relative ) showen (relatives ) showde TBS (CIELAB \050) show TBIS (c*) show 0 -50 rmoveto TBL (lab*) show 0 50 rmoveto TBS (, ) show TBIS (l*) show 0 -50 rmoveto TBL (lab*) show 0 50 rmoveto TBS (\051) show x700 4100 moveto TBIS (l*) show 0 -50 rmoveto TBL (lab*) show 0 50 rmoveto TBS (=\050 ) show TBIS (L*) show TBS ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( \051 / \050) show TBIS (L*) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS ( \051) show x700 3800 moveto TBIS (c*) show 0 -50 rmoveto TBL (lab*) show 0 50 rmoveto TBS (=) show TBIS (C*) show 0 -50 rmoveto TBL (ab,a) show 0 50 rmoveto TBS ( / ) show TBIS (C*) show 0 -50 rmoveto TBL (ab,a,M) show 0 50 rmoveto x700 3500 moveto TBIS (M) show TBS (=Maximum colour) showen (=Maximalfarbe) showde } if %4<=xchartl<=7 xchartl 8 ge xchartl 11 le and {%8<=xchartl<=11 -3200 4400 moveto TBS (Linear relation ) showen (Beziehung ) showde TBIS (adapted (a) ) showen (adaptiertes (a) ) showde TBS (CIELAB \050) show TBIS (C*) show TBL 0 -50 rmoveto (ab,a) show 0 50 rmoveto TBS (, ) show TBIS (L*) show TBS (\051) show TBS ( and ) showen ( und ) showde TBIS (relative ) showen (relatives ) showde TBS (CIELAB \050) show TBIS (c*) show TBS (, ) show TBIS (t*) show TBS (\051) show x700 4100 moveto TBIS (l*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS (=\050) show TBIS (L*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS (\051 / \050) show TBIS (L*) show 0 -50 rmoveto TBL (W) show 0 50 rmoveto ( - ) show TBIS (L*) show 0 -50 rmoveto TBL (N) show 0 50 rmoveto TBS (\051) show x700 3800 moveto TBIS (t*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS (=) show TBIS (l*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS ( - ) show TBIS (c*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS ( [ ) show TBIS (l*) show %TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS ( - 0,5 ]) show x700 3500 moveto TBIS (c*) show TBL 0 -50 rmoveto (lab*) show 0 50 rmoveto TBS (=) show TBIS (C*) show 0 -50 rmoveto TBL (ab,a) show 0 50 rmoveto TBS ( / ) show TBIS (C*) show 0 -50 rmoveto TBL (ab,a,M) show 0 50 rmoveto 700 3200 moveto TBIS (M) show TBS (=Maximum colour) showen (=Maximalfarbe) showde } if %8<=xchartl<=11 xchartl 12 ge xchartl 15 le and {%12<=xchartl<=15 -3200 4400 moveto TBS (Linear relation ) showen (Beziehung ) showde TBIS olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show TBS ( and ) showen ( und ) showde TBIS (relative ) show TBS (chroma ) showen (Buntheit ) showde TBIS (c*) show TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto xchartl 03 ne xchartl 07 ne and xchartl 11 ne and xchartl 15 ne and {%xchart #3,7,11,15 or =3,7,11,15 TBS ( and triangle lightness ) showen ( und Dreiecks\255Helligkeit ) showde TBIS (t*) show TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto } %xchart #3,7,11,15 %********************************************************************************* { %xchart =3,7,11,15 TBS ( or chroma ) showen ( oder Buntheit ) showde TBIS (a) show xchartl 12 ge {(*) show} if TBL 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(rgb) show} if xchartl 4 ge xchartl 7 le and {(olv) show} if xchartl 8 ge xchartl 11 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto TBS (, ) show TBIS (b) show xchartl 12 ge {(*) show} if TBL 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(rgb) show} if xchartl 4 ge xchartl 7 le and {(olv) show} if xchartl 8 ge xchartl 11 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto } ifelse %xchart #3,7,11,15 or =3,7,11,15 x700 4100 moveto TBIS (c*) show TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=max \050) show TBIS olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show TBS (\051 - min \050) show TBIS olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show TBS (\051) show x700 3800 moveto TBIS (n*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=1 - max \050) show TBIS olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show TBS (\051) show TBS (= 1 - ) show TBIS (i*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto x700 3500 moveto TBIS (w*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=min \050) show TBIS olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show TBS (\051) show TBS (= 1 - ) show TBIS (d*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto x700 3200 moveto TBIS (t*) show TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=) show TBIS (w*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS ( + 0,5 ) show TBIS (c*) show TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto xchartl 14 le { 700 2900 moveto TBIS (M) show TBS (=Maximum colour) showen (=Maximalfarbe) showde } if } if %12<=xchartl<=15 xchartl 2 le { 1500 150 moveto TBK (chroma) showen (Buntheit) showde 2500 150 moveto TBIK (C*) show TS 0 -50 rmoveto (ab,a) show -1600 3100 moveto TBK (lightness) showen (Helligkeit) showde -350 3100 moveto TBIK (L*) show } if grestore gsave xchart 3 le {0.75 dup scale} {0.80 dup scale} ifelse xchartl 03 ne xchartl 07 ne and xchartl 11 ne and xchartl 15 ne and {%xchart #3,7,11,15 or =3,7,11,15 xchartl 1 eq xcolor 2 eq xcolor 3 eq or and { 200 0 translate} if %special shift for J-B xchartl 1 eq xcolor 4 eq xcolor 5 eq or and {-300 0 translate} if %special shift for J-B xchartl 1 eq xcolor 6 eq xcolor 7 eq or and { 200 0 translate} if %special shift for J-B /j729 0 def xchartl 0 eq xchartl 4 eq or xchartl 8 eq or xchartl 12 eq or {/j1 729 j729 sub 10 mul def} if %series O-C xchartl 1 eq xchartl 5 eq or xchartl 9 eq or xchartl 13 eq or {/j1 729 j729 sub 081 add 10 mul def} if %series Y-V xchartl 2 eq xchartl 6 eq or xchartl 10 eq or xchartl 14 eq or {/j1 729 j729 sub 162 add 10 mul def} if %series L-M 0 1 080 {/i exch def %i=0,080 /i10 j1 i 10 mul add def LUTL* i LUT i10 0 add get 100 div put LUTA* i LUT i10 1 add get 100 div put LUTB* i LUT i10 2 add get 100 div put LUTr* i LUT i10 3 add get 1000 div put LUTg* i LUT i10 4 add get 1000 div put LUTb* i LUT i10 5 add get 1000 div put C*ab i LUTA* i get dup mul LUTB* i get dup mul add 0.000001 add sqrt put L* i LUTL* i get put } for %i=0,080 % 801 737 809 729 882 818 890 810 963 899 971 891 % j01 b09 j09 b01 j10 b18 j18 b10 j19 b27 j27 b19 % O C N1 W1 Y V N2 W2 L M N3 W3 xchartl 0 eq xchartl 4 eq or xchartl 8 eq or xchartl 12 eq or {/index [801 737 809 729] def} if %O,C,N1,W1 xchartl 1 eq xchartl 5 eq or xchartl 9 eq or xchartl 13 eq or {/index [882 818 890 810] def} if %Y,V,N2,W2 xchartl 2 eq xchartl 6 eq or xchartl 10 eq or xchartl 14 eq or {/index [963 899 971 891] def} if %L,M,N1,W2 0 1 3 {/i exch def %i=0,3 %standard colours at the end /i10 index i get j729 sub 10 mul def /i81 81 i add def LUTL* i81 LUT i10 0 add get 100 div put LUTA* i81 LUT i10 1 add get 100 div put LUTB* i81 LUT i10 2 add get 100 div put LUTr* i81 LUT i10 3 add get 1000 div put LUTg* i81 LUT i10 4 add get 1000 div put LUTb* i81 LUT i10 5 add get 1000 div put C*ab i81 LUTA* i81 get dup mul LUTB* i81 get dup mul add 0.000001 add sqrt put L* i81 LUTL* i81 get put } for %i=0,3 /L*WN LUTL* 84 get LUTL* 83 get sub def 0 1 084 {/i exch def %i=0,084 LUTl* i LUTL* i get LUTL* 83 get sub L*WN 0.000001 add div put LUTc1* i C*ab i get C*ab 81 get 0.000001 add div put LUTc2* i C*ab i get C*ab 82 get 0.000001 add div put LUTt1* i LUTl* i get LUTc1* i get L* 81 get L* 83 get sub L*WN 0.000001 add div 0.5 sub mul sub put LUTt2* i LUTl* i get LUTc2* i get L* 82 get L* 83 get sub L*WN 0.000001 add div 0.5 sub mul sub put LUTr* i get 0 lt {LUTr* i 0 put} if LUTg* i get 0 lt {LUTg* i 0 put} if LUTb* i get 0 lt {LUTb* i 0 put} if LUTr* i get 1 gt {LUTr* i 1 put} if LUTg* i get 1 gt {LUTg* i 1 put} if LUTb* i get 1 gt {LUTb* i 1 put} if %maximum /max LUTr* i get def %rgb brilliantness LUTg* i get max gt {/max LUTg* i get def} if LUTb* i get max gt {/max LUTb* i get def} if %minimum /min LUTr* i get def %rgb whiteness LUTg* i get min lt {/min LUTg* i get def} if LUTb* i get min lt {/min LUTb* i get def} if LUTc*rgb i max min sub put %rgb chroma LUTt*rgb i min max min sub 0.5 mul add put %rgb triangle lightness } for %i=0,084 %axis and scales 1 setgray -3000 0 moveto 6250 0 rlineto stroke 0 -080 moveto 0 3600 rlineto stroke 3250 100 sub 50 moveto 100 -50 rlineto -100 -50 rlineto closepath fill 0 50 sub 3600 100 sub moveto 50 100 rlineto 50 -100 rlineto closepath fill 0 setgray TS /xt001 9 array def /xt001 [(-1,0) () (-0,5) ( ) ( 0) () ( 0,5) () () ] def %( 1,0)] def /yt001 5 array def /yt001 [( ) () (0,5) ( ) (1,0)] def /xt100 9 array def /xt100 [(-100) () ( -50) ( ) ( 0) () ( 50) () (100)] def /yt100 5 array def /yt100 [( ) () (50) ( ) (100)] def 0 1 8 {/i exch def %i=0,8 -3000 i 750 mul add -50 moveto 0 100 rlineto stroke -3200 i 750 mul add -250 moveto xchartl 3 le {xt100}{xt001} ifelse i get show } for %i=0,8 0 1 4 {/i exch def %i=0,4 -75 0 i 750 mul add moveto 150 0 rlineto stroke 30 50 i 750 mul add moveto xchartl 3 le {yt100}{yt001} ifelse i get show } for %i=0,4 xchartl 4 ge xchartl 7 le and { 1 setgray -2800 3100 moveto TBIK (relative ) show TBK (lightness) showen (Helligkeit) showde -600 3100 moveto TBIK (l*) show xchartl 11 le {TS 0 -50 rmoveto (lab*) show 0 50 rmoveto} if } if xchartl 8 ge { 1 setgray -2800 3100 moveto TBK (triangle lightness) showen (Dreiecks\255Helligkeit) showde -600 3100 moveto TBIK (t*) show xchartl 11 le {TS 0 -50 rmoveto (lab*) show 0 50 rmoveto} if xchartl 12 ge {TS 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto} if } if xchartl 4 ge { 1000 150 moveto TBIK (relative ) show TBK (chroma) showen (Buntheit) showde 2800 150 moveto TBIK (c*) show xchartl 11 le {TS 0 -50 rmoveto (lab*) show 0 50 rmoveto} if xchartl 12 ge {TS 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto} if } if xchartl 12 ge { 1500 2350 moveto TBIS (n*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=0; ) show TBIS (i*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=1) show 1500 0550 moveto TBIS (w*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=0; ) show TBIS (d*) show %TBL 0 -50 rmoveto olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show 0 50 rmoveto TBS (=1) show } if /fakt 30 def /fakt2 3000 def 100 /Times-ISOL1 FS /j1 0 def /k1 0 def /k2 3 def newpath xchartl 0 ge xchartl 2 le and {%0<=xchartl <=2 %********************************************************************** 100 /Times-ISOL1 FS %********************************************************************** /Vorz 1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 72 def} if %row j01 to j09: O-N k 1 eq {/j2 6 def /j0 64 def} if %row i02 to i08: O-N k 2 eq {/j2 4 def /j0 56 def} if %row h03 to h07: O-N k 3 eq {/j2 2 def /j0 48 def} if %row g04 to g06: O-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill j 1 ge { C*ab j 1 sub get fakt mul L* j 1 sub get fakt mul moveto C*ab j get fakt mul L* j get fakt mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor C*ab j get fakt mul L* j get fakt mul moveto C*ab 0 get fakt mul L* 0 get fakt mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz 1 def %spalte e05 bis e05: W-O 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill 1 setgray 10 setlinewidth C*ab j get fakt mul L* j get fakt mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %line b01 to j01: W-O k 1 eq {/j2 6 def /j0 10 def} if %line c02 to i02: W-O k 2 eq {/j2 4 def /j0 20 def} if %line d03 to h03: W-O k 3 eq {/j2 2 def /j0 30 def} if %line e04 to g04: W-O j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill j 1 ge {C*ab j 1 sub get fakt mul L* j 1 sub get fakt mul moveto C*ab j get fakt mul L* j get fakt mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor C*ab j get fakt mul L* j get fakt mul moveto C*ab 0 get fakt mul L* 0 get fakt mul lineto stroke C*ab j get fakt mul L* j get fakt mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-200 -200 -200] def /yadd0 [250 250 250] def /xadd1 [-200 -200 -200] def /yadd1 [250 250 250] def C*ab j get fakt mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl get add 200 sub L* j get fakt mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl get add moveto cname6 xchartl get show 1 setgray C*ab j get fakt mul 580 sub L* j get fakt mul 700 sub moveto TBS (\050) show TBIS (C*) show 0 -50 rmoveto TBL (ab,a,M) show 0 50 rmoveto TBIS (,) show C*ab j get fakt mul 580 sub L* j get fakt mul 700 sub 300 sub moveto TBIS ( L*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS (\051) show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 08 def} if %line b09 to j09: C-N k 1 eq {/j2 6 def /j0 16 def} if %line c08 to i08: C-N k 2 eq {/j2 4 def /j0 24 def} if %line d07 to h07: C-N k 3 eq {/j2 2 def /j0 32 def} if %line e06 to h06: C-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill j 1 ge {C*ab j 1 sub get fakt mul L* j 1 sub get fakt mul moveto C*ab j get fakt mul L* j get fakt mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor C*ab j get fakt mul L* j get fakt mul moveto C*ab 0 get fakt mul L* 0 get fakt mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def %spalte e05 bis e05: W-C 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill 1 setgray 10 setlinewidth C*ab j get fakt mul L* j get fakt mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %row b01 to b09: W-C k 1 eq {/j2 6 def /j0 10 def} if %row c02 to c08: W-C k 2 eq {/j2 4 def /j0 20 def} if %row d03 to d07: W-C k 3 eq {/j2 2 def /j0 30 def} if %row e04 to e06: W-C j1 1 j2 {/j exch def %j=j1,j2 %rows /ja j0 j add def L* j LUTL* ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt Vorz mul put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor C*ab j get fakt mul L* j get fakt mul 050 0 360 arc fill j 1 ge {C*ab j 1 sub get fakt mul L* j 1 sub get fakt mul moveto C*ab j get fakt mul L* j get fakt mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor C*ab j get fakt mul L* j get fakt mul moveto C*ab 0 get fakt mul L* 0 get fakt mul lineto stroke C*ab j get fakt mul L* j get fakt mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-400 -400 -400] def /yadd0 [-400 250 -400] def /xadd1 [-400 -400 -400] def /yadd1 [-400 250 -400] def C*ab j get fakt mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl get add 300 add L* j get fakt mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl get add 200 sub moveto cname6 3 xchartl add get show newpath } if } for %j=j1,j2 } for %k=0,3 /fakt 30 def icolor 1 eq {%icolor=1 0 0 0 setrgbcolor /i24 xcolor 2 idiv 24 mul def /C*abW 0 def /C*abN 0 def /L*aN LAB*FaG100 6 3 mul i24 add get def /L*aW LAB*FaG100 7 3 mul i24 add get def /j xchartl def /j30 j 3 mul i24 add def /j31 j30 1 add def /j32 j30 2 add def /C*abM LAB*FaG100 j31 get dup mul LAB*FaG100 j32 get dup mul add 0.0001 add sqrt def C*abN fakt mul L*aN fakt mul moveto C*abM fakt mul LAB*FaG100 j30 get fakt mul lineto C*abW fakt mul L*aW fakt mul lineto stroke /j xchartl 3 add def /j30 j 3 mul i24 add def /j31 j30 1 add def /j32 j30 2 add def /C*abM LAB*FaG100 j31 get dup mul LAB*FaG100 j32 get dup mul add 0.0001 add sqrt def C*abN fakt mul neg L*aN fakt mul moveto C*abM fakt mul neg LAB*FaG100 j30 get fakt mul lineto C*abW fakt mul neg L*aW fakt mul lineto stroke } if %icolor=1 %********************************************************************** } if %0<=xchartl <=2 newpath xchartl 4 ge xchartl 6 le and {%4<=xchartl <=6 %********************************************************************** 100 /Times-ISOL1 FS /Vorz 1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 72 def} if %row j01 to j09: O-N k 1 eq {/j2 6 def /j0 64 def} if %row i02 to i08: O-N k 2 eq {/j2 4 def /j0 56 def} if %row h03 to h07: O-N k 3 eq {/j2 2 def /j0 48 def} if %row g04 to g06: O-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j add def l1* j LUTl* ja get put c1* j LUTc1* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul 050 0 360 arc fill j 1 ge {c1* j 1 sub get fakt2 mul Vorz mul l1* j 1 sub get fakt2 mul moveto c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul moveto c1* 0 get fakt2 mul Vorz mul l1* 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz 1 def %spalte e05 bis e05: W-O 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def l1* j LUTl* ja get put c1* j LUTc1* ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %line b01 to j01: W-O k 1 eq {/j2 6 def /j0 10 def} if %line c02 to i02: W-O k 2 eq {/j2 4 def /j0 20 def} if %line d03 to h03: W-O k 3 eq {/j2 2 def /j0 30 def} if %line e04 to g04: W-O j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def l1* j LUTl* ja get put c1* j LUTc1* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul 050 0 360 arc fill j 1 ge {c1* j 1 sub get fakt2 mul Vorz mul l1* j 1 sub get fakt2 mul moveto c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul moveto c1* 0 get fakt2 mul Vorz mul l1* 0 get fakt2 mul lineto stroke c1* j get fakt2 mul Vorz mul l1* j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-200 -200 -200] def /yadd0 [250 250 250] def /xadd1 [-200 -200 -200] def /yadd1 [250 250 250] def c1* j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 4 sub get add l1* j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 4 sub get add moveto cname6 xchartl 4 sub get show 1 setgray c1* j get fakt2 mul Vorz mul 580 sub l1* j get fakt2 mul 600 sub moveto TBS (\050) show TBIS (c*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBIS (, l*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS (\051) show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 08 def} if %line b09 to j09: C-N k 1 eq {/j2 6 def /j0 16 def} if %line c08 to i08: C-N k 2 eq {/j2 4 def /j0 24 def} if %line d07 to h07: C-N k 3 eq {/j2 2 def /j0 32 def} if %line e06 to h06: C-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def l2* j LUTl* ja get put c2* j LUTc2* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul 050 0 360 arc fill j 1 ge {c2* j 1 sub get fakt2 mul Vorz mul l2* j 1 sub get fakt2 mul moveto c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul moveto c2* 0 get fakt2 mul Vorz mul l2* 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def %spalte e05 bis e05: W-C 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def l2* j LUTl* ja get put c2* j LUTc1* ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %row b01 to b09: W-C k 1 eq {/j2 6 def /j0 10 def} if %row c02 to c08: W-C k 2 eq {/j2 4 def /j0 20 def} if %row d03 to d07: W-C k 3 eq {/j2 2 def /j0 30 def} if %row e04 to e06: W-C j1 1 j2 {/j exch def %j=j1,j2 %rows /ja j0 j add def l2* j LUTl* ja get put c2* j LUTc2* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul 050 0 360 arc fill j 1 ge {c2* j 1 sub get fakt2 mul Vorz mul l2* j 1 sub get fakt2 mul moveto c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul moveto c2* 0 get fakt2 mul Vorz mul l2* 0 get fakt2 mul lineto stroke c2* j get fakt2 mul Vorz mul l2* j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-000 -400 -400] def /yadd0 [-400 250 -400] def /xadd1 [-000 -400 -400] def /yadd1 [-400 250 -400] def c2* j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 4 sub get add l2* j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 4 sub get add moveto cname6 xchartl 4 sub 3 add get show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** } if %4<=xchartl <=6 newpath xchartl 8 ge xchartl 10 le and {%8<=xchartl <=10 %********************************************************************** 100 /Times-ISOL1 FS /Vorz 1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 72 def} if %row j01 to j09: O-N k 1 eq {/j2 6 def /j0 64 def} if %row i02 to i08: O-N k 2 eq {/j2 4 def /j0 56 def} if %row h03 to h07: O-N k 3 eq {/j2 2 def /j0 48 def} if %row g04 to g06: O-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j add def t1* j LUTt1* ja get put c1* j LUTc1* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul 050 0 360 arc fill j 1 ge {c1* j 1 sub get fakt2 mul Vorz mul t1* j 1 sub get fakt2 mul moveto c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul moveto c1* 0 get fakt2 mul Vorz mul t1* 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz 1 def %spalte e05 bis e05: W-O 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def t1* j LUTt1* ja get put c1* j LUTc1* ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %line b01 to j01: W-O k 1 eq {/j2 6 def /j0 10 def} if %line c02 to i02: W-O k 2 eq {/j2 4 def /j0 20 def} if %line d03 to h03: W-O k 3 eq {/j2 2 def /j0 30 def} if %line e04 to g04: W-O j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def t1* j LUTt1* ja get put c1* j LUTc1* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul 050 0 360 arc fill j 1 ge {c1* j 1 sub get fakt2 mul Vorz mul t1* j 1 sub get fakt2 mul moveto c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul moveto c1* 0 get fakt2 mul Vorz mul t1* 0 get fakt2 mul lineto stroke c1* j get fakt2 mul Vorz mul t1* j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-200 -200 -200] def /yadd0 [250 250 250] def /xadd1 [-200 -200 -200] def /yadd1 [250 250 250] def c1* j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 8 sub get add t1* j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 8 sub get add moveto cname6 xchartl 8 sub get show 1 setgray c1* j get fakt2 mul Vorz mul 580 sub t1* j get fakt2 mul 600 sub moveto TBS (\050) show TBIS (c*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBIS (, t*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS (\051) show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 08 def} if %line b09 to j09: C-N k 1 eq {/j2 6 def /j0 16 def} if %line c08 to i08: C-N k 2 eq {/j2 4 def /j0 24 def} if %line d07 to h07: C-N k 3 eq {/j2 2 def /j0 32 def} if %line e06 to h06: C-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def t2* j LUTt2* ja get put c2* j LUTc2* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul 050 0 360 arc fill j 1 ge {c2* j 1 sub get fakt2 mul Vorz mul t2* j 1 sub get fakt2 mul moveto c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul moveto c2* 0 get fakt2 mul Vorz mul t2* 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def %spalte e05 bis e05: W-C 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def t2* j LUTt1* ja get put c2* j LUTc1* ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %row b01 to b09: W-C k 1 eq {/j2 6 def /j0 10 def} if %row c02 to c08: W-C k 2 eq {/j2 4 def /j0 20 def} if %row d03 to d07: W-C k 3 eq {/j2 2 def /j0 30 def} if %row e04 to e06: W-C j1 1 j2 {/j exch def %j=j1,j2 %rows /ja j0 j add def t2* j LUTt2* ja get put c2* j LUTc2* ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul 050 0 360 arc fill j 1 ge {c2* j 1 sub get fakt2 mul Vorz mul t2* j 1 sub get fakt2 mul moveto c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul moveto c2* 0 get fakt2 mul Vorz mul t2* 0 get fakt2 mul lineto stroke c2* j get fakt2 mul Vorz mul t2* j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-000 -400 -400] def /yadd0 [-400 250 -400] def /xadd1 [-000 -400 -400] def /yadd1 [-400 250 -400] def c2* j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 8 sub get add t2* j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 8 sub get add moveto cname6 xchartl 8 sub 3 add get show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** } if %8<=xchartl <=10 newpath xchartl 12 ge xchartl 14 le and {%12<=xchartl <=14 %********************************************************************** 100 /Times-ISOL1 FS /Vorz 1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 72 def} if %row j01 to j09: O-N k 1 eq {/j2 6 def /j0 64 def} if %row i02 to i08: O-N k 2 eq {/j2 4 def /j0 56 def} if %row h03 to h07: O-N k 3 eq {/j2 2 def /j0 48 def} if %row g04 to g06: O-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j add def t1*rgb j LUTt*rgb ja get put c1*rgb j LUTc*rgb ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul 050 0 360 arc fill j 1 ge {c1*rgb j 1 sub get fakt2 mul Vorz mul t1*rgb j 1 sub get fakt2 mul moveto c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul moveto c1*rgb 0 get fakt2 mul Vorz mul t1*rgb 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz 1 def %spalte e05 bis e05: W-O 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def t1*rgb j LUTt*rgb ja get put c1*rgb j LUTc*rgb ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %line b01 to j01: W-O k 1 eq {/j2 6 def /j0 10 def} if %line c02 to i02: W-O k 2 eq {/j2 4 def /j0 20 def} if %line d03 to h03: W-O k 3 eq {/j2 2 def /j0 30 def} if %line e04 to g04: W-O j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def t1*rgb j LUTt*rgb ja get put c1*rgb j LUTc*rgb ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul 050 0 360 arc fill j 1 ge {c1*rgb j 1 sub get fakt2 mul Vorz mul t1*rgb j 1 sub get fakt2 mul moveto c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul moveto c1*rgb 0 get fakt2 mul Vorz mul t1*rgb 0 get fakt2 mul lineto stroke c1*rgb j get fakt2 mul Vorz mul t1*rgb j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-200 -200 -200] def /yadd0 [250 250 250] def /xadd1 [-200 -200 -200] def /yadd1 [250 250 250] def c1*rgb j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 12 sub get add t1*rgb j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 12 sub get add moveto cname6 xchartl 12 sub get show 1 setgray c1*rgb j get fakt2 mul Vorz mul 580 sub t1*rgb j get fakt2 mul 600 sub moveto TBS (\050) show TBIS (c*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBIS (, t*) show 0 -50 rmoveto TBL (M) show 0 50 rmoveto TBS (\051) show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 08 def} if %line b09 to j09: C-N k 1 eq {/j2 6 def /j0 16 def} if %line c08 to i08: C-N k 2 eq {/j2 4 def /j0 24 def} if %line d07 to h07: C-N k 3 eq {/j2 2 def /j0 32 def} if %line e06 to h06: C-N j1 1 j2 {/j exch def %j=j1,j2 %lines /ja j0 j 9 mul add def t2*rgb j LUTt*rgb ja get put c2*rgb j LUTc*rgb ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul 050 0 360 arc fill j 1 ge {c2*rgb j 1 sub get fakt2 mul Vorz mul t2*rgb j 1 sub get fakt2 mul moveto c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul moveto c2*rgb 0 get fakt2 mul Vorz mul t2*rgb 0 get fakt2 mul lineto stroke } if %k=0 } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** /Vorz -1 def %spalte e05 bis e05: W-C 0 1 0 {/j exch def %j=0,0 %lines /ja j 40 add def t2*rgb j LUTt*rgb ja get put c2*rgb j LUTc*rgb ja get put newpath LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul 050 0 360 arc fill 1 setgray 10 setlinewidth c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul 055 0 360 arc stroke 20 setlinewidth newpath } for %j=0,0 k1 1 k2 {/k exch def %k=0,3 k 0 eq {/j2 8 def /j0 00 def} if %row b01 to b09: W-C k 1 eq {/j2 6 def /j0 10 def} if %row c02 to c08: W-C k 2 eq {/j2 4 def /j0 20 def} if %row d03 to d07: W-C k 3 eq {/j2 2 def /j0 30 def} if %row e04 to e06: W-C j1 1 j2 {/j exch def %j=j1,j2 %rows /ja j0 j add def t2*rgb j LUTt*rgb ja get put c2*rgb j LUTc*rgb ja get put LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul 050 0 360 arc fill j 1 ge {c2*rgb j 1 sub get fakt2 mul Vorz mul t2*rgb j 1 sub get fakt2 mul moveto c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul lineto stroke } if j 8 eq {k 0 eq {%k=0 icolor 0 eq {0 0 0} {1 0 0} ifelse setrgbcolor c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul moveto c2*rgb 0 get fakt2 mul Vorz mul t2*rgb 0 get fakt2 mul lineto stroke c2*rgb j get fakt2 mul Vorz mul t2*rgb j get fakt2 mul 070 0 360 arc stroke } if %k=0 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor newpath 250 /TimesBI-ISOL1 FS /xadd0 [-000 -400 -400] def /yadd0 [-400 250 -400] def /xadd1 [-000 -400 -400] def /yadd1 [-400 250 -400] def c2*rgb j get fakt2 mul Vorz mul olvrgb 0 eq {xadd0} {xadd1} ifelse xchartl 12 sub get add t2*rgb j get fakt2 mul olvrgb 0 eq {yadd0} {yadd1} ifelse xchartl 12 sub get add moveto cname6 xchartl 12 sub 3 add get show newpath } if } for %j=j1,j2 } for %k=0,3 %********************************************************************** } if %12<=xchartl <=14 xchartl 1 eq xcolor 2 eq xcolor 3 eq or and {-200 0 translate} if %special shift for J-B TLS00a xchartl 1 eq xcolor 4 eq xcolor 5 eq or and { 300 0 translate} if %special shift for J-B FRS06a xchartl 1 eq xcolor 6 eq xcolor 7 eq or and {-200 0 translate} if %special shift for J-B TLS18a %********************************************************************** } %xchart #3,7,11,15 %********************************************************************************* { %xchart =3,7,11,15 1 setgray -3400 3900 moveto TBS (CIELAB) show (\255Bunttonwinkel: ) showde ( hue angles: ) showen -3400 3625 moveto TBIS (h) show 0 -50 rmoveto TBL (ab,d) show 0 50 rmoveto TBS (=[) show 0 1 5 {/i exch def %i=0,5 angle_olv i get cvishow i 5 ne {(, ) show} if } for %i=0,5 (]) show -3400 3350 moveto TBIS (h) show 0 -50 rmoveto TBL (ab,e) show 0 50 rmoveto TBS (=[) show 0 1 5 {/i exch def %i=0,5 angle_rgb i get cvishow i 5 ne {(, ) show} if } for %i=0,5 (]) show 1600 200 add 2900 moveto %xchartl 3 eq {200 sub} if 2900 moveto TBIS (a*) show TBL 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(a) show} if xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto TBS (=) show xchartl 4 le { TBIS (C*) show TBL 0 -50 rmoveto (ab,a) show TBL 0 50 rmoveto } { TBIS (c*) show TBL 0 -50 rmoveto xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto } ifelse TBIS ( cos h) show 0 -50 rmoveto TBL (ab) show 0 50 rmoveto 1600 200 add 2600 moveto %xchartl 3 eq {200 sub} if 2600 moveto TBIS (b*) show TBL 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(a) show} if xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto TBS (=) show xchartl 4 le { TBIS (C*) show TBL 0 -50 rmoveto (ab,a) show TBL 0 50 rmoveto } { TBIS (c*) show TBL 0 -50 rmoveto xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBL 0 50 rmoveto } ifelse TBIS ( sin h) show 0 -50 rmoveto TBL (ab) show 0 50 rmoveto -400 200 add 3800 moveto %xchartl 11 le {300 add} if 3500 moveto TBIK (b*) show TBS 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(a) show} if xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBS 0 50 rmoveto 1800 xchartl 3 le {700 add } if 1900 moveto xchartl 4 ge {TBIK (relative ) show} if TBK lanind 0 eq {(Buntheit ) showde} {(chroma ) showen} ifelse 2700 1650 moveto TBIK (a*) show TBS 0 -50 rmoveto xchartl 0 ge xchartl 3 le and {(a) show} if xchartl 4 ge xchartl 7 le and {(lab*) show} if xchartl 8 ge xchartl 11 le and {(lab*) show} if xchartl 12 ge xchartl 15 le and {olvrgb 0 eq {(olv*)}{(rgb*)} ifelse show} if TBS 0 50 rmoveto %new shift in middle 0 1500 translate %axis and scales 1 setgray -3000 0 moveto 6300 0 rlineto stroke 0 -1880 moveto 0 3600 rlineto stroke 3300 100 sub 50 moveto 100 -50 rlineto -100 -50 rlineto closepath fill 0 50 sub 1800 100 sub moveto 50 100 rlineto 50 -100 rlineto closepath fill 0 setgray TS /xt001 9 array def /xt001 [(-2,0) () (-1,0) ( ) ( ) () () () () ]def %( 1,0) () ( 2,0)] def /yt001 5 array def /yt001 [(-1,0 ) () ( ) ( ) (1,0)] def /xt100 9 array def /xt100 [(-200) () (-100) ( ) ( ) () ( 100) () ( 200)] def /yt100 5 array def /yt100 [(-100 ) () ( ) ( ) (100)] def 2 1 6 {/i exch def %i=2,6 -3000 i 750 mul add -50 moveto 0 100 rlineto stroke -3650 i 850 mul add -200 moveto xchartl 3 le {xt100} {xt001} ifelse i get show } for %i=2,6 0 1 4 {/i exch def %i=0,4 -75 -1500 i 750 mul add moveto 150 0 rlineto stroke 100 -1650 i 800 mul add moveto xchartl 3 le {yt100} {yt001} ifelse i get show } for %i=0,4 newpath %********************************************************************** %For all xchartl=3,7,11,15 %Variable hue series O00Y-O83Y, Y00L-Y83L, L00C-L83C, % C00V-C83V, C00V-C83V, C00V-C83V-O00Y 250 /TimesBI-ISOL1 FS /fcolor1 1.10 def /fcolor2 1.20 def /j729 0 def 0 1 5 {/xtonj exch def %xton=0,5 0 1 7 {/j exch def %i=0,08 xtonj 0 eq {/j10 648 j729 sub j 09 mul add 10 mul def} if %series O00Y-O83Y, -09 xtonj 1 eq {/j10 720 j729 sub j 81 mul sub 10 mul def} if %series Y00L-Y83L, -81 xtonj 2 eq {/j10 072 j729 sub j add 10 mul def} if %series L00C-L83C, +01 xtonj 3 eq {/j10 080 j729 sub j 09 mul sub 10 mul def} if %series C00V-C83V, -09 xtonj 4 eq {/j10 008 j729 sub j 81 mul add 10 mul def} if %series C00V-C83V, -81 xtonj 5 eq {/j10 656 j729 sub j sub 10 mul def} if %series C00V-C83V, +01 LUTL* j LUT j10 0 add get 100 div put LUTA* j LUT j10 1 add get 100 div put LUTB* j LUT j10 2 add get 100 div put LUTr* j LUT j10 3 add get 1000 div put LUTg* j LUT j10 4 add get 1000 div put LUTb* j LUT j10 5 add get 1000 div put C*ab j LUTA* j get dup mul LUTB* j get dup mul add 0.000001 add sqrt put L* j LUTL* j get put LUTc*rgb j 1000 put } for %j=0,08 %********************************************************************** /j0 0 def /j1 0 def /j2 8 def /k 0 def /fakt 30 def /fakt1 15 def /fakt2 1500 def 0 1 7 {/j exch def %j=0,8 %lines /ja j0 j add def c1*rgb j LUTc*rgb ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt put /angleWO LUTB* ja get LUTA* ja get 0.0001 add atan def LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor xchartl 3 le {%xchart=3 newpath C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul moveto C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul 050 0 360 arc fill } {%xchart>=7 newpath c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul moveto c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul 050 0 360 arc fill } ifelse %xchart=3,>=7 } for %j=0,8 } for %xton=0,5 %END for all xchartl=3,7,11,15 %********************************************************************** %For all xchartl=3,7,11,15 %Constant hue series 250 /TimesBI-ISOL1 FS /fcolor1 1.10 def /fcolor2 1.20 def /j729 0 def %xcolor 1 le {/j729 0 def}{/j729 729 def} ifelse 0 1 2 {/xtonj exch def %xton=0,2 xtonj 0 eq {/j1 729 j729 sub 10 mul def} if %series O-C xtonj 1 eq {/j1 729 j729 sub 081 add 10 mul def} if %series Y-V xtonj 2 eq {/j1 729 j729 sub 162 add 10 mul def} if %series L-M 0 1 080 {/i exch def %i=0,080 /i10 j1 i 10 mul add def LUTL* i LUT i10 0 add get 100 div put LUTA* i LUT i10 1 add get 100 div put LUTB* i LUT i10 2 add get 100 div put LUTr* i LUT i10 3 add get 1000 div put LUTg* i LUT i10 4 add get 1000 div put LUTb* i LUT i10 5 add get 1000 div put C*ab i LUTA* i get dup mul LUTB* i get dup mul add 0.000001 add sqrt put L* i LUTL* i get put } for %i=0,080 % 801 737 809 729 882 818 890 810 963 899 971 891 % j01 b09 j09 b01 j10 b18 j18 b10 j19 b27 j27 b19 % O C N1 W1 Y V N2 W2 L M N3 W3 xtonj 0 eq {/index [801 737 809 729] def} if %O,C,N1,W1 xtonj 1 eq {/index [882 818 890 810] def} if %Y,V,N2,W2 xtonj 2 eq {/index [963 899 971 891] def} if %L,M,N1,W2 0 1 3 {/i exch def %i=0,3 %standard colours at the end /i10 index i get j729 sub 10 mul def /i81 81 i add def LUTL* i81 LUT i10 0 add get 100 div put LUTA* i81 LUT i10 1 add get 100 div put LUTB* i81 LUT i10 2 add get 100 div put LUTr* i81 LUT i10 3 add get 1000 div put LUTg* i81 LUT i10 4 add get 1000 div put LUTb* i81 LUT i10 5 add get 1000 div put C*ab i81 LUTA* i81 get dup mul LUTB* i81 get dup mul add 0.000001 add sqrt put L* i81 LUTL* i81 get put } for %i=0,3 /L*WN LUTL* 84 get LUTL* 83 get sub def 0 1 084 {/i exch def %i=0,084 LUTl* i LUTL* i get LUTL* 83 get sub L*WN 0.000001 add div put LUTc1* i C*ab i get C*ab 81 get 0.000001 add div put LUTc2* i C*ab i get C*ab 82 get 0.000001 add div put LUTt1* i LUTl* i get LUTc1* i get L* 81 get L* 83 get sub L*WN 0.000001 add div 0.5 sub mul sub put LUTt2* i LUTl* i get LUTc2* i get L* 82 get L* 83 get sub L*WN 0.000001 add div 0.5 sub mul sub put LUTr* i get 0 lt {LUTr* i 0 put} if LUTg* i get 0 lt {LUTg* i 0 put} if LUTb* i get 0 lt {LUTb* i 0 put} if LUTr* i get 1 gt {LUTr* i 1 put} if LUTg* i get 1 gt {LUTg* i 1 put} if LUTb* i get 1 gt {LUTb* i 1 put} if %maximum /max LUTr* i get def %rgb brilliantness LUTg* i get max gt {/max LUTg* i get def} if LUTb* i get max gt {/max LUTb* i get def} if %minimum /min LUTr* i get def %rgb whiteness LUTg* i get min lt {/min LUTg* i get def} if LUTb* i get min lt {/min LUTb* i get def} if LUTc*rgb i max min sub put %rgb chroma LUTt*rgb i min max min sub 0.5 mul add put %rgb triangle lightness } for %i=0,084 %********************************************************************** /j0 0 def /j1 0 def /j2 8 def /k 0 def /fakt 30 def /fakt1 15 def /fakt2 1500 def 0 1 8 {/j exch def %j=0,8 %lines /ja j0 j 9 mul add def c1*rgb j LUTc*rgb ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt put /angleWO LUTB* ja get LUTA* ja get 0.0001 add atan def LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor xchartl 3 le {%xchart=3 C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul 050 0 360 arc fill j j2 eq {%j=j2 0 0 0 setrgbcolor C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul 065 0 360 arc stroke LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor /xadd0 [-100 -500 -500 -700 -200 000] def /yadd0 [ 100 -000 -200 -100 -200 100] def C*ab j get fakt1 mul fcolor2 mul angleWO cos mul xadd0 xtonj get add C*ab j get fakt1 mul fcolor2 mul angleWO sin mul yadd0 xtonj get add moveto cname6 xtonj get show icolor 1 eq {1 0 0 setrgbcolor 0 0 moveto C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul lineto stroke } if } if %j=j2 } {%xchart>=7 c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul 050 0 360 arc fill j j2 eq {%j=j2 0 0 0 setrgbcolor c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul 065 0 360 arc stroke LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor /xadd0 [-100 -500 -500 -700 -200 000] def /yadd0 [ 100 -000 -200 -100 -200 100] def c1*rgb j get fakt2 mul fcolor2 mul angleWO cos mul xadd0 xtonj get add c1*rgb j get fakt2 mul fcolor2 mul angleWO sin mul yadd0 xtonj get add moveto cname6 xtonj get show icolor 1 eq {1 0 0 setrgbcolor %icolor=1 0 0 moveto c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul lineto stroke } if %icolor=1 } if %j=j2 } ifelse %xchart=3,>=7 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor j 1 ge {xchartl 3 eq {olvrgb 0 eq {C*ab j 1 sub get fakt1 mul angleWO cos mul C*ab j 1 sub get fakt1 mul angleWO sin mul moveto C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul lineto stroke } if } {c1*rgb j 1 sub get fakt2 mul angleWO cos mul c1*rgb j 1 sub get fakt2 mul angleWO sin mul moveto c1*rgb j get fakt2 mul angleWO cos mul c1*rgb j get fakt2 mul angleWO sin mul lineto stroke } ifelse } if } for %j=0,8 %********************************************************************** 0 1 8 {/j exch def %j=0,8 %lines /ja j0 j add def c2*rgb j LUTc*rgb ja get put C*ab j LUTA* ja get dup mul LUTB* ja get dup mul add sqrt put /angleWO LUTB* ja get LUTA* ja get 0.0001 add atan def LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor xchartl 3 le {%xchart=3 C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul 050 0 360 arc fill j j2 eq {%j=j2 0 0 0 setrgbcolor C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul 065 0 360 arc stroke LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor /xadd0 [ 000 -100 -500 -700 -200 000] def /yadd0 [-200 -000 000 -100 -100 100] def C*ab j get fakt1 mul fcolor2 mul angleWO cos mul xadd0 xtonj 3 add get add C*ab j get fakt1 mul fcolor2 mul angleWO sin mul yadd0 xtonj 3 add get add moveto cname6 xtonj 3 add get show icolor 1 eq {1 0 0 setrgbcolor 0 0 moveto C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul lineto stroke } if } if %j=j2 } {%xchart=7 c2*rgb j get fakt2 mul angleWO cos mul c2*rgb j get fakt2 mul angleWO sin mul 050 0 360 arc fill j j2 eq {%j=j2 0 0 0 setrgbcolor c2*rgb j get fakt2 mul angleWO cos mul c2*rgb j get fakt2 mul angleWO sin mul 065 0 360 arc stroke LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor /xadd0 [-000 -100 -500 -700 -200 000] def /yadd0 [ 100 -000 000 -100 -200 100] def c2*rgb j get fakt2 mul fcolor2 mul angleWO cos mul xadd0 xtonj 3 add get add c2*rgb j get fakt2 mul fcolor2 mul angleWO sin mul yadd0 xtonj 3 add get add moveto cname6 xtonj 3 add get show icolor 1 eq {1 0 0 setrgbcolor %icolor=1 0 0 moveto c2*rgb j get fakt2 mul angleWO cos mul c2*rgb j get fakt2 mul angleWO sin mul lineto stroke } if %icolor=1 } if %j=j2 } ifelse %xchart=3, %xchart>=7 LUTr* ja get LUTg* ja get LUTb* ja get setrgbcolor j 1 ge {xchartl 3 le {C*ab j 1 sub get fakt1 mul angleWO cos mul C*ab j 1 sub get fakt1 mul angleWO sin mul moveto C*ab j get fakt1 mul angleWO cos mul C*ab j get fakt1 mul angleWO sin mul lineto stroke } {c2*rgb j 1 sub get fakt2 mul angleWO cos mul c2*rgb j 1 sub get fakt2 mul angleWO sin mul moveto c2*rgb j get fakt2 mul angleWO cos mul c2*rgb j get fakt2 mul angleWO sin mul lineto stroke } ifelse } if } for %j=00,08 %xtonj=0 %series O-C %xtonj=1 %series Y-V %xtonj=2 %series L-M } for %xton=0,2 %END for all xchartl=3,7,11,15 %********************************************************************** xchartl 3 eq {%xchartl=3 only %BEG Hexagon % 801 737 809 729 882 818 890 810 963 899 971 891 % j01 b09 j09 b01 j10 b18 j18 b10 j19 b27 j27 b19 % O C N1 W1 Y V N2 W2 L M N3 W3 /fakt1 15 def /indexX 7 array def /indexX [801 882 963 737 818 899 801] def /LUTL*X 7 array def /LUTA*X 7 array def /LUTB*X 7 array def 0 setgray /fcolor1 1.10 def /fcolor2 1.20 def 250 /TimesBI-ISOL1 FS /j729 0 def 0 1 6 {/iX exch def %iX=0,6 %hexagon standard colours at the end /i10 indexX iX get j729 sub 10 mul def LUTL*X iX LUT i10 0 add get 100 div put LUTA*X iX LUT i10 1 add get 100 div put LUTB*X iX LUT i10 2 add get 100 div put LUTr* iX LUT i10 3 add get 1000 div put LUTg* iX LUT i10 4 add get 1000 div put LUTb* iX LUT i10 5 add get 1000 div put iX 5 le {0 0 0 setrgbcolor 0 0 moveto LUTA*X iX get fakt1 mul fcolor1 mul cf1 div LUTB*X iX get fakt1 mul fcolor1 mul cf1 div lineto stroke /xadd0 [-000 -100 -500 -700 -200 000] def /yadd0 [ 100 -000 000 -100 -200 100] def LUTA*X iX get fakt1 mul fcolor2 mul cf1 div xadd0 iX get add LUTB*X iX get fakt1 mul fcolor2 mul cf1 div yadd0 iX get add moveto % xcolor 2 ge {%xcolor>=2 % 0 0 0 setrgbcolor % cname_olv00 iX get show % } if %xcolor>=2 } if iX 5 le icolor 1 eq and {xcolor 2 ge {0 0 0}{1 0 0} ifelse setrgbcolor 0 0 moveto LUTA*X iX get fakt1 mul LUTB*X iX get fakt1 mul lineto stroke } if iX 1 ge {0 0 0 setrgbcolor LUTA*X iX 1 sub get fakt1 mul cf1 div LUTB*X iX 1 sub get fakt1 mul cf1 div moveto LUTA*X iX get fakt1 mul cf1 div LUTB*X iX get fakt1 mul cf1 div lineto stroke } if iX 1 ge icolor 1 eq and {1 0 0 setrgbcolor LUTA*X iX 1 sub get fakt1 mul LUTB*X iX 1 sub get fakt1 mul moveto LUTA*X iX get fakt1 mul LUTB*X iX get fakt1 mul lineto stroke } if } for %iX=0,6 %hexagon } if %xchartl=3 %********************************************************************** xchartl 7 ge {%xchart>=7 %circle icolor 0 eq {0 0 0 setrgbcolor} {1 0 0 setrgbcolor} ifelse 0 1500 moveto newpath 0 0 1500 0 360 arc stroke %BEG Hexagon % 801 737 809 729 882 818 890 810 963 899 971 891 % j01 b09 j09 b01 j10 b18 j18 b10 j19 b27 j27 b19 % O C N1 W1 Y V N2 W2 L M N3 W3 /fakt1 15 def /indexX 7 array def /indexX [801 882 963 737 818 899 801] def /LUTL*X 7 array def /LUTA*X 7 array def /LUTB*X 7 array def 0 setgray /fcolor1 1.10 def /fcolor2 1.20 def /c1000 1 fakt2 mul def 250 /TimesBI-ISOL1 FS /j729 0 def 0 1 6 {/iX exch def %iX=0,5 %hexagon standard colours at the end /i10 indexX iX get j729 sub 10 mul def LUTL*X iX LUT i10 0 add get 100 div put LUTA*X iX LUT i10 1 add get 100 div put LUTB*X iX LUT i10 2 add get 100 div put LUTr* iX LUT i10 3 add get 1000 div put LUTg* iX LUT i10 4 add get 1000 div put LUTb* iX LUT i10 5 add get 1000 div put /angleOLV LUTB*X iX get LUTA*X iX get 0.0001 add atan def iX 5 le {0 0 0 setrgbcolor 0 0 moveto c1000 angleOLV cos mul fcolor2 mul c1000 angleOLV sin mul fcolor2 mul lineto stroke /xadd0 [-200 -300 -300 -500 -400 -000] def /yadd0 [ 100 -000 000 -100 -200 100] def c1000 angleOLV cos mul fcolor2 mul xadd0 iX get add c1000 angleOLV sin mul fcolor2 mul yadd0 iX get add moveto % xcolor 2 ge {%xcolor>=2 % 0 0 0 setrgbcolor % cname_olv00 iX get show % } if %xcolor>=2 } if iX 5 le icolor 1 eq and {xcolor 2 ge {0 0 0}{1 0 0} ifelse setrgbcolor 0 0 moveto c1000 angleOLV cos mul fcolor2 mul c1000 angleOLV sin mul fcolor2 mul lineto stroke } if } for %iX=0,6 %hexagon } if %xchartl>=7 %********************************************************************** 0 1500 neg translate } ifelse %xchart #3,7,11,15 or =3,7,11,15 grestore 2600 neg 0300 neg translate %special space for 'xm03'PROZ0.COM 2x before/after xchartl xchartl 0 eq { 100 neg 13000 neg translate} if xchartl 1 eq { 6100 neg 13000 neg translate} if xchartl 2 eq { 100 neg 08750 neg translate} if xchartl 3 eq { 6100 neg 08750 neg translate} if xchartl 4 eq { 100 neg 4500 neg translate} if xchartl 5 eq { 6100 neg 4500 neg translate} if xchartl 6 eq { 100 neg 0250 neg translate} if xchartl 7 eq { 6100 neg 0250 neg translate} if xchartl 8 eq {13500 neg 13000 neg translate} if xchartl 9 eq {19500 neg 13000 neg translate} if xchartl 10 eq {13500 neg 08750 neg translate} if xchartl 11 eq {19500 neg 08750 neg translate} if xchartl 12 eq {13500 neg 4500 neg translate} if xchartl 13 eq {19500 neg 4500 neg translate} if xchartl 14 eq {13500 neg 0250 neg translate} if xchartl 15 eq {19500 neg 0250 neg translate} if } for %end xchartl=0,15 %end calculation and output of graph with 16 pictures showpage grestore } for %end xchartix=00,01