%!PS-Adobe-3.0 EPSF-3.0 VG390-7X %%BoundingBox: 70 83 415 582 %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/VG39/) /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:2013090112000) /ModDate (D:2013090112000) /DOCINFO pdfmark07 [ /View [ /FitB ] /DOCVIEW pdfmark07 %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-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-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 /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TV {150 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIV {150 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIK {250 /TimesI-ISOL1 FS} bind def /TIM {300 /TimesI-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TBV {150 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBIV {150 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIK {250 /TimesBI-ISOL1 FS} bind def /TBIM {300 /TimesBI-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /CV {150 /Courier-ISOL1 FS} bind def /CS {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CIV {150 /CourierI-ISOL1 FS} bind def /CIS {200 /CourierI-ISOL1 FS} bind def /CIK {250 /CourierI-ISOL1 FS} bind def /CIM {300 /CourierI-ISOL1 FS} bind def /CIG {350 /CourierI-ISOL1 FS} bind def /CBV {150 /CourierB-ISOL1 FS} bind def /CBS {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 /CBIV {150 /CourierBI-ISOL1 FS} bind def /CBIS {200 /CourierBI-ISOL1 FS} bind def /CBIK {250 /CourierBI-ISOL1 FS} bind def /CBIM {300 /CourierBI-ISOL1 FS} bind def /CBIG {350 /CourierBI-ISOL1 FS} bind def /SV {150 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SK {250 /Symbol FS} bind def /SM {300 /Symbol FS} bind def /SG {350 /Symbol FS} bind def /ishowTBS {TBS -00 -50 rmoveto show 00 50 rmoveto TBK} bind def /ishowTBV {TBV -00 -50 rmoveto show 00 50 rmoveto TBS} bind def % FXU(1)=FF(2)*U(3)-FF(3)*U(2) % FXU(2)=FF(3)*U(1)-FF(1)*U(3) % FXU(3)=FF(1)*U(2)-FF(2)*U(1) % SUBROUTINE DOWEL (F,FXU,IMAX,IO) % DIMENSION F(99,3),FXU(3) % I=1 % T2=F(1,1)*FXU(1)+F(1,2)*FXU(2)+F(1,3)*FXU(3) % IF(T2) 1,1,4 % 1 T1=T2 % I=I+1 % T2=F(I,1)*FXU(1)+F(I,2)*FXU(2)+F(I,3)*FXU(3) % IF(T2) 1,1,2 % 2 IF(T1) 3,3,1 % 3 IO=I-1 % RETURN % 4 T1=F(IMAX,1)*FXU(1)+F(IMAX,2)*FXU(2)+F(IMAX,3)*FXU(3) % IF(T1) 5,5,1 % 5 IO=IMAX % RETURN % END %********************************************************* /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 %********************************************************* %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (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 /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 1 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 0 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 (d) def} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /cvsshow4 {10000 mul cvi 0.0001 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 /cvsshow4b {10000 mul cvi 0.0001 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 /cvsshow4r {0.00005 add 10000 mul cvi 0.0001 mul 7 string cvs show} def /cvi01show {/nx exch cvi def nx 9 le {(0) show} if nx cvi 6 string cvs show } def /cvi02show {/nx exch cvi def nx 9 le {(0) show} if nx 99 le {(0) show} if nx cvi 6 string cvs show } 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 /FXX100 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 /RX0 640 array def %8x80 /RX0 [ %(%Rm 00 565_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0500 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 475_575) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0500 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 0500 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 04 380_565) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 0500 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 05 380_495) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 0500 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 06 575_475) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 0500 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0500 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%N0(r=0,001) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 10 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 10 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def /RX1 160 array def %4x40, delta only 10nm /RX1 [ %CIE-TF:000009, 380-770; 40 data 0066 0058 0052 0051 0050 0048 0046 0042 0038 0033 0030 0028 0028 0030 0031 0032 0033 0035 0041 0048 0060 0102 0190 0336 0505 0641 0717 0758 0781 0797 0809 0819 0828 0831 0835 0836 0838 0839 0839 0839 %CIE-TF:000010 0050 0059 0066 0068 0069 0072 0076 0083 0095 0113 0142 0189 0262 0365 0465 0546 0610 0653 0678 0693 0701 0705 0706 0707 0708 0710 0712 0716 0720 0725 0731 0739 0746 0749 0753 0755 0755 0756 0758 0758 %CIE-TF:000011 0111 0127 0127 0116 0108 0104 0105 0110 0123 0148 0192 0252 0325 0356 0346 0314 0271 0227 0188 0153 0125 0106 0096 0090 0085 0080 0078 0078 0081 0088 0102 0125 0161 0203 0242 0270 0292 0310 0317 0317 %CIE-TF:000012 0120 0090 0076 0064 0075 0123 0207 0300 0346 0341 0307 0257 0204 0154 0109 0075 0051 0035 0025 0019 0017 0016 0016 0016 0016 0018 0018 0019 0023 0026 0035 0056 0097 0166 0257 0354 0446 0520 0577 0577 ] def /FXX 240 array def /xchart4l xchart4 def 1 1 2 {/xchart4l exch def %xchart4l=1,2 /xcolorl xcolor def 0 1 1 {/xcolorl exch def %xcolorl=0,1 /pchartl pchart def 0 1 1 {/pchartl exch def %pchartl=0,1 /xchartl xchart def 0 1 0 {/xchartl exch def %xchartl=0,1 /K 0 def %for normalization 1 %/K 1 def %for normalization 0,886 gsave 5 /Times-ISOL1 FS 75 85 moveto lanind cvishow (-) show colorm cvishow deintp cvishow xcolorl cvishow xchartl cvishow pchartl cvishow colsep cvishow (-L) show pmetam cvishow 5 /Times-ISOL1 FS 340 85 moveto (VG390-7) show xchart 0 ge {(X) show} if 72 90 translate 0.010 MM dup scale 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 12000 0 rlineto 0 17250 rlineto 12000 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 12000 0 rlineto 0 17250 rlineto 12000 neg 0 rlineto closepath stroke %************************************************* %0 1 1 {/Icom exch def %Icom=0,1 /Icom 0 def 0 1 239 {/i exch def %i=0,239 xcolorl 0 eq {FXX i F2 i get put} if xcolorl 1 eq {FXX i F10 i get put} if } for %i=0,239 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM FXX 80 i add get add def } for %i=0,1,79 /FXX100 240 array def 0 1 79 {/i exch def %i=0,1,79 FXX100 00 i add FXX 00 i add get YKSUM div 100 mul put FXX100 80 i add FXX 80 i add get YKSUM div 100 mul put FXX100 160 i add FXX 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = FXX100 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 FXX100 000 i add get put FYN i FXX100 080 i add get put FZN i FXX100 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 370 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 %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 FXX 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 FXX100 00 i add SDAK i get FXX 00 i add get mul YKSUM div 100 mul put FXX100 80 i add SDAK i get FXX 80 i add get mul YKSUM div 100 mul put FXX100 160 i add SDAK i get FXX 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 FXX100 00 i add get add def /YW YW FXX100 80 i add get add def /ZW ZW FXX100 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 /ymax 17000 def /ymaxt ymax 400 sub def /LPdif 23.5 def /ymaxo 17000 ydel Icom LPdif mul mul sub def /ymaxto ymaxo 400 sub def /xpos 100 def %pchartl 0 eq {%pchartl=0 only /iost0 8700 def 0 1 1 {/iost exch def %iost=0,1 /iostdif iost iost0 mul def 50 ymaxo iostdif sub moveto TBIK (Ostwald) show TBK (\255Optimalfarben (o)) showde %0VG391-7 02581 ( optimal colours (o)) showen %1VG391-7 02581 ( colores \363ptimos (o)) showes %2VG391-7 02581 ( couleurs optimales (o)) showfr %3VG391-7 02581 ( colori ottimi (o)) showit %4VG391-7 02581 ( optimal colours (o)) showjp %5VG391-7 02581 ( von maximalem (m)) showde %0VG391-7 03581 ( of maximum (m)) showen %1VG391-7 03581 ( de m\341ximo (m)) showes %2VG391-7 03581 ( de la maximum (m)) showfr %3VG391-7 03581 ( di massimo (m)) showit %4VG391-7 03581 ( of maximum (m)) showjp %5VG391-7 03581 TBIK ( C) show TBK 0 -60 rmoveto (AB) show 0 60 rmoveto TBK ( f\374r ) showde %0VG391-7 03581 ( for ) showen %1VG391-7 03581 ( bajo ) showes %2VG391-7 03581 ( pour ) showfr %3VG391-7 03581 ( per ) showit %4VG391-7 03581 ( for ) showjp %5VG391-7 03581 TELi xchartl get show TBIK (, Y) show TBK 0 -60 rmoveto (w) show xcolorl 0 eq {() show}{(,10) show} ifelse 0 60 rmoveto TBK K 0 eq {(=100) show}{(=88,6) show} ifelse TBIK (, Y) show TBK 0 -60 rmoveto (m) show 0 60 rmoveto TBK iost 0 eq {(=520_770, ) show} if iost 1 eq {(=770_520, ) show} if TBK iost 0 eq {%iost=0 xchart4l 0 eq {%xchart4l=0 (CIEXYZ data) showea (CIEXYZ\255Daten) showde } if %xchart4l=0 xchart4l 1 eq {%xchart4l=1 (LINYAB data) showea (LINYAB\255Daten) showde } if %xchart4l=1 xchart4l 2 eq {%xchart4l=2 (CIELAB data) showea (CIELAB\255Daten) showde } if %xchart4l=2 } if %iost=0 iost 1 eq {%iost=1 xchart4l 0 eq {%xchart4l=0 (CIEXYZ complementary) showea (CIEXYZ komplement\344r) showde } if %xchart4l=0 xchart4l 1 eq {%xchart4l=1 (LINYAB complementary) showea (LINYAB komplement\344r) showde } if %xchart4l=1 xchart4l 2 eq {%xchart4l=2 (CIELAB complementary) showea (CIELAB komplement\344r) showde } if %xchart4l=2 } if %iost=1 11700 ymaxo iostdif sub moveto (%) show /VtextAB 362 array def xchart4l 0 eq {%xchart4l=0 %0 1 2 3 4 5 6 7 8 9 10 /VtextAB [() () (X) (Y) (Z) (x) (y) (z) (h) ( ) ( )] def } if %xchart4l=0 xchart4l 1 eq {%xchart4l=1 %0 1 2 3 4 5 6 7 8 9 10 /VtextAB [() () (Y) (A) (B) (C) (a) (b) (h) ( ) ( )] def } if %xchart4l=1 xchart4l 2 eq {%xchart4l=2 %0 1 2 3 4 5 6 7 8 9 10 /VtextAB [() () (L*) (a*) (b*) (C*) (a') (b') (h) ( ) ( )] def } if %xchart4l=2 TBIK 0 1 09 {/i exch def %i=0,09 xpos i 2 ge {x0 add} if xdel i mul add ymaxto iostdif sub moveto i 08 le {VtextAB i get show} if i 02 ge i 04 le and {TBK 0 -60 rmoveto K 0 eq {(100) show} {(88.6) show} ifelse 0 60 rmoveto TBIK} if i 2 ge {%i>=1 TBK 0 -60 rmoveto i 05 eq xchart4l 1 eq and {(AB) show} if i 05 eq xchart4l 2 eq and {(ab) show} if i 08 eq xchart4l 0 eq and {(xy) show} if i 08 eq xchart4l 1 eq and {(AB) show} if i 08 eq xchart4l 2 eq and {(ab) show} if 0 60 rmoveto TBIK } if %i>=1 } for %i=0,09 xpos 000 add ymaxto iostdif sub moveto TK (i) show TBK 0 -60 rmoveto (1) show 0 60 rmoveto SK (, l) show %xchart4l 2 eq { TK (*) show TBIK} if TBK 0 -60 rmoveto (1) show 0 60 rmoveto xpos xdel add ymaxto iostdif sub moveto TK (i) show TBK 0 -60 rmoveto (2) show 0 60 rmoveto SK (, l) show %xchart4l 2 eq { TK (*) show TBIK} if TBK 0 -60 rmoveto (2) show 0 60 rmoveto xpos x1 add xdel 9 mul add ymaxto iostdif sub moveto TK (i) show TBK 0 -60 rmoveto (d) show 0 60 rmoveto SK (, l) show %xchart4l 2 eq { TK (*) show TBIK} if TBK 0 -60 rmoveto (d) show 0 60 rmoveto xpos x1 add xdel 10 mul add ymaxto iostdif sub moveto TK (i) show TBK 0 -60 rmoveto (c) show 0 60 rmoveto SK (, l) show %xchart4l 2 eq { TK (*) show TBIK} if TBK 0 -60 rmoveto (c) show 0 60 rmoveto xpos x1 add xdel 11 mul add 50 sub ymaxto iostdif sub moveto (Code) show 11700 ymaxto iostdif sub moveto (%) show } for %iost=0,1 /ymax ymax 800 sub def %***************************************************** /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 /LP k def /LPP LPdif k 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 %which one? %i1i ik INP put %i2i ik IPN put %i1i ik2 IPN put %i2i ik2 INP put TK xchart3 0 eq {%xchart3=0 xpos xdel 0 mul add ymax ydel LP mul sub moveto INP cvishow %i1 xpos xdel 1 mul add ymax ydel LP mul sub moveto IPN cvishow %i2 xpos xdel 0 mul add ymax ydel LPP mul sub moveto IPN cvishow %i1 xpos xdel 1 mul add ymax ydel LPP mul sub moveto INP cvishow %i2 } if %xchart3=0 %********************************************************* /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 /mkmax 12 def 0 1 mkmax {/mk exch def %mk=0,mkmax /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,mkmax /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 mkmax {/mk exch def %mk=0,mkmax /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,mkmax /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 xchart3 0 eq {%xchart3=0 xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto DOWXIE1 0.03 add cvishow %includes rounding failure xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto DOWXIE1 0.03 add cvishow } if %xchart3=0 w1i ik DOWXIE1 put w1ci ik () put w2i ik2 DOWXIE1 put w2ci ik2 () put /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 xchart3 0 eq {%xchart3=0 xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto DOWXIE2 cvishow (c) show xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto DOWXIE2 cvishow (c) show } if %xchart3=0 w1i ik DOWXIE2 put w1ci ik (c) put w2i ik2 DOWXIE2 put w2ci ik2 (c) put /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 xchart3 0 eq {%xchart3=0 xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto DOWXIE2 0.03 add cvishow xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto DOWXIE2 0.03 add cvishow } if %xchart3=0 w2i ik DOWXIE2 put w2ci ik () put w1i ik2 DOWXIE2 put w1ci ik2 () put /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 xchart3 0 eq {%xchart3=0 xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto DOWXIE1 cvishow (c) show xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto DOWXIE1 cvishow (c) show } if %xchart3=0 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 FXX100 00 i add get RA i get mul add def /Y Y FXX100 80 i add get RA i get mul add def /Z Z FXX100 160 i add get RA i get mul add def } for %i=0,79 K 1 eq {%K=1 /X X 0.8859 mul def /Y Y 0.8859 mul def /Z Z 0.8859 mul def } if %K=1 /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 /LP LPdif LP add def } if %Icom=1 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 11 mul add ymax ydel LP mul sub moveto Icom 0 eq {%Icom=0 k 0 eq {(Cm) show} if k 6 eq {(Gm) show} if k 13 eq {(Ym) show} if k 9 eq {(max) show} if } if %Icom=0 Icom 1 eq {%Icom=1 k 0 eq {(Rm) show} if k 6 eq {(Mm) show} if k 13 eq {(Bm) show} if k 9 eq {(min) show} if } if %Icom=1 11700 ymax ydel LP mul sub moveto (%) show } if %xchart3=0 xchart4l 0 eq {%xchart4l=0 /Hxy YAN YANW sub XAN XANW sub 0.0001 add atan def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymax ydel LP mul sub moveto X cvsshow2 xpos x0 add xdel 3 mul add ymax ydel LP mul sub moveto Y cvsshow2 xpos x0 add xdel 4 mul add ymax ydel LP mul sub moveto Z cvsshow2 xpos x0 add xdel 5 mul add ymax ydel LP mul sub moveto XAN cvsshow4 xpos x0 add xdel 6 mul add ymax ydel LP mul sub moveto YAN cvsshow4 xpos x0 add xdel 7 mul add ymax ydel LP mul sub moveto ZAN cvsshow4 xpos x0 add xdel 8 mul add ymax ydel LP mul sub moveto Hxy cvsshow1 } if %xchart3=0 } if %xchart4l=0 xchart4l 1 eq {%xchart4l=1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN dup mul BAN dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /C A dup mul B dup mul add 0.0001 add sqrt def /HAB B A 0.0001 add atan def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymax ydel LP mul sub moveto Y cvsshow2 xpos x0 add xdel 3 mul add ymax ydel LP mul sub moveto A cvsshow2 xpos x0 add xdel 4 mul add ymax ydel LP mul sub moveto B cvsshow2 xpos x0 add xdel 5 mul add ymax ydel LP mul sub moveto C cvsshow2 xpos x0 add xdel 6 mul add ymax ydel LP mul sub moveto AAN cvsshow4 xpos x0 add xdel 7 mul add ymax ydel LP mul sub moveto BAN cvsshow4 xpos x0 add xdel 8 mul add ymax ydel LP mul sub moveto HAB cvsshow1 } if %xchart3=0 } if %xchart4l=1 xchart4l 2 eq {%xchart4l=2 /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 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 /CIELS 116. FYYN mul 16. sub def /CIEAS 500. FXXN FYYN sub mul def /CIEBS 200. FYYN FZZN sub mul def /CIECS CIEAS dup mul CIEBS dup mul add 0.5 exp def /CIEHS CIEBS CIEAS 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymax ydel LP mul sub moveto CIELS cvsshow2 xpos x0 add xdel 3 mul add ymax ydel LP mul sub moveto CIEAS cvsshow2 xpos x0 add xdel 4 mul add ymax ydel LP mul sub moveto CIEBS cvsshow2 xpos x0 add xdel 5 mul add ymax ydel LP mul sub moveto CIECS cvsshow2 xpos x0 add xdel 6 mul add ymax ydel LP mul sub moveto a' cvsshow4 xpos x0 add xdel 7 mul add ymax ydel LP mul sub moveto b' cvsshow4 xpos x0 add xdel 8 mul add ymax ydel LP mul sub moveto CIEHS cvsshow1 } if %xchart3=0 } if %xchart4l=2 %********************************************************* %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 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 9 mul add ymax ydel LP mul sub moveto INP cvishow xpos x1 add xdel 10 mul add ymax ydel LP mul sub moveto IPN cvishow } if %xchart3=0 %********************************************************* /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 mkmax {/mk exch def %mk=0,mkmax /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,mkmax /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 mkmax {/mk exch def %mk=0,mkmax /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,mkmax /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 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto DOWXIE1 cvishow } if %xchart3=0 wdi ik DOWXIE1 put wdci ik () put /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto DOWXIE2 cvishow (c) show } if %xchart3=0 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 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto DOWXIE2 cvishow } if %xchart3=0 wci ik DOWXIE2 put wcci ik () put /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 xchart3 0 eq {%xchart3=0 xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto DOWXIE1 cvishow (c) show } if %xchart3=0 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 Xi k X put Yi k Y put Zi k Z put XANi k XAN put YANi k YAN put ZANi k ZAN put } if %Icom=0 Icom 1 eq {%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 } if %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 %********************************************************************** %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 FXX100 00 i add get add def /YW YW FXX100 80 i add get add def /ZW ZW FXX100 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 K 0 eq {%K=0 /XK XW def /YK YW def /ZK ZW def }%K=0 {%K=1 /XK XW 0.8859 mul def /YK YW 0.8859 mul def /ZK ZW 0.8859 mul def } ifelse %K=1 /SUMK XK YK add ZK add def %for D65, D50, P40, A00, E00 /XANK XK SUMK div def /YANK YK SUMK div def /ZANK ZK SUMK div def /LP LP 1.0 add def 0 1 1 {/iost exch def %iost=0,1 /ymaxio ymax ydel LP mul sub iost iost0 mul add def xchart3 0 eq {%xchart3=0 xpos xdel 0 mul add 400 add ymaxio moveto (380) show xpos xdel 1 mul add 400 add ymaxio moveto (770) show } if %xchart3=0 xchart4l 0 eq {%xchart4l=0 /HxyK YANK YANK sub XANK XANK sub 0.0001 add atan def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymaxio moveto XK cvsshow2 xpos x0 add xdel 3 mul add ymaxio moveto YK cvsshow2 xpos x0 add xdel 4 mul add ymaxio moveto ZK cvsshow2 xpos x0 add xdel 5 mul add ymaxio moveto XANK cvsshow4 xpos x0 add xdel 6 mul add ymaxio moveto YANK cvsshow4 xpos x0 add xdel 7 mul add ymaxio moveto ZANK cvsshow4 xpos x0 add xdel 8 mul add ymaxio moveto HxyK cvsshow1 } if %xchart3=0 } if %xchart4l=0 xchart4l 1 eq {%xchart4l=1 /AANK XK YK 0.0001 add div def /BANK ZK YK 0.0001 add div 0.4 mul neg def /CANK AANK dup mul BANK dup mul add 0.0001 add sqrt def /AK AANK AANK sub YK mul def /BK BANK BANK sub YK mul def /CK AK dup mul BK dup mul add 0.0001 add sqrt def /HABK BK AK 0.0001 add atan def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymaxio moveto YK cvsshow2 xpos x0 add xdel 3 mul add ymaxio moveto AK cvsshow2 xpos x0 add xdel 4 mul add ymaxio moveto BK cvsshow2 xpos x0 add xdel 5 mul add ymaxio moveto CK cvsshow2 xpos x0 add xdel 6 mul add ymaxio moveto AANK cvsshow4 xpos x0 add xdel 7 mul add ymaxio moveto BANK cvsshow4 xpos x0 add xdel 8 mul add ymaxio moveto HABK cvsshow1 } if %xchart3=0 } if %xchart4l=1 xchart4l 2 eq {%xchart4l=2 /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 XK XW div D24_116 gt {/FXXNK XK XW div 0.0001 add D13 exp def} {/FXXNK D841_108 XK XW div mul D16_116 add def} ifelse YK YW div D24_116 gt {/FYYNK YK YW div 0.0001 add D13 exp def} {/FYYNK D841_108 YK YW div mul D16_116 add def} ifelse ZK ZW div D24_116 gt {/FZZNK ZK ZW div 0.0001 add D13 exp def} {/FZZNK D841_108 ZK YW div mul D16_116 add def} ifelse /CIELSK 116. FYYNK mul 16. sub def /CIEASK 500. FXXNK FYYNK sub mul def /CIEBSK 200. FYYNK FZZNK sub mul def /CIECSK CIEASK dup mul CIEBSK dup mul add 0.5 exp def /CIEHSK CIEBSK CIEASK 0.000001 add atan def /a'K XK YK 0.0001 add div D13 exp 0.2191 mul def /b'K ZK YK 0.0001 add div D13 exp -0.08376 mul def /c'K a'K dup mul b'K dup mul add 0.0001 add sqrt def xchart3 0 eq {%xchart3=0 xpos x0 add xdel 2 mul add ymaxio moveto CIELSK cvsshow2 xpos x0 add xdel 3 mul add ymaxio moveto CIEASK cvsshow2 xpos x0 add xdel 4 mul add ymaxio moveto CIEBSK cvsshow2 xpos x0 add xdel 5 mul add ymaxio moveto CIECSK cvsshow2 xpos x0 add xdel 6 mul add ymaxio moveto a'K cvsshow4 xpos x0 add xdel 7 mul add ymaxio moveto b'K cvsshow4 xpos x0 add xdel 8 mul add ymaxio moveto CIEHSK cvsshow1 } if %xchart3=0 } if %xchart4l=2 11700 ymaxio moveto (%) show } for %iost=0,1 %} for %Icom=0,1 %STOPX %pchartl>=1*************************************************************** pchartl 1 ge {%pchartl>=1 20 setlinewidth 0 0 0 0 setcmyk_olvcolor 0 0 moveto 12000 0 rlineto 0 8500 rlineto 12000 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 12000 0 rlineto 0 8500 rlineto 12000 neg 0 rlineto closepath stroke /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* 362 array def /LUTA* 362 array def /LUTB* 362 array def /LUTL*a 362 array def /LUTA*a 362 array def /LUTB*a 362 array def /LUTL*b 362 array def /LUTA*b 362 array def /LUTB*b 362 array def /LUTL*c 362 array def /LUTA*c 362 array def /LUTB*c 362 array def /habton 362 array def /indton 362 array def /LNWton 362 array def /ANWton 362 array def /BNWton 362 array def /RXA 41 array def /RAA 41 array def /Xt 362 array def /Yt 362 array def /Zt 362 array def /LAB*Lt 362 array def /LAB*at 362 array def /LAB*bt 362 array def /LAB*Lta 362 array def /LAB*ata 362 array def /LAB*bta 362 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, 2-GRAD % 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 /RYGBXYZ 12 array def %see Table in ME391-3N.PDF/EPS %/RYGBXYZ [ % 20.48 11.20 4.36 % R CIE No.09 elementary colours in XYZ, D65, 2-GRAD % 54.87 58.94 12.08 % J CIE No.10 % 12.12 20.35 15.33 % G CIE No.11 % 6.28 6.47 27.73 % B CIE No.12 %] def /RYGBYAB 12 array def %see Table XYZ, xy in ME391-3N.PDF/EPS %/RYGBYAB[ %A, B not known % 11.20 0.00 0.00 % R CIE No.09 elementary colours in XYZ, D65, 2-GRAD % 58.94 0.00 0.00 % J CIE No.10 % 20.35 0.00 0.00 % G CIE No.11 % 6.47 0.00 0.00 % B CIE No.12 %] def %Calculation RYGBXYZ CIE-TEST colour for actual Illuminant 0 1 3 {/j exch def %4 CIE test colours /j3 j 3 mul def /X 0 def /Y 0 def /Z 0 def 0 2 078 {/i exch def %i=0,78 /i2 i 2 idiv def /X X FXX100 00 i add get RX1 i2 j 40 mul add get 0.001 mul mul add def /Y Y FXX100 80 i add get RX1 i2 j 40 mul add get 0.001 mul mul add def /Z Z FXX100 160 i add get RX1 i2 j 40 mul add get 0.001 mul mul add def } for %i=0,78 RYGBXYZ j3 0 add X 2 mul put %2 because of delta_lamda=10nm RYGBXYZ j3 1 add Y 2 mul put RYGBXYZ j3 2 add Z 2 mul put } for %j=0,3 %STOP0 %Calculation RYGBYAB CIE-TEST colour for actual Illuminant 0 1 3 {/j exch def %j=0,3 /j3 j 3 mul def RYGBYAB j3 0 add RYGBXYZ j3 1 add get put RYGBYAB j3 1 add RYGBXYZ j3 0 add get RYGBXYZ j3 1 add get 0.0001 add div XW YW div sub RYGBXYZ j3 1 add get mul put RYGBYAB j3 2 add RYGBXYZ j3 2 add get RYGBXYZ j3 1 add get 0.0001 add div ZW YW div sub RYGBXYZ j3 1 add get mul 0.4 mul neg put } for %j=0,3 %Calculation RYGBLAB* CIE-TEST colour for actual Illuminant /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 0 1 3 {/j exch def %j=0,3 /j3 j 3 mul def /X RYGBXYZ j3 0 add get def /Y RYGBXYZ j3 1 add get def /Z RYGBXYZ j3 2 add 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 RYGBLAB* j3 0 add 116. FYYN mul 16. sub put RYGBLAB* j3 1 add 500. FXXN FYYN sub mul put RYGBLAB* j3 2 add 200. FYYN FZZN sub mul put } for %j=0,3 /RYGB16 17 array def /RYGB16 [(R00Y) (R25Y) (R50Y) (R75Y) (Y00G) (Y25G) (Y50G) (Y75G) (G00B) (G25B) (G50B) (G75B) (B00R) (B25R) (B50R) (B75R) (R00Y)] def /L05 5 array def /L05 [(N000W) (N025W) (N050W) (N075W) (N100W)] def /RGB*16 17 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) (1.00 0.00 0.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 /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 %************************************************************* %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 362 array def %only 48 used here /LAB*ai 362 array def /LAB*bi 362 array def /LAB*Ci 362 array def /LAB*hi 362 array def /LAB*Lia 362 array def /LAB*aia 362 array def /LAB*bia 362 array def /LAB*Cia 362 array def /LAB*hia 362 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 xchart4l 2 eq {%xchart4l=2 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 } if %xchart4l=2 %STOP1 xchart4l 1 le {%xchart4l<=1 /aan0 X Y 0.0001 add div def /ban0 Z Y 0.0001 add div 0.4 mul neg def /aann XW YW 0.0001 add div def /bann ZW YW 0.0001 add div 0.4 mul neg def /A0 aan0 aann sub Y mul def /B0 ban0 bann sub Y mul def /CAB0 A0 dup mul B0 dup mul add 0.0001 add sqrt def /hAB B0 A0 0.0001 add atan def LAB*Lia i Y put LAB*aia i A0 put LAB*bia i B0 put LAB*Cia i CAB0 put LAB*hia i hAB put LUTL*a i Y put LUTA*a i A0 put LUTB*a i B0 put habton i B0 A0 0.0001 add atan put } if %xchart4l<=1 %STOP2 } for %i=0,48 %STOP2 %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 /F89 0.8859 def % achromatic (XXX=D65, D50, ...) colours /XLWXXX100 XW def /YLWXXX100 YW def /ZLWXXX100 ZW def /XWio XLWXXX100 def /YWio YLWXXX100 def /ZWio ZLWXXX100 def 0 setgray %/RYGBton 362 array def /RYGBton 017 array def xchart4l 2 eq {%xchart4l=2 /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 } if %xchart4l=2 xchart4l 1 le {%xchart4l<=1 /aann XW YW 0.0001 add div def /bann ZW YW 0.0001 add div 0.4 mul neg def 0 1 3 {/j exch def %j=0,3 /j3 j 3 mul def /aan0 RYGBXYZ j3 get RYGBXYZ j3 1 add get 0.0001 add div def /ban0 RYGBXYZ j3 2 add get RYGBXYZ j3 1 add get 0.0001 add div 0.4 mul neg def /A0 aan0 aann sub RYGBXYZ j3 1 add get mul def /B0 ban0 bann sub RYGBXYZ j3 1 add get mul def /hAB B0 A0 0.0001 add atan def j 0 eq {/RYGB0 hAB def} if %19 j 1 eq {/RYGB1 hAB def} if %94 j 2 eq {/RYGB2 hAB def} if %158 j 3 eq {/RYGB3 hAB def} if %271 } for %j=0,3 } if %xchart4l<=1 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 1 361 {/j exch def %j=0,16 equally spaced hue angles % RYGBton j j put % j 361 eq {RYGBton j 0 put} if % } for %j=0,16 0 setgray /xton 050 def /ytop 3850 def /ymax2 3500 ytop add def /iout 1 def iout 1 eq {%iout=1 xton ymax2 800 add moveto TBIS (rgb*) show xchart4l 2 eq {(e,ab) ishowTBV} if xchart4l 1 le {(e,AB) ishowTBV} if TBS ( 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 TBIS ( Ostwald) show TBS ( colours) showea (\255Farben) showde ( f\374r CIE\255Lichtart ) showde %0VG391-7 03581 ( for CIE illuminant ) showen %1VG391-7 03581 ( bajo ) showes %2VG391-7 03581 ( pour ) showfr %3VG391-7 03581 ( per ) showit %4VG391-7 03581 ( for ) showjp %5VG391-7 03581 TELi xchartl get show xton ymax2 500 add moveto TBIS (Yxy, abc) show (AB) ishowTBV TBIS (, ABC) show (AB) ishowTBV TBIS (, LabC*) show (ab) ishowTBV TBIS (h) show (ab) ishowTBV TBS ( data for relative spacing of elementary hue) showea (\255Daten f\374 relative Stufung des Elementarbunttons) showde TBIS ( h) show xchart4l 2 eq {(ab) ishowTBV} if xchart4l 1 le {(AB) ishowTBV} if TBS ( of ) showea ( von ) showde TBIS xchart4l 2 eq {(CIELAB) show} if xchart4l 1 le {(LINYAB) show} if TBS ( f\374r ) showde %0VG391-7 03581 ( for ) showen %1VG391-7 03581 ( bajo ) showes %2VG391-7 03581 ( pour ) showfr %3VG391-7 03581 ( per ) showit %4VG391-7 03581 ( for ) showjp %5VG391-7 03581 xcolorl 0 eq {%xcolorl=0,1 (CIE 2 degree observer) showea (CIE\2552\255Grad Beobachter) showde } %xcolorl=0 {%xcolorl=1 (CIE 10 degree observer) showea (CIE\25510\255Grad Beobachter) showde } ifelse %xcolorl=0,1 TBS xton ymax2 200 add moveto (Elementary hue circle with 4 intended elementary hue angles:) showea (Elementar\255Bunttonkreis mit 4 Ziel\255Elementar\255Bunttonwinkeln:) showde TBIS ( h) show xchart4l 2 eq {(ab) ishowTBV} if xchart4l 1 le {(AB) ishowTBV} if TBS ( = ) show RYGB0 cvsshow1 (, ) show RYGB1 cvsshow1 (, ) show RYGB2 cvsshow1 (, ) show RYGB3 cvsshow1 TBS ( of ) showea ( von ) showde TBIS xchart4l 2 eq {(CIELAB) show} if xchart4l 1 le {(LINYAB) show} if TBS (, and 16 intended hue angles:) showea ( und 16 Ziel\255Buntonwinkeln:) showde %(, and 90 intended hue angles:) showea %( und 90 Ziel\255Buntonwinkeln:) showde %STOP0 TBS %/j 0 def %xton 0000 add j 600 mul add ymax2 100 sub moveto %pchartl 1 eq {(000, 001, ..., 089) show} if %pchartl 2 eq {(090, 091, ..., 179) show} if %pchartl 3 eq {(180, 181, ..., 269) show} if %pchartl 4 eq {(270, 271, ..., 360) show} if 0 1 15 {/j exch def %j=0,15 xton 0000 add j 600 mul add ymax2 100 sub moveto RYGBton j get cvsshow1 } for %j=0,15 TBS xton ymax2 400 sub moveto xchart4l 1 le {(LINYAB) show} if xchart4l 2 eq {(CIELAB) show} if ( data of CIE test colours) showea (\255Daten CIE\255Testfarben) showde 0 1 11 {/i exch def %i=0,11 i 0 eq {( 9 (R):) show} if i 3 eq {(, 10 (Y):) show} if i 6 eq {(, 11 (G):) show} if i 9 eq {(, 12 (B):) show} if xchart4l 1 le {( ) show RYGBYAB i get cvsshow1} if xchart4l 2 eq {( ) show RYGBLAB* i get cvsshow1} if } for %i=0,11 } if %iout=1 %/ydel 203 def /ytop2 3900 def /ymax3 8000 ytop2 add def /xdel2 625 def /ydel2 250 def /ydel2t 300 def /ymaxt ymax 400 sub ytop2 add def /xpos 100 def /xtext 0 def xtext 1 eq {%xtext=1 %title text TBV /xdel2x 500 def /ymax3x 7800 ytop2 add def %0 1 5 {/xtonj exch def %xtonj=0,5 0 1 2 {/xtonj exch def %xtonj=0,2 /xton 150 4000 xtonj mul add def xton 0 xdel2x mul add ymax3x ydel2t add moveto TBIV (n w(1/2)i w(1/2)ic) show xton 3.9 xdel2x mul add ymax3x ydel2t add moveto TBIV (h) show (ab) ishowTBV xton 4.9 xdel2x mul add ymax3x ydel2t add moveto TBIV (L*) show xton 5.9 xdel2x mul add ymax3x ydel2t add moveto TBIV (a*) show %(a) ishowTBV xton 6.9 xdel2x mul add ymax3x ydel2t add moveto TBIV (b*) show %(a) ishowTBV CV 0 1 7 {/j exch def %j=0,7 /n xtonj 8 mul j add def xton 0.0 xdel2x mul add ymax3x j ydel2 mul sub moveto n cvishow xton 0.4 xdel2x mul add ymax3x j ydel2 mul sub moveto w1i n get cvishow w1ci n get show xton 1.3 xdel2x mul add ymax3x j ydel2 mul sub moveto w2i n get cvishow w2ci n get show xton 2.1 xdel2x mul add ymax3x j ydel2 mul sub moveto wdi n get cvishow wdci n get show xton 3.0 xdel2x mul add ymax3x j ydel2 mul sub moveto wci n get cvishow wcci n get show xton 3.9 xdel2x mul add ymax3x j ydel2 mul sub moveto LUTB*b n get LUTA*b n get 0.00001 add atan cvishow xton 4.9 xdel2x mul add ymax3x j ydel2 mul sub moveto LUTL*b n get cvishow xton 5.9 xdel2x mul add ymax3x j ydel2 mul sub moveto LUTA*b n get cvishow xton 6.9 xdel2x mul add ymax3x 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 1200 add moveto TBIS ( LAB*Nio: ) show TS L*Nio cvsshow1 (, ) show A*Nio cvsshow1 (, ) show B*Nio cvsshow1 TBIS ( LAB*Wio: ) show TS L*Wio cvsshow1 (, ) show A*Wio cvsshow1 (, ) show B*Wio cvsshow1 } if %xtext=1 %STOPX1 /ymax2 7000 0.5 mul ytop2 add def TS /ivar 0 def /jm 1.7 def /jx ivar 0 eq {2.5 def} {22.7 def} ifelse %color series title text /xtext 20 array def /xtexi 20 array def /xshif 20 array def /xtons 20 array def % 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 % Y x y a b cAB A B CAB hAB L* a* b* C*ab hab rgb*e,ab /ttext [(Y)(x)(y)(a)(b)(c) (A)(B)(C) (h) (L*)(a*)(b*)(C*) (h) (rgb*)()() (Code) ] def /t02ABi [( )( )( )( )( )(AB)( )( )(AB)(AB)( ) ( ) ( ) (ab) (ab)(e,AB)()() (AB) ] def /t02abi [( )( )( )( )( )(AB)( )( )(AB)(AB)( ) ( ) ( ) (ab) (ab)(e,ab)()() (ab) ] def /t10ABi [(10)(10)(10)(10)(10)(AB,10)(10)(10)(AB,10)(AB,10)(10) (10) (10) (ab,10)(ab,10)(e,AB,10) () () (AB,10) ] def /t10abi [(10)(10)(10)(10)(10)(AB,10)(10)(10)(AB,10)(AB,10)(10) (10) (10) (ab,10)(ab,10)(e,ab,10) () () (ab,10) ] def % 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 % 16 17 18 /xshif [2.1 3.0 4.1 5.1 6.1 7.1 8.1 9.1 10.0 11.0 12.0 13.0 14.0 15.0 16.0 16.9 17.7 18.5 19.1 ] def /xton1 -800 def 0 1 18 {/jton exch def %jton=0,18 xtons jton xton1 xshif jton get xdel2 mul add put } for %jton=0,18 /yact ymax2 jx ydel2 mul sub ydel2 add 400 sub def TBIS 050 yact moveto (no.) show TBV 0 -50 rmoveto xcolorl 0 eq {%xcolorl=0,1 xchart4l 1 le {(AB) show} if xchart4l 2 eq {(ab) show} if }%xcolorl=0 {%xcolorl=1 xchart4l 1 le {(AB,10) show} if xchart4l 2 eq {(ab,10) show} if } ifelse %xcolorl=0,1 0 50 rmoveto TBV 0 1 18 {/jton exch def %jton=0,18 xtons jton get yact moveto TBIS ttext jton get show TBV 0 -50 rmoveto xchart4l 1 le {%xchart4l<=1 xcolorl 0 eq {t02ABi jton get show} if xcolorl 1 eq {t10ABi jton get show} if } if %xchart4l<=1 xchart4l 2 eq {%xchart4l=2 xcolorl 0 eq {t02abi jton get show} if xcolorl 1 eq {t10abi jton get show} if } if %xchart4l=2 0 50 rmoveto } for %jton=0,18 %STOPX2 %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 TS /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 600 sub ytop2 add def /xtext 0 def CV /ymax3x ymax2x 8000 add ytop2 add def xtext 1 eq {%xtext=1 0 1 47 {/jj exch def xton ymax3x 120 jj mul sub moveto jj 9 le {(0) show} if jj cvishow ( ) show habton jj get cvsshow1 xton 1000 add ymax3x 120 jj mul sub moveto LUTL*b jj get cvsshow1 xton 2000 add ymax3x 120 jj mul sub moveto LUTA*b jj get cvsshow1 xton 3000 add ymax3x 120 jj mul sub moveto LUTB*b jj get cvsshow1 } for %jj=0,47 } if %xtext=1 %STOPY /pchartlM pchartl 1 sub def /j1 00 def %pchartlM 90 mul add def /j2 j1 15 add 1 add def %89 add pchartlM 3 eq {1 add} if def j1 1 j2 {/j exch def %j=j1,j2 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 CV xtext 1 eq {%xtext=1 j 15 eq {%j=0 xton 4000 add ymax3x 120 jj mul sub moveto jj cvishow ( ) show habton jj get cvsshow1 xton 5000 add ymax3x 120 jj mul sub moveto habtonM cvsshow1 xton 6000 add ymax3x 120 jj mul sub moveto habton0 cvsshow1 xton 7000 add ymax3x 120 jj mul sub moveto habton1 cvsshow1 xton 8000 add ymax3x 120 jj mul sub moveto habtonP cvsshow1 xton 9000 add ymax3x 120 jj mul sub moveto RYGBton j get cvsshow1 } if %j=0 } if %xtext=1 %STOPY2 habton1 5 add habton0 lt {%habton1=1 showpage grestore } for %xchartl=0,1 } for %pchartl=0,1 } for %xcolorl=0,1 } for %xchart4l=0,2 %%Trailer