%!PS-Adobe-3.0 EPSF-3.0 TG091-3N %%BoundingBox: 70 82 415 320 %START PDFDE011.EPS /pdfmark13 where {pop} {userdict /pdfmark13 /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/TG09/) /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:2013060112000) /ModDate (D:2013060112000) /DOCINFO pdfmark13 [ /View [ /FitB ] /DOCVIEW pdfmark13 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /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 findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-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 /TK {250 /Times-ISOL1 FS} bind def %%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 /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchart2 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % colorm 0 eq deintp 0 eq and {/Txx (dm) def} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (em) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (ddm) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (dem) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output %/xchart xchart1 def % 0 1 0 {/xchart exch def %xchart=0,1 gsave %LANINDL2 END /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 /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 %D65XYZ.PS /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 40 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 120 array def %normiert auf Y=100 fuer D65 und 10nm /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30 [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] 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* 99 array def /LUTA* 99 array def /LUTB* 99 array def /LUTL*a 99 array def /LUTA*a 99 array def /LUTB*a 99 array def /LUTL*b 99 array def /LUTA*b 99 array def /LUTB*b 99 array def /LUTL*c 99 array def /LUTA*c 99 array def /LUTB*c 99 array def /habton 99 array def /indton 99 array def /LNWton 99 array def /ANWton 99 array def /BNWton 99 array def /RXA 41 array def /RAA 41 array def /Xt 17 array def /Yt 17 array def /Zt 17 array def /LAB*Lt 17 array def /LAB*at 17 array def /LAB*bt 17 array def /LAB*Lta 17 array def /LAB*ata 17 array def /LAB*bta 17 array def /L*ton 5 array def /RYGBLAB* 12 array def /RYGBLAB*[ 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 /RYGB16 16 array def /RYGB16 [(R00Y=R) (R25Y) (R50Y) (R75Y) (Y00G=Y) (Y25G) (Y50G) (Y75G) (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 /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 /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 {(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 gsave 72 90 translate 0.01 MM dup scale 20 setlinewidth 1 1 1 setrgbcolor 0 0 moveto 12000 0 rlineto 0 8000 rlineto 12000 neg 0 rlineto closepath fill 0 0 0 setrgbcolor 0 0 moveto 12000 0 rlineto 0 8000 rlineto 12000 neg 0 rlineto closepath stroke TK 0 setgray 100 -200 moveto (TG091-3) show xchart 1 le {(N) show} if ( YAB) show (, Seite ) showde (, page ) showen (, página ) showes (, page ) showfr (, pagina ) showit xchart 1 add cvishow (/2) show %************************************************ %DEFINES 48 STEP HUE CIRCLE and 9 GREY STEPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 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 {(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 {(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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 27 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 475_573) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_495) %04 (M) (m) ( 573_475) %05 (N) (0) ( 380_770) %06 (W) (0) ( 380_770) %07 (W) (1) ( 380_770) %08 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 520_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def 20 setlinewidth /xdel 1005 def /ydel 393 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /Xi 79 array def %max 6 device colour + 4 elementary colours /Yi 79 array def /Zi 79 array def /XANi 79 array def /YANi 79 array def /ZANi 79 array def /xchartl 0 def %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 2000 add def /ixd 600 def /ixd2 500 def /iymax 16000 def /idy 250 def 20 setlinewidth /ymax 16600 def /ydel 203 def /ymax2 15900 def /ymax3 16100 def /xdel2 667 def /ydel2 250 def /ydel2t 300 def /ymaxt ymax 400 sub def /xpos 100 def %/ymax ymax 800 sub def %*************************************************** /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %***************************************************** /i1i 60 array def /i2i 60 array def /idi 60 array def /ici 60 array def /w1i 60 array def /w2i 60 array def /wdi 60 array def /wci 60 array def /w1ci 60 array def /w2ci 60 array def /wdci 60 array def /wcci 60 array def /i1ib 60 array def /i2ib 60 array def /idib 60 array def /icib 60 array def /w1ib 60 array def /w2ib 60 array def /wdib 60 array def /wcib 60 array def /w1cib 60 array def /w2cib 60 array def /wdcib 60 array def /wccib 60 array def /i1ic 60 array def /i2ic 60 array def /idic 60 array def /icic 60 array def /w1ic 60 array def /w2ic 60 array def /wdic 60 array def /wcic 60 array def /w1cic 60 array def /w2cic 60 array def /wdcic 60 array def /wccic 60 array def 0 1 59 {/i exch def %i=0,59 i1i i 0 put i2i i 0 put idi i 0 put ici i 0 put w1i i 0 put w2i i 0 put wdi i 0 put wci i 0 put w1ci i (x) put w2ci i (x) put wdci i (x) put wcci i (x) put } for %i=0,59 /WEL1 60 array def %irregular definition /WEL2 60 array def %irregular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def 0 1 19 {/i exch def w1i i WEL1 i get put w2i i 20 add WEL1 i get put } for 0 1 19 {/k exch def %k=0,19 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /ik k def /ik2 k 20 add def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM %ix1 ixd 22 mul add iymax ik idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax ik idy mul sub moveto IPN cvishow i1i ik INP put i2i ik IPN put %ix1 ixd 22 mul add iymax ik2 idy mul sub moveto IPN cvishow %ix1 ixd 23 mul add iymax ik2 idy mul sub moveto INP cvishow i1i ik2 IPN put i2i ik2 INP put %STOP1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %includes rounding failure % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w1i ik DOWXIE1 put w1ci ik () put w2i ik2 DOWXIE1 put w2ci ik2 () put /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto w1i ik DOWXIE2 put w1ci ik (c) put w2i ik2 DOWXIE2 put w2ci ik2 (c) put % DOWXIE2 cvishow (c) show /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w2i ik DOWXIE2 put w2ci ik () put w1i ik2 DOWXIE2 put w1ci ik2 () put /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w2i ik DOWXIE1 put w2ci ik (c) put w1i ik2 DOWXIE1 put w1ci ik2 (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* /xpos 100 def 0 1 1 {/Icom exch def %Icom=0,1 Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def /ik ik 20 add def } if %Icom=1 %ix0 ixd 0 mul add iymax ik idy mul sub moveto WEL1 ik0 get cvishow %ix0 ixd 1 mul add iymax ik idy mul sub moveto ik cvishow %ix0 ixd 2 mul add iymax ik idy mul sub moveto %Icom 0 eq {%Icom=0,1 % ik0 0 eq {(Cm) show} if % ik0 6 eq {(Gm) show} if % ik0 13 eq {(Ym) show} if % }%Icom=0 % {%Icom=1 % ik0 0 eq {(Rm) show} if % ik0 6 eq {(Mm) show} if % ik0 13 eq {(Bm) show} if % } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TK %ix1 ixd 22 mul add iymax ik idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax ik idy mul sub moveto IPN cvishow idi ik INP put ici ik IPN put %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow wdi ik DOWXIE1 put wdci ik () put /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax ik idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show wdi ik DOWXIE2 put wdci ik (c) put /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %********************************************************* %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow wci ik DOWXIE2 put wcci ik () put /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax ik idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show wci ik DOWXIE1 put wcci ik (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** 0 0 0 1 setcmyk_olvcolor Icom 0 eq {%Icom=0,1 Xi k X put Yi k Y put Zi k Z put XANi k XAN put YANi k YAN put ZANi k ZAN put }%Icom=0 {%Icom=1 /kP 20 k add def Xi kP X put Yi kP Y put Zi kP Z put XANi kP XAN put YANi kP YAN put ZANi kP ZAN put } ifelse %Icom=1 } for %k=0,19 } for %Icom=0,1 0 1 7 {/i exch def %i=0,7 Xi 40 i add Xi i get put %for later interpolation Yi 40 i add Yi i get put Zi 40 i add Zi i get put w1i 40 i add w1i i get put w2i 40 i add w2i i get put wdi 40 i add wdi i get put wci 40 i add wci i get put } for %i=0,7 %********************************************************************** %XYZw stored at i=42 %XW,YW,ZW and XK,YK,ZK for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /kP 48 def Xi kP XW put Yi kP YW put Zi kP ZW put /SUM XW YW add ZW add def /XANW XW SUM 0.0001 add div def /YANW YW SUM 0.0001 add div def XANi kP XANW put YANi kP YANW put %********************************************************************** %needed % LUTL*a j LAB*Lja jx get put % LUTA*a j LAB*aja jx get put % LUTB*a j LAB*bja jx get put % habton itonj LUTB*a j get LUTA*a j get atan put /LAB*Li 99 array def %only 48 used here /LAB*ai 99 array def /LAB*bi 99 array def /LAB*Ci 99 array def /LAB*hi 99 array def /LAB*Lia 99 array def /LAB*aia 99 array def /LAB*bia 99 array def /LAB*Cia 99 array def /LAB*hia 99 array def /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def /a2D65 0.2191 def /b2D65 -0.08376 def 0 1 48 {/i exch def %i=0,48 %including white /X Xi i get def /Y Yi i get def /Z Zi i get def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.0001 add sqrt def /hab b* a* 0.0001 add atan def LAB*Lia i L* put LAB*aia i a* put LAB*bia i b* put LAB*Cia i C*ab put LAB*hia i hab put LUTL*a i L* put LUTA*a i a* put LUTB*a i b* put habton i LUTB*a i get LUTA*a i get 0.0001 add atan put } for %i=0,48 %change of decending to increasing hue angle order 0 1 47 {/i exch def %i=0,47 LUTL*c i LUTL*a 47 i sub get put LUTA*c i LUTA*a 47 i sub get put LUTB*c i LUTB*a 47 i sub get put habton i LUTB*c i get LUTA*c i get 0.0001 add atan put w1ic i w1i 47 i sub get put w2ic i w2i 47 i sub get put wdic i wdi 47 i sub get put wcic i wci 47 i sub get put wdcic i wdci 47 i sub get put wccic i wcci 47 i sub get put } for %i=0,47 /imin -1 def 0 1 46 {/i exch def %i=0,46 habton i 1 add habton i get sub -100 lt {/imin i def exit} if } for %i=0,46 imin -1 eq {STOP imin false} if %usually imin=25, imin1=26 %new order imin1..47->0..47-26 % 0 imin ->47-45..47 /imin1 imin 1 add def imin1 1 47 {/i exch def %i=imin1,47 LUTL*b i imin1 sub LUTL*c i get put LUTA*b i imin1 sub LUTA*c i get put LUTB*b i imin1 sub LUTB*c i get put habton i imin1 sub LUTB*c i get 0.0001 add LUTA*c i get 0.0001 add atan put w1ib i imin1 sub w1ic i get put w2ib i imin1 sub w2ic i get put wdib i imin1 sub wdic i get put wcib i imin1 sub wcic i get put wdcib i imin1 sub wdcic i get put wccib i imin1 sub wccic i get put } for %i=imin1,47 0 1 imin {/i exch def %i=0,imin LUTL*b 47 imin sub LUTL*c i get put LUTA*b 47 imin sub LUTA*c i get put LUTB*b 47 imin sub LUTB*c i get put habton 47 imin sub LUTB*c i get 0.0001 add LUTA*c i get 0.0001 add atan put w1ib 47 imin sub w1ic i get put w2ib 47 imin sub w2ic i get put wdib 47 imin sub wdic i get put wcib 47 imin sub wcic i get put wdcib 47 imin sub wdcic i get put wccib 47 imin sub wccic i get put } for %i=0,imin /L*Nio 0.0001 def /A*Nio 0 def /B*Nio 0 def /L*Wio LAB*Lia 48 get def /A*Wio LAB*aia 48 get def /B*Wio LAB*bia 48 get def /XNio 0.0001 def /YXio 0.0001 def /ZNio 0.0001 def /XWio XLWD65100 def /YWio YLWD65100 def /ZWio ZLWD65100 def 0 setgray /TBGGT {290 /TimesB-ISOL1 FS} bind def /TBIGGT {290 /TimesBI-ISOL1 FS} bind def /TGT {250 /Times-ISOL1 FS} bind def /TIGT {250 /TimesI-ISOL1 FS} bind def /TBGT {250 /TimesB-ISOL1 FS} bind def /TBIGT {250 /TimesBI-ISOL1 FS} bind def /TBMT {200 /TimesB-ISOL1 FS} bind def /TBIMT {200 /TimesBI-ISOL1 FS} bind def /ishowGT {TBMT -00 -50 rmoveto show 00 50 rmoveto TBGT} bind def /ishowGGT {TBGT -00 -50 rmoveto show 00 50 rmoveto TBGGT} bind def /RYGBton 17 array def /RYGB0 RYGBLAB* 02 get RYGBLAB* 01 get atan def %026 /RYGB1 RYGBLAB* 05 get RYGBLAB* 04 get atan def %092 /RYGB2 RYGBLAB* 08 get RYGBLAB* 07 get atan def %162 /RYGB3 RYGBLAB* 11 get RYGBLAB* 10 get atan def %272 0 1 16 {/j exch def %i=0,16 elementary and intemediate hue angles /j0 j j 4 idiv 4 mul sub def %0,1,2,3 /b0 j0 0.25 mul def /a0 1 b0 sub def j 00 ge j 03 le and {RYGBton j a0 RYGB0 mul b0 RYGB1 mul add put} if j 04 ge j 07 le and {RYGBton j a0 RYGB1 mul b0 RYGB2 mul add put} if j 08 ge j 11 le and {RYGBton j a0 RYGB2 mul b0 RYGB3 mul add put} if j 12 ge j 15 le and {RYGBton j a0 RYGB3 mul b0 RYGB0 360 add mul add dup 360 ge {360 sub} if put} if j 16 eq {RYGBton j RYGB0 put} if } for %j=0,16 elementary and intemediate hue angles 0 setgray /xton 050 def /ymax2 7000 def xton ymax2 700 add moveto TBIGGT (rgb*) show (e) ishowGGT TBGGT ( and CIE data of a elementary hue circle according to) showea (\255 und CIE\255Daten eines Elementar\255Bunttonkreises nach) showde ( CIE R1\25547) show ( for) showea ( f\374r) showde TBIGGT ( Ostwald) show TBGGT ( colours) showea (\255Farben) showde xton ymax2 350 add moveto TBIGT xchart 0 eq {%xchart=0,1 (XYZ, xy, YAB,) showea (XYZ\255, xy\255, YAB\255) showde }%xchart=0 {%xchart=1 (XYZ, ab, YAB) showea (XYZ\255, ab\255, YAB) showde (,) showea (\255) showde } ifelse %xchart=0,1 TBGT ( and) showea ( und) showde TBIGT ( Lab*) show TBGT ( data for relative spacing of elementary hue) showea (\255Daten f\374 relative Stufung des Elementarbunttons) showde TBIGT ( h) show (ab) ishowGT TBGT ( of) showea ( von) showde TBIGT ( CIELAB) show TBGT xton ymax2 moveto (16 step elementary hue circle with intended elementary hues:) showea (16\255stufiger Elementar\255Bunttonkreis mit Ziel\255Elementar\255Buntton:) showde TBIGT ( h) show (ab)ishowGT TBGT ( = ) show RYGB0 cvsshow1 (, ) show RYGB1 cvsshow1 (, ) show RYGB2 cvsshow1 (, ) show RYGB3 cvsshow1 TBGT ( of CIELAB) showea ( von CIELAB) showde /xtext 0 def xtext 1 eq {%xtext=1 %title text 0 1 5 {/xtonj exch def %xtonj=0,5 /xton 150 4180 xtonj mul add def xton 0 xdel2 mul add ymax3 ydel2t add moveto TBIGT (rgb -> rgb*) show (d) ishowGT TBGT xton 2.0 xdel2 mul add ymax3 ydel2t add moveto TBIGT (h) show (ab) ishowGT xton 2.9 xdel2 mul add ymax3 ydel2t add moveto TBIGT (L*) show xton 3.8 xdel2 mul add ymax3 ydel2t add moveto TBIGT (a*) show %(a) ishowGT xton 4.7 xdel2 mul add ymax3 ydel2t add moveto TBIGT (b*) show %(a) ishowGT TGT %xton 0 xdel2 mul add ymax3 j ydel2 mul sub moveto %LUTR jx 7 mul get 0.001 mul cvsshow2 ( ) show %LUTR jx 7 mul 1 add get 0.001 mul cvsshow2 ( ) show %LUTR jx 7 mul 2 add get 0.001 mul cvsshow2 %STOPx 0 1 7 {/j exch def %j=0,7 /n xtonj 8 mul j add def xton 0.0 xdel2 mul add ymax3 j ydel2 mul sub moveto n cvishow xton 0.4 xdel2 mul add ymax3 j ydel2 mul sub moveto w1i n get cvishow xton 1.1 xdel2 mul add ymax3 j ydel2 mul sub moveto w2i n get cvishow xton 1.8 xdel2 mul add ymax3 j ydel2 mul sub moveto wdi n get cvishow xton 2.5 xdel2 mul add ymax3 j ydel2 mul sub moveto wci n get cvishow xton 3.1 xdel2 mul add ymax3 j ydel2 mul sub moveto LUTB*b n get LUTA*b n get 0.00001 add atan cvsshow1 TGT xton 3.9 xdel2 mul add ymax3 j ydel2 mul sub moveto LUTL*b n get cvishow xton 4.7 xdel2 mul add ymax3 j ydel2 mul sub moveto LUTA*b n get cvishow xton 5.5 xdel2 mul add ymax3 j ydel2 mul sub moveto LUTB*b n get cvishow } for %j=0,7 } for %xtonj=0,5 } if %xtext=1 0 setgray /xton 050 def /xtext 0 def xtext 1 eq {%xtext=1 xton ymax2 ydel2 8 mul sub moveto TBIGT (RYGB) show (ton) ishowGT TGT (, ) show RYGB0 cvsshow1 (, ) show RYGB1 cvsshow1 (, ) show RYGB2 cvsshow1 (, ) show RYGB3 cvsshow1 TBIGT ( RYGB) show (all) ishowGT (:) show TGT 0 1 15 {/j exch def %j=0,15 xton 5000 add j 750 mul add ymax2 ydel2 8 mul sub moveto RYGBton j get cvsshow1 } for %j=0,15 TBIGT ( LAB*Nio: ) show TGT L*Nio cvsshow1 (, ) show A*Nio cvsshow1 (, ) show B*Nio cvsshow1 TBIGT ( LAB*Wio: ) show TGT L*Wio cvsshow1 (, ) show A*Wio cvsshow1 (, ) show B*Wio cvsshow1 } if %xtext=1 %/ymax2 7000 def /ymax2 7000 def %TBGT %100 ymax2 ydel2 9.5 mul sub moveto %(16 step elementary hue circle with intended elementary hues:) showea %(16\255stufiger Elementar\255Bunttonkreis mit Ziel\255Elementar\255Buntton:) showde %TBIGT %( h) show (ab,a)ishowGT %TBGT %( = ) show %RYGB0 cvsshow1 (, ) show %RYGB1 cvsshow1 (, ) show %RYGB2 cvsshow1 (, ) show %RYGB3 cvsshow1 TGT /ivar 0 def /jm 1.7 def /jx ivar 0 eq {2.5 def} {22.7 def} ifelse %color series title text xton jm 1.7 sub xdel2 mul add ymax2 jx ydel2 mul sub ydel2 add moveto /yact ymax2 jx ydel2 mul sub ydel2 add def %/j 0 def %/jm 19.7 def %color series title text %/yact ymax2 10.5 j 7 mul add ydel2 mul sub ydel2 add def xton jm xdel2 mul add yact moveto TBIGT (X) show xton jm 1 add xdel2 mul add yact moveto TBIGT (Y) show xton jm 2 add xdel2 mul add yact moveto TBIGT (Z) show xchart 0 eq {%xchart=0 xton jm 3 add xdel2 mul add yact moveto TBIGT (x) show xton jm 4 add xdel2 mul add yact moveto TBIGT (y) show } if %xchart=0 xchart 1 eq {%xchart=1 xton jm 3 add xdel2 mul add yact moveto TBIGT (a) show xton jm 4 add xdel2 mul add yact moveto TBIGT (b) show } if %xchart=1 xton jm 5 add xdel2 mul add yact moveto TBIGT (A) show xton jm 6 add xdel2 mul add yact moveto TBIGT (B) show xton jm 7 add xdel2 mul add yact moveto TBIGT (C) show (AB) ishowGT xton jm 8 add xdel2 mul add yact moveto TBIGT (h) show (AB) ishowGT xton jm 9 add xdel2 mul add yact moveto TBIGT (L*) show %(a) ishowGT xton jm 10 add xdel2 mul add yact moveto TBIGT (a*) show %(a) ishowGT xton jm 11 add xdel2 mul add yact moveto TBIGT (b*) show %(a) ishowGT xton jm 11.9 add xdel2 mul add yact moveto TBIGT (C*) show (ab) ishowGT xton jm 13 add xdel2 mul add yact moveto TBIGT (h) show (ab) ishowGT xton jm 14 add xdel2 mul add yact moveto TBIGT (rgb -> rgb*) show (e) ishowGT TBGT %increasing order with LUTL*b etc! /itonx 0 def /itonx1 0 def /habtonM 0 def /habton0 0 def /habton1 0 def /habtonP 0 def /habton2M 0 def /habton2 0 def /habton3 0 def /habton3P 0 def /LUTL*b2M 0.0001 def /LUTL*b2 0.0001 def /LUTL*b3 0.0001 def /LUTL*b3P 0.0001 def /LUTA*b2M 0.0001 def /LUTA*b2 0.0001 def /LUTA*b3 0.0001 def /LUTA*b3P 0.0001 def /LUTB*b2M 0.0001 def /LUTB*b2 0.0001 def /LUTB*b3 0.0001 def /LUTB*b3P 0.0001 def TGT /I45 45 def %hue circle steps (47-2) for first step at i=0 /I39 39 def %hue circle of 40 steps (40-1) and i-0,39 /ymax2x ymax2 2600 sub def /xtext 0 def xtext 1 eq {%xtext=1 0 1 47 {/jj exch def xton ymax2x 220 jj mul sub moveto jj 9 le {(0) show} if jj cvishow ( ) show habton jj get cvsshow1 xton 1000 add ymax2x 220 jj mul sub moveto LUTL*b jj get cvsshow1 xton 2000 add ymax2x 220 jj mul sub moveto LUTA*b jj get cvsshow1 xton 3000 add ymax2x 220 jj mul sub moveto LUTB*b jj get cvsshow1 } for %jj=0,47 } if %xtext=1 0 1 15 {/j exch def %j=0,15 1 1 I39 {/jj exch def %jj=1,I39 /habtonM habton jj 1 sub get def /habton0 habton jj get def /habton1 habton jj 1 add get def /habtonP habton jj 2 add get def /xtext 0 def xtext 1 eq {%xtext=1 j 15 eq {%j=0 xton 4000 add ymax2x 220 jj mul sub moveto jj cvishow ( ) show habton jj get cvsshow1 xton 5000 add ymax2x 220 jj mul sub moveto habtonM cvsshow1 xton 6000 add ymax2x 220 jj mul sub moveto habton0 cvsshow1 xton 7000 add ymax2x 220 jj mul sub moveto habton1 cvsshow1 xton 8000 add ymax2x 220 jj mul sub moveto habtonP cvsshow1 xton 9000 add ymax2x 220 jj mul sub moveto RYGBton j get cvsshow1 } if %j=0 } if %xtext=1 habton1 5 add habton0 lt {%habton1