%!PS-Adobe-3.0 EPSF-3.0 AGM21-6N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark16 where {pop} {userdict /pdfmark16 /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: farbe.li.tu-berlin.de/AGM2/AGM2.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de http://130.149.60.45/~farbmetrik) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2020090112000) /ModDate (D:2020090112000) /DOCINFO pdfmark16 [ /View [ /Fit ] /DOCVIEW pdfmark16 %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 /TX {120 /Times-ISOL1 FS} bind def /TV {160 /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 /TIX {120 /TimesI-ISOL1 FS} bind def /TIV {160 /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 /TBX {120 /TimesB-ISOL1 FS} bind def /TBV {160 /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 /TBIX {120 /TimesBI-ISOL1 FS} bind def /TBIV {160 /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 /XD65 95.05 def /YD65 100.00 def /ZD65 108.90 def /xanD65 XD65 XD65 YD65 add ZD65 add div def /yanD65 YD65 XD65 YD65 add ZD65 add div def %******************************************************* %created for 10 colours of hue circle and different lightness /LCh*10 55 array def /XYZ*10 55 array def /LCh*10n 55 array def /XYZ*10n 55 array def %************************************************************** %created for 45 colours of equal chroma and different lightness /rgb*45 500 array def %5x45, NOT 3x45 /LCh*45 500 array def %5x45 /XYZ*45 500 array def %5x45 /rgb*45n 500 array def %5x45, NOT 3x45 /XYZ*45n 500 array def %5x45 /XYZ*45na 500 array def /LCh*45n 500 array def %5x45 /LCh*45na 500 array def %5x45 %************************************************************ %definition of A for xchartl=0 to 5 /XYZ*5A 5 array def /LCh*5A 5 array def /XYZ*5N 5 array def /LCh*5N 5 array def /XYZ*5W 5 array def /LCh*5W 5 array def /XYZ*5An 5 array def /LCh*5An 5 array def /XYZ*5Nn 5 array def /LCh*5Nn 5 array def /XYZ*5Wn 5 array def /LCh*5Wn 5 array def /rgb*3A 3 array def /tex*3A 3 array def /rgb*3N 3 array def /tex*3N 3 array def /rgb*3W 3 array def /tex*3W 3 array def /LCh*5Na 5 array def %a=actual /LCh*5Wa 5 array def /LCh*5Aa 5 array def %************************************************************* %******************************************************************* /proz_XYZ_LCh* {%BEG proz_XYZ_LCh* %input XYZaref, output LChab*ref, same name in any case %output LabC*h (xchart8=0) or LABC*h (xchart8=1) /XQ Xaref XD65 div def /YQ Yaref YD65 div def /ZQ Zaref ZD65 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if /L*ref YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse def xchart8 0 eq {%xchart8=0 LabCh*-CIELAB /a*ref XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul def /b*ref YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul def } if %xchart8=0 LabCh*-CIELAB xchart8 1 eq {%xchart8=1 LabCh*=LABCh* /a*ref XQ YQ sub 250 mul def /b*ref YQ ZQ sub 100 mul def } if %xchart8=1 LabCh*=LABCh* /C*ref a*ref dup mul b*ref dup mul add sqrt def /h*ref b*ref a*ref 0.00001 add atan def C*ref 0.05 le {/h*ref 0 def} if } bind def %END proz_XYZ_LCh* %******************************************************************* /proz_LCh*_XYZ {%BEG proz_LCh*_XYZ %input LCh*ref of LabC*h (xchart8=0) or L*ABCh (xchart8=1) %output XYZref, xyanref xchart8 0 eq {%xchart8=0 /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /a*ref C*ref h*ref cos mul def /b*ref C*ref h*ref sin mul def /X* {L*ref 16 add 116 div a*ref 500 div add} bind def /Y* {L*ref 16 add 116 div} bind def /Z* {L*ref 16 add 116 div b*ref 200 div sub} bind def /Xref X* DecodeXYZ* XD65 mul def /Yref Y* DecodeXYZ* YD65 mul def /Zref Z* DecodeXYZ* ZD65 mul def } if %xchart8=0 xchart8 1 eq {%xchart8=1 /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /Y* {L*ref 16 add 116 div} bind def /Yref Y* DecodeXYZ* YD65 mul def /a*ref C*ref h*ref cos mul def /b*ref C*ref h*ref sin mul def /Xref a*ref 250 div XD65 mul Yref XD65 mul YD65 div add def /Zref Yref ZD65 mul YD65 div b*ref 100 div ZD65 mul sub def } if %xchart8=1 Xref 0.01 lt {/Xref 0.01 def} if Yref 0.01 lt {/Yref 0.01 def} if Zref 0.01 lt {/Zref 0.01 def} if /SUM Xref Yref add Zref add 0.0001 add def /xanref Xref SUM div def /yanref Yref SUM div def } bind def %END proz_LCh*_XYZ %************************************************************************* /proz_XYZnw_D65_xchart7_definition {%BEG proz_XYZnw_D65_xchart7_definition % achromatic colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLN001 XLWD65100 100 div def /YLN001 YLWD65100 100 div def /ZLN001 ZLWD65100 100 div def /YrN 2.52 def /Xnref YrN XLN001 mul def /Ynref YrN def /Znref YrN ZLN001 mul def /Xtref XYZnref_ISO9241-306 xchart7 3 mul 0 add get def /Ytref XYZnref_ISO9241-306 xchart7 3 mul 1 add get def /Ztref XYZnref_ISO9241-306 xchart7 3 mul 2 add get def /YNil Ytref def /YNil001 YNil 100 div def YNil001 6 29 div 3 exp ge {/FYYn YNil001 0.3333 exp def} {/FYYn 841 108 div YNil001 mul 4 29 div add def} ifelse /L*Nil 116 FYYn mul 16 sub def } bind def %END proz_XYZnw_D65_xchart7_definition %*********************************************************************** %************************************************************** /proz_XYZ*10_XYZ*10n {%BEG proz_XYZ*10_XYZ*10n %for 10 colours %input XYZ*10, rgb*10 %output LCh*10n, rgb*10n %only for xchart5=1 and for 10 colours in 7 hue planes and achromatic %change XYZ*10 to XYZ*10n by display reflection according to xchart7 %normalization to Ynor=18 xchart9 1 eq {%xchart9=1 /Xnor XD65 0.18 mul def /Ynor YD65 0.18 mul def /Znor ZD65 0.18 mul def /Xfac1 Xnor Xnor Xtref add div def /Yfac1 Ynor Ynor Ytref add div def /Zfac1 Znor Znor Ztref add div def XYZ*10n i100 XYZ*10 i100 get Xnor sub Xfac1 mul Xnor add put XYZ*10n i101 XYZ*10 i101 get Ynor sub Yfac1 mul Ynor add put XYZ*10n i102 XYZ*10 i102 get Znor sub Zfac1 mul Znor add put } if %xchart9=1 %normalization to Ynor=88.6 xchart9 0 eq {%xchart9=0 /Xnor XD65 0.886 mul def /Ynor YD65 0.886 mul def /Znor ZD65 0.886 mul def /Xfac2 Xnor Xtref sub Xnor div def /Yfac2 Ynor Ytref sub Ynor div def /Zfac2 Znor Ztref sub Znor div def XYZ*10n i100 XYZ*10 i100 get Xfac2 mul Xtref add put XYZ*10n i101 XYZ*10 i101 get Yfac2 mul Ytref add put XYZ*10n i102 XYZ*10 i102 get Zfac2 mul Ztref add put } if %xchart9=0 %STOPX5 } bind def %END proz_XYZ*10_XYZ*10n %**************************************************************** /proz_XYZ*45_XYZ*45n {%BEG proz_XYZ*45_XYZ*45n %for 45 colours %input XYZ*45, rgb*45 %output XYZ*45n, rgb*45n %only for xchart5=1 and for 45 colours in hue plane %change XYZ*45 to XYZ*45n by display reflection according t0 xchart7 %normalization to Ynor=18 xchart9 1 eq {%xchart9=1 /Xnor XD65 0.18 mul def /Ynor YD65 0.18 mul def /Znor ZD65 0.18 mul def /Xfac1 Xnor Xnor Xtref add div def /Yfac1 Ynor Ynor Ytref add div def /Zfac1 Znor Znor Ztref add div def XYZ*45n i450 XYZ*45 i450 get Xnor sub Xfac1 mul Xnor add put XYZ*45n i451 XYZ*45 i451 get Ynor sub Yfac1 mul Ynor add put XYZ*45n i452 XYZ*45 i452 get Znor sub Zfac1 mul Znor add put } if %xchart9=1 %normalization to Ynor=88.6 xchart9 0 eq {%xchart9=0 /Xnor XD65 0.886 mul def /Ynor YD65 0.886 mul def /Znor ZD65 0.886 mul def /Xfac2 Xnor Xtref sub Xnor div def /Yfac2 Ynor Ytref sub Ynor div def /Zfac2 Znor Ztref sub Znor div def XYZ*45n i450 XYZ*45 i450 get Xfac2 mul Xtref add put XYZ*45n i451 XYZ*45 i451 get Yfac2 mul Ytref add put XYZ*45n i452 XYZ*45 i452 get Zfac2 mul Ztref add put } if %xchart9=0 } bind def %END proz_XYZ*45_XYZ*45n %*********************************************************** /proz_sRGB_rgb*30X_definitions {%BEG proz_sRGB_rgb*30X_definitions /XYZ*WCGa_d_0000_0886 30 array def %d, Yw=88,6, Yn=2,50 /XYZ*WCGa_d_0000_0886 [056.43 023.27 000.00 %0 Rd %ANH9_Y10-7N,201003, fehl? Zmin=2.72 069.24 083.34 002.48 %1 Yd 012.81 060.07 002.48 %2 Gd 027.77 066.32 096.48 %3 Cd 014.96 005.25 094.00 %4 Bd 071.39 028.52 094.00 %5 Md 056.43 023.27 000.00 %6 Rd %for hue circle 000.01 000.01 000.01 %7 N1 084.21 088.60 096.48 %8 W0 095.05 100.00 108.90 %9 W1 ] def /XYZ*sRGB_d_0000_0886 30 array def %d, Yw=88,60, Yn=0,00 /XYZ*sRGB_d_0000_0886 [036.54 018.84 001.71 %0 Rd %ANH9_Y10-3N,201012 076.99 092.78 013.85 %1 Yd 035.76 071.52 011.91 %2 Gd 053.81 078.74 106.98 %3 Cd 018.05 007.22 095.06 %4 Bd 059.28 028.48 096.99 %5 Md 036.54 018.84 001.71 %6 Rd %for hue circle 000.01 000.01 000.01 %7 N1 084.21 088.60 096.48 %8 W0 095.05 100.00 108.90 %9 W1 ] def /XYZ*Ostw_d_0000_1000 30 array def %m, Yw=100,00, Yn=0,00 /XYZ*Ostw_d_0000_1000 [062.40 041.75 000.76 %0 Rm 561_405 589 %ANI6_Y10-7N,201012 076.68 082.00 001.27 %1 Ym 520_520c 569 023.83 065.32 015.00 %2 Gm 475_473 528c 032.63 058.24 108.12 %3 Cm 405_561 483 018.36 017.99 107.61 %4 Bm 519c-519 471 071.20 034.67 093.88 %5 Mm 573_475 528c 062.40 041.75 000.76 %6 Rm 561_405 589 %for hue circle 000.01 000.01 000.01 %7 N1 095.05 100.00 108.90 %9 W0 107.29 112.88 122.24 %9 W1 ] def /XYZ*Offs_d_0000_0886 30 array def %d, Yw=88,60, Yn=0,00 /XYZ*Offs_d_0000_0886 [029.01 016.24 004.26 %0 Rd %ANJ7_Y11-1N,201012 063.74 072.69 008.27 %1 Yd 008.53 020.05 009.58 %2 Gd 018.74 026.27 069.02 %3 Cd 006.22 004.51 022.65 %4 Bd 032.46 016.95 023.04 %5 Md 029.01 016.24 004.26 %6 Rd %for hue circle 000.01 000.01 000.01 %7 N1 084.21 088.60 096.48 %8 W0 095.05 100.00 108.90 %9 W1 ] def /rgb*30X 30 array def /rgb*30X [1 0 0 %0 1 1 0 %1 0 1 0 %2 0 1 1 %3 0 0 1 %4 1 0 1 %5 1 0 0 %6 0 0 0 %7 1 1 1 %8 1 1 1 %9 >1 ] def /tex*30X 30 array def /tex*30X [(Rot) (red) (R) %0 (Gelb) (yellow) (Y) %1 (Gr\374n) (green) (G) %2 (Cyan) (cyan) (C) %3 (Blau) (blue) (B) %4 (Magenta) (magenta) (M) %5 (Rot) (red) (R) %6 (Schwarz) (black) (N) %7 (Wei\337) (white) (W) %8 (Wei\337) (white) (H) %9 ] def 0 1 09 {/sISO exch def /i30 sISO 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i50 sISO 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def xchart4 0 eq {%xchart4=0 XYZ*10 i50 XYZ*sRGB_d_0000_0886 i30 get put XYZ*10 i51 XYZ*sRGB_d_0000_0886 i31 get put XYZ*10 i52 XYZ*sRGB_d_0000_0886 i32 get put } if %xchart4=0 xchart4 1 eq {%xchart4=1 XYZ*10 i50 XYZ*WCGa_d_0000_0886 i30 get put XYZ*10 i51 XYZ*WCGa_d_0000_0886 i31 get put XYZ*10 i52 XYZ*WCGa_d_0000_0886 i32 get put } if %xchart4=1 xchart4 2 eq {%xchart4=2 XYZ*10 i50 XYZ*Offs_d_0000_0886 i30 get put XYZ*10 i51 XYZ*Offs_d_0000_0886 i31 get put XYZ*10 i52 XYZ*Offs_d_0000_0886 i32 get put } if %xchart4=2 xchart4 3 eq {%xchart4=3 XYZ*10 i50 XYZ*Ostw_d_0000_1000 i30 get 0.8860 mul put XYZ*10 i51 XYZ*Ostw_d_0000_1000 i31 get 0.8860 mul put XYZ*10 i52 XYZ*Ostw_d_0000_1000 i32 get 0.8860 mul put } if %xchart4=3 /SUM XYZ*10 i50 get XYZ*10 i51 get add XYZ*10 i52 get add def XYZ*10 i53 XYZ*10 i50 get SUM div put XYZ*10 i54 XYZ*10 i51 get SUM div put %will be replaced, if xchart5=1 XYZ*10n i50 XYZ*10 i50 get put XYZ*10n i51 XYZ*10 i51 get put XYZ*10n i52 XYZ*10 i52 get put XYZ*10n i53 XYZ*10 i53 get put XYZ*10n i54 XYZ*10 i54 get put } for %i=0,10 /XYZnref_ISO9241-306 24 array def /XYZnref_ISO9241-306 [ %XYZnref wit contrast step according to ISO 9241-306:2018 00.01 00.01 00.01 %0 0288:1 00.60 00.63 00.69 %1 0144:1 01.20 01.26 01.37 %2 0072:1 02.40 02.52 02.74 %3 0036:1 %standard 04.79 05.04 05.49 %4 0018:1 08.58 10.08 10.98 %5 0009:1 19.16 20.16 21.95 %6 04,5:1 38.32 40.32 43.90 %7 2,25:1 ] def /Ynref_ISO9241-306 8 array def 0 1 7 {/i exch def %i=0,7 /i31 i 3 mul 1 add def Ynref_ISO9241-306 i XYZnref_ISO9241-306 i31 get put } for %i=0,7 } bind def %END proz_sRGB_rgb*30X_definitions %*************************************************************** /proz_out_text_ANW_definition {%BEG proz_out_text_ANW_definition %loop for maximal 5 colours +N +W 0 1 2 {/j exch def %j=0,2 %three components /i3j xchartl 3 mul j add def rgb*3A j rgb*30X i3j get put tex*3A j tex*30X i3j get put } for %j=0,2 0 1 4 {/j exch def %j=0,4 %three components /i5j xchartl 5 mul j add def XYZ*5A j XYZ*10 i5j get put LCh*5A j LCh*10 i5j get put XYZ*5An j XYZ*10n i5j get put LCh*5An j LCh*10n i5j get put } for %j=0,4 0 1 2 {/i exch def %i=0,2 rgb*3N i rgb*30X i 21 add get put %8x3 tex*3N i tex*30X i 21 add get put rgb*3W i rgb*30X i 24 add get put %9x3 tex*3W i tex*30X i 24 add get put } for %i=0,2 0 1 4 {/i exch def %i=0,4 XYZ*5N i XYZ*10 i 35 add get put %8x5 LCh*5N i LCh*10 i 35 add get put XYZ*5W i XYZ*10 i 40 add get put %9x5 LCh*5W i LCh*10 i 40 add get put XYZ*5Nn i XYZ*10n i 35 add get put %8x5 LCh*5Nn i LCh*10n i 35 add get put XYZ*5Wn i XYZ*10n i 40 add get put %9x5 LCh*5Wn i LCh*10n i 40 add get put } for %i=0,4 /L*Xd LCh*5A 0 get def /C*Xd LCh*5A 1 get def /L*Nd LCh*5N 0 get def /L*Wd LCh*5W 0 get def /L*Xdn LCh*5An 0 get def /C*Xdn LCh*5An 1 get def /L*Ndn LCh*5Nn 0 get def /L*Wdn LCh*5Wn 0 get def /xfact 2000 100 div def /yfact 2000 100 div def %Titeltext /xd 1550 def /yd 5000 def /xp 1550 def /yp 5000 def /xpN xp def /ypN yp 2000 sub def /xpW xp def /ypW yp def /xpX xp 2000 add def /ypX yp 1000 sub def /xNd xp def %Nd /yNd ypN L*Nd yfact mul add def %Nd /xWd xp def %Wd /yWd ypN L*Wd yfact mul add def %Wd /xRd xp C*Xd xfact mul add def %Xd /yRd ypN L*Xd yfact mul add def /tex_LC*hab {xchart8 0 eq {(LC*hab) show} {(L*ChAB) show} ifelse } bind def /tex_LabC*h {xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse } bind def /indd {0 -50 rmoveto (d) show 0 50 rmoveto} bind def /inddk {0 -50 rmoveto (d,) show 0 50 rmoveto} bind def /inde {0 -50 rmoveto (d) show 0 50 rmoveto} bind def /indek {0 -50 rmoveto (d,) show 0 50 rmoveto} bind def /indab {0 -50 rmoveto xchart8 0 eq {(ab)} {(AB)} ifelse show 0 50 rmoveto} bind def /indabk {0 -50 rmoveto xchart8 0 eq {(ab,)} {(AB,)} ifelse show 0 50 rmoveto} bind def /indabd {0 -50 rmoveto xchart8 0 eq {(ab,d)} {(AB,d)} ifelse show 0 50 rmoveto} bind def /indabe {0 -50 rmoveto xchart8 0 eq {(ab,e)} {(AB,e)} ifelse show 0 50 rmoveto} bind def /indabN {0 -50 rmoveto xchart8 0 eq {(ab,N)} {(AB,N)} ifelse show 0 50 rmoveto} bind def /indabW {0 -50 rmoveto xchart8 0 eq {(ab,W)} {(AB,W)} ifelse show 0 50 rmoveto} bind def } bind def %END proz_out_text_ANW_definition %************************************************************** /nshow {TS show} bind def /kshow {TIS show} bind def /bshow {TBS show} bind def /jshow {TBIS show} bind def /ibshown {TBV -50 -50 rmoveto show 0 50 rmoveto TBS} bind def /ibshow0 {TBV -00 -50 rmoveto show 0 50 rmoveto TBS} bind def /ishown {TV -50 -50 rmoveto show 0 50 rmoveto TS } bind def /ishow0 {TV -00 -50 rmoveto show 0 50 rmoveto TS } bind def %40% kleiner /ns4 {250 /Times-ISOL1 FS show TK} bind def /ks4 {250 /TimesI-ISOL1 FS show TK} bind def /bs4 {250 /TimesB-ISOL1 FS show TK} bind def /js4 {250 /TimesBI-ISOL1 FS show TK} bind def /ss4 {250 /Symbol FS show TK} bind def /is4 {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /es4 {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ib4 {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eb4 {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ip4 {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /ns6 {200 /Times-ISOL1 FS show TS} bind def /ks6 {200 /TimesI-ISOL1 FS show TS} bind def /bs6 {200 /TimesB-ISOL1 FS show TS} bind def /js6 {200 /TimesBI-ISOL1 FS show TS} bind def /ss6 {200 /Symbol FS show TS} bind def /is6 {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /es6 {160 /Times-ISOL1 FS 0 100 rmoveto show 0 -100 rmoveto TS} bind def /ib6 {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eb6 {160 /TimesB-ISOL1 FS 0 100 rmoveto show 0 -100 rmoveto TS} bind def /ip6 {160 /Times-ISOL1 FS 24 24 rmoveto (\267) show 24 -24 rmoveto TS} bind /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 9 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 9 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 9 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 9 string cvs show} def /cvsshow1g {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show /nxx nxx abs def} if nxx 10 mul cvi /nxi exch def %nxi=991/990 nxi 10 idiv /nxa exch def %nxa=99 nxi nxa 10 mul sub /nxb exch def %nxb=1/0 nxa cvishow (,) show %nxa=99 nxb cvishow %nxb=1/0 } def /cvsshow2g {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show /nxx nxx abs def} if nxx 100 mul cvi /nxi exch def %nxi=9912/9902/00 nxi 100 idiv /nxa exch def %nxa=99 nxi nxa 100 mul sub /nxb exch def %nxb=12/02/00 nxa cvishow (,) show %nxb=99, nxb 10 ge {nxb cvishow} if %nxb=12 nxb 1 ge nxb 9 le and {(0) show nxb cvishow} if %nxb=02 nxb 0 eq {(00) show} if %nxb=00 } def /cvsshow3g {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show /nxx nxx abs def} if nxx 1000 mul cvi /nxi exch def %nxi=99123/99012/99001/99000 nxi 1000 idiv /nxa exch def %nxa=99 nxi nxa 1000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 100 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 10 ge nxb 99 le and {(0) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(00) show nxb cvishow} if %nxb=001 nxb 0 eq {(000) show} if %nxb=000 } def %%EndProlog gsave /lanind 0 def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind le {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind le {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind le {show} {pop} ifelse} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 0 def /lanind2 0 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop %/IMES IMES def } {/IMES 0 def} ifelse /xchartl 3 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 1 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 1 def %0: YN=0, 1: YN=0,0 ..2,5 ..40,3 /xchart6 2 def %0: Y10-1N, %1 Y10-2N, %2: Y10-3N to 8N /xchart7 7 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 0 def %0: LabC*h, 1: L*ABCh /xchart9 1 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AGM21-6N) show 72 90 translate 0.01 MM 0.01 MM scale 15 setlinewidth 1 setgray /xwide 6000 def /ywide 4000 def 0 0 moveto xwide 0 rlineto 0 ywide rlineto xwide neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwide 0 rlineto 0 ywide rlineto xwide neg 0 rlineto closepath stroke %produces XYZ*10 and XYZ*10n proz_sRGB_rgb*30X_definitions %uses XYZ*10 proz_XYZnw_D65_xchart7_definition 0 1 09 {/i exch def %i=0,09 /i100 i 5 mul def /i101 i100 1 add def /i102 i100 2 add def /i103 i100 3 add def /i104 i100 4 add def /Xaref XYZ*10 i100 get def /Yaref XYZ*10 i101 get def /Zaref XYZ*10 i102 get def %input XYZaref, output LChab*ref, same name in any case %output LabC*h (xchart8=0) or LABC*h (xchart8=1) proz_XYZ_LCh* LCh*10 i100 L*ref put LCh*10 i101 C*ref put LCh*10 i102 h*ref put LCh*10 i103 a*ref put LCh*10 i104 b*ref put LCh*10n i100 L*ref put %may be replaced LCh*10n i101 C*ref put LCh*10n i102 h*ref put LCh*10n i103 a*ref put LCh*10n i104 b*ref put xchart5 1 eq {%BEG xchart5=1 %XYZaref see above %input XYZ*10 %output XYZ*10n, LCh*10n proz_XYZ*10_XYZ*10n %calculates intermediate XYZ*10n /Xaref XYZ*10n i100 get def /Yaref XYZ*10n i101 get def /Zaref XYZ*10n i102 get def %input XYZaref, output LChab*ref, same name in any case %output LabC*h (xchart8=0) or LABC*h (xchart8=1) proz_XYZ_LCh* LCh*10n i100 L*ref put LCh*10n i101 C*ref put LCh*10n i102 h*ref put LCh*10n i103 a*ref put LCh*10n i104 b*ref put } if %xchart5=1 } for %i=0,09 %produces for hue circle and achromatic colours %XYZ*(ANW)_(ANW)n, LCh*(ANW)_(ANW)n with 5 components %rgb*(ANW)_(ANW)n, tex*(ANW)_(ANW)n with 3 components proz_out_text_ANW_definition %STOPC 0 setgray %Titeltext /xd 1550 def /yd 5000 def /xp 1550 def /yp 5000 def /xdN xd def /ydN yd 2000 sub def /xdW xd def /ydW yd def /xdR xd 2000 add def /ydR yd 1000 sub def /xm 2000 4 div def /xip xd xm 2 mul add def /yip ydN xm 2 mul add def /xi1 xd xm 1 mul sub def /yi1 ydW xm 0.5 mul sub def /xi2 xd xm 2 mul add def /yi2 ydN 400 sub def 50 3750 moveto TBIS xchart4 0 eq {(sRGB) show} if xchart4 1 eq {(WCGa) show} if xchart4 2 eq {(Offs) show} if xchart4 3 eq {(Ostw) show} if TBS (\255Farben (9stufig) mit ) showde ( colours (9 steps) with ) showen TBIS (L*(Ch)) show TBV indab TBS xchart8 0 eq {%xchart8=0 ( im CIELAB\255Farbraum) showde ( in the CIELAB\255colour space) showen} {%xchart8=1 ( im L*ABJND\255Farbraum) showde ( in L*ABJND\255colour space) showen} ifelse 0 3650 moveto 6000 0 rlineto stroke /xt3 0400 def /yt3 -2600 def xt3 yt3 translate /xfact 2000 100 div def /yfact 2000 100 div def /xpN xp def /ypN yp 2000 sub def /xpW xp def /ypW yp def /xpX xp 2000 add def /ypX yp 1000 sub def xpN 70 sub ypN moveto 3000 0 rlineto stroke %horizontal axis xpN 3000 add 100 sub ypN 050 sub moveto 100 050 rlineto -100 050 rlineto stroke xpN ypN 70 sub moveto 0 2400 rlineto stroke %vertical axis xpN 050 sub ypN 2250 add moveto 050 100 rlineto 050 -100 rlineto stroke xpN 050 sub ypN 300 sub moveto TBS (0) show xpN 250 sub ypN 50 sub moveto TBS (0) show xpN 1250 add ypN 250 sub moveto TBS xchart8 0 eq {(CIELAB chroma) showen (CIELAB\255Buntheit) showde} {(L*ABJND\255chromatic value) showen (L*ABJND\255Buntwert) showde} ifelse TBIS xchart8 0 eq {( C*) show}{( C) show} ifelse -50 0 rmoveto TBV indab xpN 900 sub ypN 2450 add moveto TBS (CIELAB ligthness) showen (CIELAB Helligkeit) showde TBIS ( L*) show TBS xpW ypW moveto 150 0 rlineto -50 50 rmoveto (100) show %Scale lightness xpX ypN 50 sub moveto 0 100 rlineto stroke xpX 150 sub ypN 100 add moveto (100) show %scale chroma /iout1 0 def iout1 1 eq {%iout1=1 xchart5 0 eq {%xchart5=0 newpath 0 setgray TX xpN 1900 sub ypN 2750 add moveto i cvishow (, L*NWXd,C*Xd,:) show L*Nd cvsshow2 (, ) show L*Wd cvsshow2 (, ) show L*Xd cvsshow2 (, ) show C*Xd cvsshow2 (, ) show xpN 1900 sub ypN 2600 add moveto i cvishow (, L*NWXd,C*Xd,:) show LCh*5N 0 get cvsshow2 (, ) show LCh*5W 0 get cvsshow2 (, ) show LCh*5A 0 get cvsshow2 (, ) show LCh*5A 1 get cvsshow2 (, ) show } if %xchart5=0 } if %iout1=1 0 setgray /xNd xp def %Nd /yNd ypN L*Nd yfact mul add def %Nd newpath xNd yNd 100 0 360 arc fill %STOPAA /xWd xp def %Wd /yWd ypN L*Wd yfact mul add def %Wd newpath xWd yWd 100 0 360 arc fill /xRd xp C*Xd xfact mul add def %Xd /yRd ypN L*Xd yfact mul add def newpath xRd yRd 100 0 360 arc fill newpath 0 setgray 20 setlinewidth newpath xNd yNd moveto xRd yRd lineto xWd yWd lineto stroke newpath 0 setgray /xm 2000 8 div def /ym 2000 8 div def /iout2 0 def iout2 1 eq {%iout2=1 newpath 0 setgray TX xpN 900 sub 2000 add ypN 2450 add 11 150 mul sub moveto (0: XYZ*5A: ) show i cvishow (, ) show XYZ*5A 0 get cvsshow2 (, ) show XYZ*5A 1 get cvsshow2 (, ) show XYZ*5A 2 get cvsshow2 (, ) show XYZ*5A 3 get cvsshow2 (, ) show XYZ*5A 4 get cvsshow2 (, ) show rgb*3A 0 get cvsshow2 (, ) show rgb*3A 1 get cvsshow2 (, ) show rgb*3A 2 get cvsshow2 (, ) show xpN 900 sub 2000 add ypN 2450 add 12 150 mul sub moveto (0: LCh*5A: ) show i cvishow (, ) show LCh*5A 0 get cvsshow2 (, ) show LCh*5A 1 get cvsshow2 (, ) show LCh*5A 2 get cvsshow2 (, ) show LCh*5A 3 get cvsshow2 (, ) show LCh*5A 4 get cvsshow2 (, ) show rgb*3A 0 get cvsshow2 (, ) show rgb*3A 1 get cvsshow2 (, ) show rgb*3A 2 get cvsshow2 (, ) show newpath xpN 900 sub 2000 add ypN 2450 add 13 150 mul sub moveto (0: XYZ*5An: ) show i cvishow (, ) show XYZ*5An 0 get cvsshow2 (, ) show XYZ*5An 1 get cvsshow2 (, ) show XYZ*5An 2 get cvsshow2 (, ) show XYZ*5An 3 get cvsshow2 (, ) show XYZ*5An 4 get cvsshow2 (, ) show rgb*3A 0 get cvsshow2 (, ) show rgb*3A 1 get cvsshow2 (, ) show rgb*3A 2 get cvsshow2 (, ) show xpN 900 sub 2000 add ypN 2450 add 14 150 mul sub moveto (0: LCh*5An: ) show i cvishow (, ) show LCh*5An 0 get cvsshow2 (, ) show LCh*5An 1 get cvsshow2 (, ) show LCh*5An 2 get cvsshow2 (, ) show LCh*5An 3 get cvsshow2 (, ) show LCh*5An 4 get cvsshow2 (, ) show rgb*3A 0 get cvsshow2 (, ) show rgb*3A 1 get cvsshow2 (, ) show rgb*3A 2 get cvsshow2 (, ) show newpath } if %iout2=1 /i450 -5 def 0 1 8 {/i exch def /xm 0 def /ym yWd yNd sub 8 div def /xi xNd xm i mul add def %NW /yi yNd ym i mul add def /w i 8 div def xchart7 0 eq {w w w setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 0 put LCh*45 i452 0 put LCh*45 i453 0 put LCh*45 i454 0 put rgb*45 i450 w put rgb*45 i451 w put rgb*45 i452 w put xchartl 0 eq {/r*m w def /g*m 0 def /b*m 0 def} if %N_R w 0 0 xchartl 1 eq {/r*m w def /g*m w def /b*m 0 def} if %N_Y w w 0 xchartl 2 eq {/r*m 0 def /g*m w def /b*m 0 def} if %N_G 0 w 0 xchartl 3 eq {/r*m 0 def /g*m w def /b*m w def} if %N_C 0 w w xchartl 4 eq {/r*m 0 def /g*m 0 def /b*m w def} if %N_B 0 0 w xchartl 5 eq {/r*m w def /g*m 0 def /b*m w def} if %N_M w 0 w xchartl 6 eq {/r*m w def /g*m 0 def /b*m 0 def} if %N_R w 0 0 i 4 eq {%i=4 %NW newpath 0 setgray xi 70 sub yi moveto 140 0 rlineto stroke xi yi 70 sub moveto 0 140 rlineto stroke %allways for NW xi 900 sub yi 100 add moveto TS (9 steps) showen (9 Stufen) showde newpath } if %i=4 /xm xRd xNd sub 8 div def /ym yRd yNd sub 8 div def /xi xNd xm i mul add def %NX /yi yNd ym i mul add def i 2 eq {%i=2 0 setgray xi 100 add yi 150 sub moveto TS (9 steps) showen (9 Stufen) showde newpath } if %i=2 /xm xRd xWd sub 8 div def /ym yWd yRd sub 8 div def /xi xRd xm i mul sub def %XW /yi yRd ym i mul add def i 6 eq {%i=6 0 setgray xi 100 add yi 050 add moveto TS (9 steps) showen (9 Stufen) showde newpath } if %i=6 } for 0 1 7 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 1 mul add def %NX /yi yNd ymr 1 mul add ymw i mul add def /r r*m 8 div 1 mul i 8 div add def /g g*m 8 div 1 mul i 8 div add def /b b*m 8 div 1 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 1 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 1 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put /iout3 0 def iout3 1 eq {%iout3=1 xchart5 0 eq {%xchart5=0 newpath 0 setgray TX xpN 900 sub 2000 add ypN 2850 add i 150 mul sub moveto (5=0 LCh*45 ) show i cvishow (, ) show LCh*45 i450 get cvsshow2 (, ) show LCh*45 i451 get cvsshow2 (, ) show LCh*45 i452 get cvsshow2 (, ) show LCh*45 i453 get cvsshow2 (, ) show LCh*45 i454 get cvsshow2 (, ) show rgb*45 i450 get cvsshow2 (, ) show rgb*45 i451 get cvsshow2 (, ) show rgb*45 i452 get cvsshow2 (, ) show newpath } if %xchart5=0 } if %iout3=1 } for 0 1 6 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 2 mul add def %NX /yi yNd ymr 2 mul add ymw i mul add def /r r*m 8 div 2 mul i 8 div add def /g g*m 8 div 2 mul i 8 div add def /b b*m 8 div 2 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 2 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 2 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put } for 0 1 5 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 3 mul add def %NX /yi yNd ymr 3 mul add ymw i mul add def /r r*m 8 div 3 mul i 8 div add def /g g*m 8 div 3 mul i 8 div add def /b b*m 8 div 3 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 3 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 3 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put } for 0 1 4 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 4 mul add def %NX /yi yNd ymr 4 mul add ymw i mul add def /r r*m 8 div 4 mul i 8 div add def /g g*m 8 div 4 mul i 8 div add def /b b*m 8 div 4 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 4 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 4 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put i 0 eq {%i=4 %NC newpath 0 setgray xi 70 sub yi moveto 140 0 rlineto stroke xi yi 70 sub moveto 0 140 rlineto stroke newpath } if %i=0 i 4 eq {%i=4 %WC newpath 0 setgray xi 70 sub yi moveto 140 0 rlineto stroke xi yi 70 sub moveto 0 140 rlineto stroke newpath } if %i=4 } for 0 1 3 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 5 mul add def %NX /yi yNd ymr 5 mul add ymw i mul add def /r r*m 8 div 5 mul i 8 div add def /g g*m 8 div 5 mul i 8 div add def /b b*m 8 div 5 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 5 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 5 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put } for 0 1 2 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 6 mul add def %NX /yi yNd ymr 6 mul add ymw i mul add def /r r*m 8 div 6 mul i 8 div add def /g g*m 8 div 6 mul i 8 div add def /b b*m 8 div 6 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 6 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 6 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put } for 0 1 1 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 7 mul add def %NX /yi yNd ymr 7 mul add ymw i mul add def /r r*m 8 div 7 mul i 8 div add def /g g*m 8 div 7 mul i 8 div add def /b b*m 8 div 7 mul i 8 div add def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 7 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 7 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put /iout4 0 def iout4 1 eq {%iout4=1 xchart5 0 eq {%xchart5=0 newpath 0 setgray TX xpN 900 sub 2000 add ypN 1500 add i 150 mul sub moveto (5=0 LCh*45 ) show i cvishow (, ) show LCh*45 i450 get cvsshow2 (, ) show LCh*45 i451 get cvsshow2 (, ) show LCh*45 i452 get cvsshow2 (, ) show LCh*45 i453 get cvsshow2 (, ) show LCh*45 i454 get cvsshow2 (, ) show rgb*45 i450 get cvsshow2 (, ) show rgb*45 i451 get cvsshow2 (, ) show rgb*45 i452 get cvsshow2 (, ) show newpath } if %xchart5=0 } if %iout4=1 } for 0 1 0 {/i exch def /xm xRd xNd sub 8 div def /ymr yRd yNd sub 8 div def /ymw yWd yNd sub 8 div def /xi xNd xm 8 mul add def %NX /yi yNd ymr 8 mul add ymw i mul add def /r r*m def /g g*m def /b b*m def xchart7 0 eq {r g b setrgbcolor xi yi 050 0 360 arc fill} {0 setgray xi yi 050 0 360 arc stroke} ifelse /i450 i450 5 add def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45 i450 L*Nd L*Xd L*Nd sub 8 8 div mul add L*Wd L*Nd sub i 8 div mul add put LCh*45 i451 LCh*5A 1 get 8 div 8 mul put LCh*45 i452 LCh*5A 2 get put LCh*45 i453 LCh*45 i451 get LCh*45 i452 get cos mul put LCh*45 i454 LCh*45 i451 get LCh*45 i452 get sin mul put rgb*45 i450 r put rgb*45 i451 g put rgb*45 i452 b put /iout5 0 def iout5 1 eq {%iout5=1 newpath 0 setgray TX xpN 900 sub 2000 add ypN 2450 add 16 150 mul sub moveto (5=0 1 LCh*45: ) show i cvishow (, ) show LCh*45 i450 get cvsshow2 (, ) show LCh*45 i451 get cvsshow2 (, ) show LCh*45 i452 get cvsshow2 (, ) show LCh*45 i453 get cvsshow2 (, ) show LCh*45 i454 get cvsshow2 (, ) show rgb*45 i450 get cvsshow2 (, ) show rgb*45 i451 get cvsshow2 (, ) show rgb*45 i452 get cvsshow2 (, ) show newpath } if %iout5=1 } for 0 1 44 {/i exch def %i=0,44 /i450 i 5 mul def /i451 i450 1 add def /i452 i450 2 add def /i453 i450 3 add def /i454 i450 4 add def LCh*45n i450 LCh*45 i450 get put LCh*45n i451 LCh*45 i451 get put LCh*45n i452 LCh*45 i452 get put LCh*45n i453 LCh*45 i453 get put LCh*45n i454 LCh*45 i454 get put %allways: xchart8=0 and 1 /L*ref LCh*45 i450 get def /C*ref LCh*45 i451 get def /h*ref LCh*45 i452 get def /a*ref LCh*45 i453 get def /b*ref LCh*45 i454 get def %input LCh*ref of LabC*h (xchart8=0) or L*ABCh (xchart8=1) %output XYZref, xyanref proz_LCh*_XYZ XYZ*45 i450 Xref put XYZ*45 i451 Yref put XYZ*45 i452 Zref put XYZ*45 i453 xanref put XYZ*45 i454 yanref put /iout6 0 def iout6 1 eq {%iout6=1 50 12000 i 150 mul sub moveto (5=0 LCh*ref, XYZref:) show i cvishow (, ) show L*ref cvsshow2g (, ) show C*ref cvsshow2g (, ) show h*ref cvsshow2g Xref cvsshow2g (, ) show Yref cvsshow2g (, ) show Zref cvsshow2g (, ) show } if %iout6=1 XYZ*45n i450 Xref put %will be replaced for xchart5=1 XYZ*45n i451 Yref put XYZ*45n i452 Zref put XYZ*45n i453 xanref put XYZ*45n i454 yanref put xchart5 1 eq {%BEG xchart5=1 %input XYZ*45, %output XYZ*45n proz_XYZ*45_XYZ*45n /Xaref XYZ*45n i450 get def /Yaref XYZ*45n i451 get def /Zaref XYZ*45n i452 get def %input XYZaref, output LChab*ref, same name in any case %output LabC*h (xchart8=0) or LABC*h (xchart8=1) proz_XYZ_LCh* LCh*45n i450 L*ref put LCh*45n i451 C*ref put LCh*45n i452 h*ref put LCh*45n i453 a*ref put LCh*45n i454 b*ref put /iout7 0 def iout7 1 eq {%iout7=1 i 4 eq {%i=4 TX -300 5650 moveto (5=1 A:) show Xnor cvsshow2g (, ) show Ynor cvsshow2g (, ) show Znor cvsshow2g (, ) show Xtref cvsshow2g (, ) show Ytref cvsshow2g (, ) show Ztref cvsshow2g (, ) show 0 1 4 {/m exch def %m=0,4 /m450 i450 m 5 mul sub def /m451 m450 1 add def /m452 m450 2 add def /m453 m450 3 add def /m454 m450 4 add def 1800 5650 m 150 mul sub moveto (5=1 B:) show i450 cvishow (, ) show XYZ*45 m450 get cvsshow2g (, ) show XYZ*45 m451 get cvsshow2g (, ) show XYZ*45 m452 get cvsshow2g (, ) show LCh*45 m450 get cvsshow2g (, ) show LCh*45 m451 get cvsshow2g (, ) show LCh*45 m452 get cvsshow2g (, ) show LCh*45 m453 get cvsshow2g (, ) show LCh*45 m454 get cvsshow2g %(, ) show XYZ*45n m450 get cvsshow2g (, ) show XYZ*45n m451 get cvsshow2g (, ) show XYZ*45n m452 get cvsshow2g (, ) show %LCh*45n m450 get cvsshow2g (, ) show %LCh*45n m451 get cvsshow2g (, ) show %LCh*45n m452 get cvsshow2g (, ) show %LCh*45n m453 get cvsshow2g (, ) show %LCh*45n m454 get cvsshow2g %(, ) show } for %m=0,4 } if %i=4 } if %iout7=1 /iout8 0 def iout8 1 eq {%iout8=1 i 44 eq {%i=44 1800 5650 5.1 150 mul sub moveto (5=1 C:) show i cvishow (, ) show i450 cvishow (, ) show XYZ*45 i450 get cvsshow2g (, ) show XYZ*45 i451 get cvsshow2g (, ) show XYZ*45 i452 get cvsshow2g (, ) show LCh*45 i450 get cvsshow2g (, ) show LCh*45 i451 get cvsshow2g (, ) show LCh*45 i452 get cvsshow2g (, ) show LCh*45 i453 get cvsshow2g (, ) show LCh*45 i454 get cvsshow2g (, ) show 1800 5650 6.1 150 mul sub moveto (5=1 D:) show i cvishow (, ) show i450 cvishow (, ) show XYZ*45n i450 get cvsshow2g (, ) show XYZ*45n i451 get cvsshow2g (, ) show XYZ*45n i452 get cvsshow2g (, ) show LCh*45n i450 get cvsshow2g (, ) show LCh*45n i451 get cvsshow2g (, ) show LCh*45n i452 get cvsshow2g (, ) show LCh*45n i453 get cvsshow2g (, ) show LCh*45n i454 get cvsshow2g (, ) show } if %i=44 } if %iout8=1 } if %xchart5=1 } for %i=0,44 %************************************ %STOPX %Plot of 45 colours %new LCh*45n and rgb*45n necessary newpath 0 1 44 {/i exch def %i=0,44 /xi xNd LCh*45n i 5 mul 1 add get xfact mul add def /yi yNd LCh*45n i 5 mul 0 add get yfact mul add def /r rgb*45 i 5 mul 0 add get def %5x45, NOT 3x45 /g rgb*45 i 5 mul 1 add get def /b rgb*45 i 5 mul 2 add get def r g b setrgbcolor xi yi 050 0 360 arc fill } for %i=0,44 %STOPE %***************************************************************** %complete text output 0 setgray %allways -350 6050 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto (N) show 0 40 rmoveto TS (=) show XYZ*45 1 get cvsshow1g TIS (, Y) show TV 0 -40 rmoveto (W) show 0 40 rmoveto TS (=) show XYZ*45 41 get cvsshow1g xchart5 1 eq {%xchart5=1 -350 5800 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto (Nn) show 0 40 rmoveto TS (=) show XYZ*45n 1 get cvsshow1g TIS (, Y) show TV 0 -40 rmoveto (Wn) show 0 40 rmoveto TS (=) show XYZ*45n 41 get cvsshow1g (, Y) show TV 0 -40 rmoveto xchart9 0 eq {(Wa) show}{(Za) show} ifelse 0 40 rmoveto TS xchart9 0 eq {(=88,6.) show}{(=18.) show} ifelse } if %xchart5=1 %definition of actual LCh*(N,W,A) xchart5 0 eq {%xchart5=0 0 1 4 {/i exch def %i=0,4 LCh*5Na i LCh*45 0 5 mul i add get put LCh*5Wa i LCh*45 8 5 mul i add get put LCh*5Aa i LCh*45 44 5 mul i add get put } for %i=0,4 } {%xchart5=1 0 1 4 {/i exch def %i=0,4 LCh*5Na i LCh*45n 0 5 mul i add get put LCh*5Wa i LCh*45n 8 5 mul i add get put LCh*5Aa i LCh*45n 44 5 mul i add get put } for %i=0,4 } ifelse %N 0 setgray xpN 1250 sub ypN 500 add moveto TBS tex*3N 0 get showde tex*3N 1 get showen TBS ( ) show tex*3N 2 get show TBV xchart5 1 eq {0 -40 rmoveto (n) show 0 40 rmoveto} if xpN 1900 sub ypN 250 add moveto TBIS (L*(Ch)) show TBV indabN xchart5 1 eq {(n) ib6} if TS (=) show LCh*5Na 0 get cvishow (, ) show LCh*5Na 1 get cvishow (, ) show (0) show xpN 1900 sub ypN 000 sub moveto TBIS (rgb*) show (N) ib6 xchart5 1 eq {(n) ib6} if TS (=) show rgb*3N 0 get cvishow (, ) show rgb*3N 1 get cvishow (, ) show rgb*3N 2 get cvishow %W 0 setgray xpN 1250 sub ypW 250 add moveto TBS tex*3W 0 get showde tex*3W 1 get showen TBS ( ) show tex*3W 2 get show TBV xchart5 1 eq {0 -40 rmoveto (n) show 0 40 rmoveto} if xpN 1900 sub ypW 000 add moveto TBIS (L*(Ch)) show TBV indabW xchart5 1 eq {(n) ib6} if TS (=) show LCh*5Wa 0 get cvishow (, ) show LCh*5Wa 1 get cvishow (, ) show (0) show xpN 1900 sub ypW 250 sub moveto TBIS (rgb*) show (W) is6 xchart5 1 eq {(n) ib6} if TS (=) show rgb*3W 0 get cvishow (, ) show rgb*3W 1 get cvishow (, ) show rgb*3W 2 get cvishow %(L*Ch)_yshift %xchartl %0:R %1:Y %2:G %3:C %4:B %5:M /L*Ch_yshif0 [ 700 -900 -1200 -1200 700 700] def /L*Ch_yshift [ 450 -650 -0950 -0950 450 450] def /rgb*_yshift [ 200 -400 -0700 -0700 200 200] def /tex*_yshift [ -50 -150 -0450 -0450 -50 -50] def xchart5 1 eq {%xchart6=1 6000 2650 sub yRd L*Ch_yshif0 xchartl get add moveto %max (L*(Ch) TBIS (L*(Ch)) show TBV indabk tex*3A 2 get ib6 %xchart5 1 eq {(n) ib6} if TS (=) show LCh*5A 0 get cvishow (, ) show LCh*5A 1 get cvishow (, ) show TBS LCh*5A 2 get cvishow } if %xchart5=1 6000 2650 sub yRd L*Ch_yshift xchartl get add moveto %max (L*(Ch) TBIS (L*(Ch)) show TBV indabk tex*3A 2 get ib6 xchart5 1 eq {(n) ib6} if TS (=) show LCh*5Aa 0 get cvishow (, ) show LCh*5Aa 1 get cvishow (, ) show TBS LCh*5Aa 2 get cvishow 6000 1700 sub yRd rgb*_yshift xchartl get add moveto %max (rgb*) TBIS (rgb*) show tex*3A 2 get ib6 xchart5 1 eq {(n) ib6} if TS (=) show rgb*3A 0 get cvishow (, ) show rgb*3A 1 get cvishow (, ) show rgb*3A 2 get cvishow 6000 1500 sub yRd tex*_yshift xchartl get add moveto %tex*3A (red...) TBS tex*3A 0 get showde tex*3A 1 get showen TBS ( ) show tex*3A 2 get show TBV xchart5 1 eq {0 -40 rmoveto (n) show 0 40 rmoveto} if xt3 neg yt3 neg translate showpage %grestore %%Trailer