%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/AEK3/AEK3L00XX.PS 20201101 %%BoundingBox: 14 08 828 584 /pdfmark where {pop} {userdict /pdfmark /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://farbe.li.tu-berlin.de/AEK3/AEK3.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:2020110112000) /ModDate (D:2020110112000) /DOCINFO pdfmark [ /View [ /Fit ] /DOCVIEW pdfmark %Y10E00NA.PS6 %line 20****************************************************** %BEG AEK3/OUTLIN10.PS Emty 20120301 %END AEK3/OUTLIN10.PS Emty 20120301 %BEG AEK3/OUTLIN1X.PS 20110801 %EMPTY %END AEK3/OUTLIN1X.PS 20110801 %BEG AEK3/OUTLIN1Y2.PS Emty 20101101 %END AEK3/OUTLIN1Y2.PS Emty 20101101 /BeginEPSF {% def % Prepare for EPS file /b4_Inc_state save def % Save state for cleanup /dict_count countdictstack def /op_count count 1 sub def % Count objects on op stack userdict begin % Make userdict current dict /showpage {} def 0 setgray 0 setlinecap 1 setlinewidth 0 setlinejoin 10 setmiterlimit [] 0 setdash newpath /languagelevel where % If level not equal to 1 then {pop languagelevel where % If level not equal to 1 then 1 ne {false setstrokeadjust false setoverprint } if } if } bind def /EndEPSF {% def % End for EPS file count op_count sub {pop} repeat countdictstack dict_count sub {end} repeat % Clean up dict stack b4_Inc_state restore } 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 % !AUSTAUSCH Times-Roman -> Times-Roman-ISOLatin1=Times-I /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 /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-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 /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-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 %ANFA CMYKDEF %CMYKDEA0 (A0=Standard-Drucker-CMYKDEF) 15.3.97 /tzac [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzam [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzay [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tzan [1.000 0.933 0.867 0.800 0.733 0.667 0.600 0.533 0.467 0.400 0.333 0.267 0.200 0.132 0.067 0.000 1.000 0.750 0.500 0.250 0.000] def /tza0 [0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000 0.000] def /tza1 [1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000 1.000] def %ENDE CMYKD /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfiLAB* %x y width heigth LAB* { setcolor rec fill} bind def /colrecstLAB* %x y width heigth LAB* { setcolor rec stroke} bind def /colrecficmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec fill} bind def /colrecstcmyn* %x y width heigth cmy0* or 000n* { setcmykcolor rec stroke} bind def /colrecfiw* %x y width heigth w* { setgray rec fill} bind def /colrecstw* %x y width heigth w* { setgray rec stroke} bind def /colrecfiolv* %x y width heigth olv* { setrgbcolor rec fill} bind def /colrecstolv* %x y width heigth olv* { setrgbcolor rec stroke} bind def /tzocmy0* {0.0 1.0 1.0 0.0} bind def %Reproduction colours /tzlcmy0* {1.0 0.0 1.0 0.0} bind def %cmyn* setcmykcolor /tzvcmy0* {1.0 1.0 0.0 0.0} bind def /tzccmy0* {1.0 0.0 0.0 0.0} bind def /tzmcmy0* {0.0 1.0 0.0 0.0} bind def /tzycmy0* {0.0 0.0 1.0 0.0} bind def /tzoolv* {1.0 0.0 0.0} bind def %Reproduction colours /tzlolv* {0.0 1.0 0.0} bind def %olv* setrgbcolor /tzvolv* {0.0 0.0 1.0} bind def /tzcolv* {0.0 1.0 1.0} bind def /tzmolv* {1.0 0.0 1.0} bind def /tzyolv* {1.0 1.0 0.0} bind def /tzoLAB* [53.34 72.46 50.66] def %Reproduction colours /tzlLAB* [84.93 -79.83 74.80] def %LAB* setcolor /tzvLAB* [32.20 24.88 -37.89] def /tzcLAB* [88.10 -44.88 -13.36] def /tzmLAB* [59.66 90.32 -19.65] def /tzyLAB* [93.76 -20.24 85.93] def /tzncmy0* {1.00 1.00 1.00 0.00} bind def %grey series /tzdcmy0* {0.75 0.75 0.75 0.00} bind def %cmy0* setcmykcolor /tzzcmy0* {0.50 0.50 0.50 0.00} bind def /tzhcmy0* {0.25 0.25 0.25 0.00} bind def /tzwcmy0* {0.00 0.00 0.00 0.00} bind def /tzn000n* {0.00 0.00 0.00 1.00} bind def %grey series 000n* /tzd000n* {0.00 0.00 0.00 0.75} bind def %000n* setcmykcolor /tzz000n* {0.00 0.00 0.00 0.50} bind def /tzh000n* {0.00 0.00 0.00 0.25} bind def /tzw000n* {0.00 0.00 0.00 0.00} bind def /tznw* {0.00} bind def %grey series /tzdw* {0.25} bind def %w* setgray /tzzw* {0.50} bind def /tzhw* {0.75} bind def /tzww* {1.00} bind def /tznolv* {0.00 0.00 0.00} bind def %grey series /tzdolv* {0.25 0.25 0.25} bind def %olv* setrgbcolor /tzzolv* {0.50 0.50 0.50} bind def /tzholv* {0.75 0.75 0.75} bind def /tzwolv* {1.00 1.00 1.00} bind def /tznLAB* [18.01 0.00 0.00] def %grey series /tzdLAB* [37.36 0.00 0.00] def %LAB* setcolor /tzzLAB* [56.71 0.00 0.00] def /tzhLAB* [76.06 0.00 0.00] def /tzwLAB* [95.41 0.00 0.00] def /tfn {0 setgray} bind def /tfw {1 setgray} bind def /A4quer {598 0 translate 90 rotate} 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 %%EndProlog %*********************************************************** %%BeginPageSetup /#copies 1 def %A4querF 1.0 1.0 scale /pgsave save def %%EndPageSetup /SS$ [(G) (E) (S) (F) (I) (J) (M)] def /SC$ [(N) (F) (S) (D) (T) (E) (C)] def /SX$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def /SY$ [(0) (1) (2) (3) (4) (5) (6) (7) (8) (9) (A) (B) (C) (D) (E) (F)] def % 0 1 2 3 4 5 % 6 7 8 /EX$ [(A.TXT /.PS) (B.BMP /.PS) (G.GIF /.PS) (H.HTM /.PS) (I.HTM /.PS) (J.JPE /.PS) (P.PDF /.PS) (T.TIF /.PS)] def /EY$ [(A.DAT) (B.DAT) (G.DAT) (H.DAT) (I.DAT) (J.DAT) (P.DAT) (T.DAT)] def %******************************************************************* /lanind1f 01 def /lanind2f 01 def /laninddf 01 def /lanindmf 01 def /colorm1f 00 def /colorm2f 00 def /colormdf 01 def /colormmf 01 def /deintp1f 00 def /deintp2f 00 def /deintpdf 01 def /deintpmf 01 def /xcolor1f 00 def /xcolor2f 00 def /xcolordf 01 def /xcolormf 01 def %2/10degree /xchart1f 00 def /xchart2f 00 def /xchartdf 01 def /xchartmf 01 def /xchart3f 01 def /xchart4f 00 def /xchart5f 00 def /pchart1f 00 def /pchart2f 00 def /pchartdf 01 def /pchartmf 01 def %=3:sRGB,Lr /colsep1f 00 def /colsep2f 00 def /colsepdf 01 def /colsepmf 01 def /pmetam1f 00 def /pmetam2f 00 def /pmetamdf 01 def /pmetammf 01 def %/lanindf lanind1f def % /lanindf lanind1f def %lanind1f laninddf lanind2f {/lanindf exch def %/colormf colorm1f def % /colormf colorm1f def %colorm1f colormdf colorm2f {/colormf exch def %/deintpf deintp1f def % /deintpf deintp1f def %deintp1f deintpdf deintp2f {/deintpf exch def %/xcolorf xcolor1f def % /xcolorf xcolor1f def %xcolor1f xcolordf xcolor2f {/xcolorf exch def %/xchartf xchart1f def % /xchartf xchart1f def %xchart1f xchartdf xchart2f {/xchartf exch def %/pchartf pchart1f def % /pchartf pchart1f def %/pchartf pchart1f def %pchart1f pchartdf pchart2f {/pchartf exch def %/colsepf colsep1f def % /colsepf colsep1f def %colsep1f colsepdf colsep2f {/colsepf exch def /lanind lanindf def /colorm colormf def /deintp deintpf def /xcolor xcolorf def /xchart xchartf def /xchartm xchart2f xchart1f sub 1 add def /xchart3 xchart3f def /xchart4 xchart4f def /pchart pchartf def /colsep colsepf def %/pmetamf pmetam1f def % /pmetamf pmetam1f def %pmetam1f pmetamdf pmetam2f {/pmetamf exch def /pmetam pmetamf def %************************************************************* %/setgray {sfgray} bind def %/setrgbcolor {sfrgbcolor} bind def %/setcmykcolor {sfcmykcolor} bind def %72 90 translate %0.01 MM dup scale %0 0 moveto 24600 0 rlineto 0 17220 rlineto % -24600 0 rlineto closepath stroke %000 -240 moveto %240 /Times-ISOL1 FS %lanindf cvishow (-) show %colormf cvishow %deintpf cvishow %xcolorf cvishow %xchartf cvishow %pchartf cvishow %colsepf cvishow (-F) show pmetamf cvishow %grestore gsave /GSS$ SS$ lanind get def /GSC$ SC$ colorm get def /GSX$ SX$ xcolor xcolor 16 idiv 16 mul sub get def /GSY$ SY$ xchart xchart 16 idiv 16 mul sub get def /GEX$ EX$ 0 get def /GEY$ EY$ 0 get def %01 %02 %03 %04 %05 %06 %07 %08 %09 %10 /12RN {12 /Times-Roman FS} bind def /10RN {10 /Times-Roman FS} bind def /12RI {12 /Times-Italic FS} bind def /10RI {10 /Times-Italic FS} bind def /12RB {12 /Times-Bold FS} bind def /10RB {10 /Times-Bold FS} bind def /12RBI {12 /Times-BoldItalic FS} bind def /10RBI {10 /Times-BoldItalic FS} bind def /12TN {12 /Times-ISOL1 FS} bind def /10TN {10 /Times-ISOL1 FS} bind def /12TI {12 /TimesI-ISOL1 FS} bind def /10TI {10 /TimesI-ISOL1 FS} bind def /12TB {12 /TimesB-ISOL1 FS} bind def /10TB {10 /TimesB-ISOL1 FS} bind def /12TBI {12 /TimesBI-ISOL1 FS} bind def /10TBI {10 /TimesBI-ISOL1 FS} bind def %gsave BeginEPSF 28 MM 197 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto 1 1 scale -77 -91 translate %%BeginDocument: Bild 10 %line 329 %%EndDocument EndEPSF grestore gsave /SHSl 2 def /SHAl 2 def BeginEPSF 28 SHSl sub MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto 1 1 scale -77 -91 translate %%BeginDocument: Bild 11 %line 339 %!PS-Adobe-3.0 EPSF-3.0 AEK30-1N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark01 where {pop} {userdict /pdfmark01 /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/AEK3/AEK3.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 pdfmark01 [ /View [ /Fit ] /DOCVIEW pdfmark01 %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*12 60 array def /XYZ*12 60 array def /LCh*12n 60 array def /XYZ*12n 60 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*12_XYZ*12n {%BEG proz_XYZ*12_XYZ*12n %for 10 colours %input XYZ*12, rgb*10 %output LCh*12n, rgb*10n %only for xchart5=1 and for 10 colours in 7 hue planes and achromatic %change XYZ*12 to XYZ*12n 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*12n i100 XYZ*12 i100 get Xnor sub Xfac1 mul Xnor add put XYZ*12n i101 XYZ*12 i101 get Ynor sub Yfac1 mul Ynor add put XYZ*12n i102 XYZ*12 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*12n i100 XYZ*12 i100 get Xfac2 mul Xtref add put XYZ*12n i101 XYZ*12 i101 get Yfac2 mul Ytref add put XYZ*12n i102 XYZ*12 i102 get Zfac2 mul Ztref add put } if %xchart9=0 } bind def %END proz_XYZ*12_XYZ*12n %**************************************************************** /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*36X_definitions {%BEG proz_sRGB_rgb*36X_definitions /XYZ*WCGa_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*sRGB_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*Ostw_d_0000_1000 36 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 N0 095.05 100.00 108.90 %8 W0 000.01 000.01 000.01 %9 N1 107.29 112.88 122.24 %10 W1 19.31 20.31 22.00 %11 Z1 ] def /XYZ*Offs_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /rgb*36X 36 array def /rgb*36X [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.00 0.00 0.00 %7 N0 1.00 1.00 1.00 %8 W0 0.00 0.00 0.00 %9 N1 1.13 1.13 1.13 %10 W1 0.18 0.18 0.18 %11 Z1 ] def /tex*36X 36 array def /tex*36X [(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 (Schwarz) (black) (N1) %9 (Wei\337) (white) (W1) %10 (Grau) (grey) (Z1) %11 ] def /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 0 1 11 {/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*12 i50 XYZ*sRGB_d_0000_0886 i30 get put XYZ*12 i51 XYZ*sRGB_d_0000_0886 i31 get put XYZ*12 i52 XYZ*sRGB_d_0000_0886 i32 get put } if %xchart4=0 xchart4 1 eq {%xchart4=1 XYZ*12 i50 XYZ*WCGa_d_0000_0886 i30 get put XYZ*12 i51 XYZ*WCGa_d_0000_0886 i31 get put XYZ*12 i52 XYZ*WCGa_d_0000_0886 i32 get put } if %xchart4=1 xchart4 2 eq {%xchart4=2 XYZ*12 i50 XYZ*Offs_d_0000_0886 i30 get put XYZ*12 i51 XYZ*Offs_d_0000_0886 i31 get put XYZ*12 i52 XYZ*Offs_d_0000_0886 i32 get put } if %xchart4=2 xchart4 3 eq {%xchart4=3 XYZ*12 i50 XYZ*Ostw_d_0000_1000 i30 get 0.8860 mul put XYZ*12 i51 XYZ*Ostw_d_0000_1000 i31 get 0.8860 mul put XYZ*12 i52 XYZ*Ostw_d_0000_1000 i32 get 0.8860 mul put } if %xchart4=3 /SUM XYZ*12 i50 get XYZ*12 i51 get add XYZ*12 i52 get add def XYZ*12 i53 XYZ*12 i50 get SUM div put XYZ*12 i54 XYZ*12 i51 get SUM div put %will be replaced, if xchart5=1 XYZ*12n i50 XYZ*12 i50 get put XYZ*12n i51 XYZ*12 i51 get put XYZ*12n i52 XYZ*12 i52 get put XYZ*12n i53 XYZ*12 i53 get put XYZ*12n i54 XYZ*12 i54 get put } for %i=0,11 } bind def %END proz_sRGB_rgb*36X_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*36X i3j get put tex*3A j tex*36X 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*12 i5j get put LCh*5A j LCh*12 i5j get put XYZ*5An j XYZ*12n i5j get put LCh*5An j LCh*12n i5j get put } for %j=0,4 0 1 2 {/i exch def %i=0,2 rgb*3N i rgb*36X i 21 add get put %8x3 tex*3N i tex*36X i 21 add get put rgb*3W i rgb*36X i 24 add get put %9x3 tex*3W i tex*36X i 24 add get put } for %i=0,2 0 1 4 {/i exch def %i=0,4 XYZ*5N i XYZ*12 i 35 add get put %8x5 LCh*5N i LCh*12 i 35 add get put XYZ*5W i XYZ*12 i 40 add get put %9x5 LCh*5W i LCh*12 i 40 add get put XYZ*5Nn i XYZ*12n i 35 add get put %8x5 LCh*5Nn i LCh*12n i 35 add get put XYZ*5Wn i XYZ*12n i 40 add get put %9x5 LCh*5Wn i LCh*12n 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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 def %0: YN=0, 1: YN=0,0 ..2,5 ..40,3 /xchart6 0 def %0: Y10-1N, %1 Y10-2N, %2: Y10-3N to 8N /xchart7 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-1N) 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*12 and XYZ*12n proz_sRGB_rgb*36X_definitions %uses XYZ*12 proz_XYZnw_D65_xchart7_definition 0 1 11 {/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*12 i100 get def /Yaref XYZ*12 i101 get def /Zaref XYZ*12 i102 get def % in any case defined proz_XYZ_LCh* LCh*12 i100 L*ref put LCh*12 i101 C*ref put LCh*12 i102 h*ref put LCh*12 i103 a*ref put LCh*12 i104 b*ref put LCh*12n i100 L*ref put %may be replaced LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put xchart5 1 eq {%BEG xchart5=1 %XYZaref see above %input XYZ*12 %output XYZ*12n, LCh*12n proz_XYZ*12_XYZ*12n %calculates intermediate XYZ*12n /Xaref XYZ*12n i100 get def /Yaref XYZ*12n i101 get def /Zaref XYZ*12n i102 get def %input XYZaref, output LChab*ref proz_XYZ_LCh* LCh*12n i100 L*ref put LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put } if %xchart5=1 } for %i=0,11 %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 /yt 300 def %y-Zeilenabstand for text /yd 400 def %y-Zeilenabstand for formula %Spalten /S1 100 def /S2 1500 def /S3 2300 def /S4 5900 def /S5 7700 def /S6 8500 def /yz 400 def /yu5 7600 def /yu4 7100 def /yu3 5800 def /yu2 5800 def /yu1 5800 def %******************************************************** xchart6 0 eq {%xchart6=0 table /xdXYZ 470 def /xdLab 570 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) show TBS (, and ) showen ( und ) showde TBIS tex_LabC*h 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 50 3400 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 TIS (, 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 /xt1 0000 def /yt1 0000 def xt1 yt1 translate /y01 3250 def /y02 2850 def /S10 020 def %colour /S20 0400 def %rgb /S30 0900 def %XYZ /S40 3300 def %LCh*ab 0 y01 moveto 6000 0 rlineto stroke 0 y02 100 sub moveto 6000 0 rlineto stroke 0 750 moveto 6000 0 rlineto stroke S20 50 sub y01 moveto S20 50 sub 0 lineto stroke S30 50 sub y01 moveto S30 50 sub 0 lineto stroke S40 50 sub y01 moveto S40 50 sub 0 lineto stroke TBV S30 y02 200 add moveto (CIEXYZ) show (\255Daten) showde ( data) showen S40 y02 200 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show /tex_XYZxy [(X) (Y) (Z) (x) (y)] def 0 1 4 {/k exch def %k=0,4 TBIV S30 k xdXYZ mul add y02 moveto tex_XYZxy k get show TBX S30 k xdXYZ mul add 080 add y02 moveto 0 -50 rmoveto (d) show 0 50 rmoveto } for %k=0,4 xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 120 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV S40 k xdLab mul add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2500 def /y0d 235 def 0 1 10 {/j exch def %j=0,9 colours without red twice /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /ydd 0 def i 8 gt {/ydd 0.2 y0d mul def} if S10 y03 j y0d mul sub ydd sub moveto tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub ydd sub moveto TBV i 8 le {%i<=7 rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow} {rgb*36X i30 get cvsshow2g} ifelse /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def 0 1 4 {/k exch def %k=0,4 TV S30 k xdXYZ mul add y03 j y0d mul sub ydd sub moveto k 0 eq {XYZ*12n i50 get cvsshow2g} if k 1 eq {XYZ*12n i51 get cvsshow2g} if k 2 eq {XYZ*12n i52 get cvsshow2g} if k 3 eq {XYZ*12n i53 get cvsshow3g} if k 4 eq {XYZ*12n i54 get cvsshow3g} if } for %k=0,4 0 1 4 {/k exch def %k=0,4 k 3 le {TV}{TBV} ifelse S40 k xdLab mul add y03 j y0d mul sub ydd sub moveto k 0 eq {LCh*12n i50 get cvsshow2g} if k 1 eq {LCh*12n i53 get cvsshow2g} if k 2 eq {LCh*12n i54 get cvsshow2g} if k 3 eq {LCh*12n i51 get cvsshow2g} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,10 xt1 neg yt1 neg translate } if %xchart6=0 table %********************************************************* xchart6 1 eq {%xchart6=1 hue circle /xdLab 300 def %HUE CIRCLE /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 /rgb*30Y 84 def %7x12 /rgb*30Y [1.00 0.00 0.00 %0 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 %1 Y 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 0.00 %2 G 0.00 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 %3 C 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 %4 B 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 1.00 %5 M 1.00 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 %6 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 ] def 50 3800 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) showde (, XYZxy) showen TBS (, and ) showen ( und ) showde TBIS xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBV 0 -40 rmoveto xchart8 0 eq {(ab)} {(AB)} ifelse show 0 40 rmoveto 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 3700 moveto 6000 0 rlineto stroke 50 3500 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 (, 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 /y01 3350 def /y02 3050 def /S10 020 def %colour /S20 0270 def %rgb /S40 0650 def %LCh*ab xchart8 0 eq {/S50 2600 def} {/S50 2150 def} ifelse %[X] TBV S40 y02 250 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show TBX -50 -50 rmoveto (d) show 50 50 rmoveto xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 100 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if S40 k xdLab mul add xdLabk add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add xdLabk add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2800 def /y0d 200 def 0 1 7 {/j exch def %j=0,8 9 colours /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def S10 y03 j y0d mul sub moveto TBV tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub moveto TBV rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow 0 1 4 {/k exch def %k=0,4 /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if k 4 lt {TV}{TBV} ifelse S40 k xdLab mul add xdLabk add y03 j y0d mul sub moveto k 0 eq {LCh*12n i50 get cvishow} if k 1 eq {LCh*12n i53 get dup -100 le {-50 0 rmoveto} if cvishow} if k 2 eq {LCh*12n i54 get dup -100 le {-50 0 rmoveto} if cvishow} if k 3 eq {LCh*12n i51 get cvishow} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,7 S10 y03 10.1 y0d mul sub moveto TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV xchart8 0 eq {( = 500 [\050) show} {( = 250 [) show} ifelse TBIV (X) show TBV ( / ) show TBIV (X) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 10.1 y0d mul sub moveto TBV xchart8 0 eq {([1a]) show} {([1b]) show} ifelse S10 y03 11.2 y0d mul sub moveto TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV xchart8 0 eq {( = 200 [\050) show} {( = 100 [) show} ifelse TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Z) show TBV ( / ) show TBIV (Z) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 11.2 y0d mul sub moveto TBV xchart8 0 eq {([2a]) show} {([2b]) show} ifelse S10 y03 12.4 y0d mul sub moveto TBIV (C) show TBIV xchart8 0 eq {(*) show} if TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = [ ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( + ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( ] ) show TBX 0 100 rmoveto (0,5) show 0 -100 rmoveto S50 y03 12.2 y0d mul sub moveto TBV xchart8 0 eq {([3a]) show} {([3b]) show} ifelse S10 y03 13.4 y0d mul sub moveto TBIV (h) show TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = atan [ ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV ( / ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV ( ]) show S50 y03 13.2 y0d mul sub moveto TBV xchart8 0 eq {([4a]) show} {([4b]) show} ifelse /xt2 2150 def /yt2 -2370 def xt2 yt2 translate 0 setgray xp 1450 sub yp 0750 add moveto /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 xchart8 0 eq {/xfact1 12 def /yfact1 12 def } { % /xfact1 12 mul 2.5 mul def % /yfact1 12 mul 2.5 mul def /xfact1 12 def /yfact1 12 def } ifelse /xp0 xp 0400 add def /yp0 yp 1000 sub def /xpN xp0 1000 sub def /ypN yp0 1000 sub def xp0 1900 sub yp0 0 sub moveto 3600 0 rlineto %horizontal axis & arrow -100 40 rlineto 100 -40 rlineto -100 -40 rlineto stroke xp0 0000 add yp0 1400 sub moveto 0 3100 rlineto %vertical axis & arrow -40 -100 rlineto 40 100 rlineto 40 -100 rlineto stroke xp0 1800 sub yp0 70 sub moveto 0 140 rlineto stroke %marks, horizontal axis xp0 1200 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 add yp0 70 sub moveto 0 140 rlineto stroke xp0 1200 add yp0 70 sub moveto 0 140 rlineto stroke xchart8 0 eq {%xchart8=0 /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } { % /scal_x [(-60) ( -40) ( -20) ( 20) ( 40)] def % /scal_y [( 40) (20) (-20) (-40) ] def /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } ifelse %xchart8=0 TV xp0 2000 sub yp0 220 sub moveto scal_x 0 get show %numbers, horizontal scale xp0 1400 sub yp0 220 sub moveto scal_x 1 get show xp0 0750 sub yp0 220 sub moveto scal_x 2 get show xp0 0400 add yp0 220 sub moveto scal_x 3 get show xp0 1000 add yp0 220 sub moveto scal_x 4 get show xp0 70 sub yp0 1200 add moveto 140 0 rlineto stroke %marks, vertical axis xp0 70 sub yp0 0600 add moveto 140 0 rlineto stroke xp0 70 sub yp0 0600 sub moveto 140 0 rlineto stroke xp0 70 sub yp0 1200 sub moveto 140 0 rlineto stroke xp0 100 add yp0 1150 add moveto scal_y 0 get show %numbers, vertical axis xp0 100 add yp0 0550 add moveto scal_y 1 get show xp0 100 add yp0 0650 sub moveto scal_y 2 get show xp0 100 add yp0 1250 sub moveto scal_y 3 get show TBIK xp0 0080 add yp0 1550 add moveto xchart8 0 eq {(b*) show} {(B) show} ifelse xp0 1550 add yp0 0120 add moveto xchart8 0 eq {(a*) show} {(A) show} ifelse 0.5 setgray xchart5 1 eq {%old hexagon 15 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def xi yi 0040 0 360 arc fill } for %i=0,6 } if %old hexagon 1 setgray 30 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 5 {/i exch def %i=0,5 1 1 3 {/k exch def %k=1,3 0 setgray /i34 i 12 mul k 3 mul add def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi0 xp0 LCh*12n i53 get xfact1 mul add def /yi0 yp0 LCh*12n i54 get yfact1 mul add def /xi1 xp0 LCh*12n i53 5 add get xfact1 mul add def /yi1 yp0 LCh*12n i54 5 add get yfact1 mul add def /xiM xi0 xi1 xi0 sub k 0.25 mul mul add def /yiM yi0 yi1 yi0 sub k 0.25 mul mul add def /r rgb*30Y i34 3 add get def /g rgb*30Y i34 4 add get def /b rgb*30Y i34 5 add get def r g b setrgbcolor xiM yiM 0050 0 360 arc fill } for %k=1,3 } for %i=0,5 newpath /xshift 6 array def /yshift 6 array def % R Y G C B M /xshift [-300 -100 -050 -100 -300 -030] def /yshift [-200 -300 200 -300 -200 -300] def 0 1 5 {/i exch def %i=0,5 0 setgray /i3 i 3 mul def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def xi yi 0100 0 360 arc fill /r rgb*36X i3 0 add get def /g rgb*36X i3 1 add get def /b rgb*36X i3 2 add get def r g b setrgbcolor xi yi 0050 0 360 arc fill newpath 0 setgray xi xshift i get add yi yshift i get add moveto tex*36X i 3 mul 2 add get show newpath } for %i=0,5 20 setlinewidth xt2 neg yt2 neg translate } if %xchart6=1 hue circle %******************************************************* showpage grestore %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 86 SHAl add MM 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 349 %!PS-Adobe-3.0 EPSF-3.0 AEK30-2N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark02 where {pop} {userdict /pdfmark02 /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/AEK3/AEK3.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 pdfmark02 [ /View [ /Fit ] /DOCVIEW pdfmark02 %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*12 60 array def /XYZ*12 60 array def /LCh*12n 60 array def /XYZ*12n 60 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*12_XYZ*12n {%BEG proz_XYZ*12_XYZ*12n %for 10 colours %input XYZ*12, rgb*10 %output LCh*12n, rgb*10n %only for xchart5=1 and for 10 colours in 7 hue planes and achromatic %change XYZ*12 to XYZ*12n 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*12n i100 XYZ*12 i100 get Xnor sub Xfac1 mul Xnor add put XYZ*12n i101 XYZ*12 i101 get Ynor sub Yfac1 mul Ynor add put XYZ*12n i102 XYZ*12 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*12n i100 XYZ*12 i100 get Xfac2 mul Xtref add put XYZ*12n i101 XYZ*12 i101 get Yfac2 mul Ytref add put XYZ*12n i102 XYZ*12 i102 get Zfac2 mul Ztref add put } if %xchart9=0 } bind def %END proz_XYZ*12_XYZ*12n %**************************************************************** /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*36X_definitions {%BEG proz_sRGB_rgb*36X_definitions /XYZ*WCGa_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*sRGB_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*Ostw_d_0000_1000 36 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 N0 095.05 100.00 108.90 %8 W0 000.01 000.01 000.01 %9 N1 107.29 112.88 122.24 %10 W1 19.31 20.31 22.00 %11 Z1 ] def /XYZ*Offs_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /rgb*36X 36 array def /rgb*36X [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.00 0.00 0.00 %7 N0 1.00 1.00 1.00 %8 W0 0.00 0.00 0.00 %9 N1 1.13 1.13 1.13 %10 W1 0.18 0.18 0.18 %11 Z1 ] def /tex*36X 36 array def /tex*36X [(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 (Schwarz) (black) (N1) %9 (Wei\337) (white) (W1) %10 (Grau) (grey) (Z1) %11 ] def /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 0 1 11 {/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*12 i50 XYZ*sRGB_d_0000_0886 i30 get put XYZ*12 i51 XYZ*sRGB_d_0000_0886 i31 get put XYZ*12 i52 XYZ*sRGB_d_0000_0886 i32 get put } if %xchart4=0 xchart4 1 eq {%xchart4=1 XYZ*12 i50 XYZ*WCGa_d_0000_0886 i30 get put XYZ*12 i51 XYZ*WCGa_d_0000_0886 i31 get put XYZ*12 i52 XYZ*WCGa_d_0000_0886 i32 get put } if %xchart4=1 xchart4 2 eq {%xchart4=2 XYZ*12 i50 XYZ*Offs_d_0000_0886 i30 get put XYZ*12 i51 XYZ*Offs_d_0000_0886 i31 get put XYZ*12 i52 XYZ*Offs_d_0000_0886 i32 get put } if %xchart4=2 xchart4 3 eq {%xchart4=3 XYZ*12 i50 XYZ*Ostw_d_0000_1000 i30 get 0.8860 mul put XYZ*12 i51 XYZ*Ostw_d_0000_1000 i31 get 0.8860 mul put XYZ*12 i52 XYZ*Ostw_d_0000_1000 i32 get 0.8860 mul put } if %xchart4=3 /SUM XYZ*12 i50 get XYZ*12 i51 get add XYZ*12 i52 get add def XYZ*12 i53 XYZ*12 i50 get SUM div put XYZ*12 i54 XYZ*12 i51 get SUM div put %will be replaced, if xchart5=1 XYZ*12n i50 XYZ*12 i50 get put XYZ*12n i51 XYZ*12 i51 get put XYZ*12n i52 XYZ*12 i52 get put XYZ*12n i53 XYZ*12 i53 get put XYZ*12n i54 XYZ*12 i54 get put } for %i=0,11 } bind def %END proz_sRGB_rgb*36X_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*36X i3j get put tex*3A j tex*36X 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*12 i5j get put LCh*5A j LCh*12 i5j get put XYZ*5An j XYZ*12n i5j get put LCh*5An j LCh*12n i5j get put } for %j=0,4 0 1 2 {/i exch def %i=0,2 rgb*3N i rgb*36X i 21 add get put %8x3 tex*3N i tex*36X i 21 add get put rgb*3W i rgb*36X i 24 add get put %9x3 tex*3W i tex*36X i 24 add get put } for %i=0,2 0 1 4 {/i exch def %i=0,4 XYZ*5N i XYZ*12 i 35 add get put %8x5 LCh*5N i LCh*12 i 35 add get put XYZ*5W i XYZ*12 i 40 add get put %9x5 LCh*5W i LCh*12 i 40 add get put XYZ*5Nn i XYZ*12n i 35 add get put %8x5 LCh*5Nn i LCh*12n i 35 add get put XYZ*5Wn i XYZ*12n i 40 add get put %9x5 LCh*5Wn i LCh*12n 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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 def %0: YN=0, 1: YN=0,0 ..2,5 ..40,3 /xchart6 1 def %0: Y10-1N, %1 Y10-2N, %2: Y10-3N to 8N /xchart7 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-2N) 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*12 and XYZ*12n proz_sRGB_rgb*36X_definitions %uses XYZ*12 proz_XYZnw_D65_xchart7_definition 0 1 11 {/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*12 i100 get def /Yaref XYZ*12 i101 get def /Zaref XYZ*12 i102 get def % in any case defined proz_XYZ_LCh* LCh*12 i100 L*ref put LCh*12 i101 C*ref put LCh*12 i102 h*ref put LCh*12 i103 a*ref put LCh*12 i104 b*ref put LCh*12n i100 L*ref put %may be replaced LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put xchart5 1 eq {%BEG xchart5=1 %XYZaref see above %input XYZ*12 %output XYZ*12n, LCh*12n proz_XYZ*12_XYZ*12n %calculates intermediate XYZ*12n /Xaref XYZ*12n i100 get def /Yaref XYZ*12n i101 get def /Zaref XYZ*12n i102 get def %input XYZaref, output LChab*ref proz_XYZ_LCh* LCh*12n i100 L*ref put LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put } if %xchart5=1 } for %i=0,11 %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 /yt 300 def %y-Zeilenabstand for text /yd 400 def %y-Zeilenabstand for formula %Spalten /S1 100 def /S2 1500 def /S3 2300 def /S4 5900 def /S5 7700 def /S6 8500 def /yz 400 def /yu5 7600 def /yu4 7100 def /yu3 5800 def /yu2 5800 def /yu1 5800 def %******************************************************** xchart6 0 eq {%xchart6=0 table /xdXYZ 470 def /xdLab 570 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) show TBS (, and ) showen ( und ) showde TBIS tex_LabC*h 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 50 3400 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 TIS (, 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 /xt1 0000 def /yt1 0000 def xt1 yt1 translate /y01 3250 def /y02 2850 def /S10 020 def %colour /S20 0400 def %rgb /S30 0900 def %XYZ /S40 3300 def %LCh*ab 0 y01 moveto 6000 0 rlineto stroke 0 y02 100 sub moveto 6000 0 rlineto stroke 0 750 moveto 6000 0 rlineto stroke S20 50 sub y01 moveto S20 50 sub 0 lineto stroke S30 50 sub y01 moveto S30 50 sub 0 lineto stroke S40 50 sub y01 moveto S40 50 sub 0 lineto stroke TBV S30 y02 200 add moveto (CIEXYZ) show (\255Daten) showde ( data) showen S40 y02 200 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show /tex_XYZxy [(X) (Y) (Z) (x) (y)] def 0 1 4 {/k exch def %k=0,4 TBIV S30 k xdXYZ mul add y02 moveto tex_XYZxy k get show TBX S30 k xdXYZ mul add 080 add y02 moveto 0 -50 rmoveto (d) show 0 50 rmoveto } for %k=0,4 xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 120 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV S40 k xdLab mul add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2500 def /y0d 235 def 0 1 10 {/j exch def %j=0,9 colours without red twice /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /ydd 0 def i 8 gt {/ydd 0.2 y0d mul def} if S10 y03 j y0d mul sub ydd sub moveto tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub ydd sub moveto TBV i 8 le {%i<=7 rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow} {rgb*36X i30 get cvsshow2g} ifelse /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def 0 1 4 {/k exch def %k=0,4 TV S30 k xdXYZ mul add y03 j y0d mul sub ydd sub moveto k 0 eq {XYZ*12n i50 get cvsshow2g} if k 1 eq {XYZ*12n i51 get cvsshow2g} if k 2 eq {XYZ*12n i52 get cvsshow2g} if k 3 eq {XYZ*12n i53 get cvsshow3g} if k 4 eq {XYZ*12n i54 get cvsshow3g} if } for %k=0,4 0 1 4 {/k exch def %k=0,4 k 3 le {TV}{TBV} ifelse S40 k xdLab mul add y03 j y0d mul sub ydd sub moveto k 0 eq {LCh*12n i50 get cvsshow2g} if k 1 eq {LCh*12n i53 get cvsshow2g} if k 2 eq {LCh*12n i54 get cvsshow2g} if k 3 eq {LCh*12n i51 get cvsshow2g} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,10 xt1 neg yt1 neg translate } if %xchart6=0 table %********************************************************* xchart6 1 eq {%xchart6=1 hue circle /xdLab 300 def %HUE CIRCLE /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 /rgb*30Y 84 def %7x12 /rgb*30Y [1.00 0.00 0.00 %0 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 %1 Y 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 0.00 %2 G 0.00 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 %3 C 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 %4 B 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 1.00 %5 M 1.00 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 %6 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 ] def 50 3800 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) showde (, XYZxy) showen TBS (, and ) showen ( und ) showde TBIS xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBV 0 -40 rmoveto xchart8 0 eq {(ab)} {(AB)} ifelse show 0 40 rmoveto 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 3700 moveto 6000 0 rlineto stroke 50 3500 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 (, 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 /y01 3350 def /y02 3050 def /S10 020 def %colour /S20 0270 def %rgb /S40 0650 def %LCh*ab xchart8 0 eq {/S50 2600 def} {/S50 2150 def} ifelse %[X] TBV S40 y02 250 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show TBX -50 -50 rmoveto (d) show 50 50 rmoveto xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 100 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if S40 k xdLab mul add xdLabk add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add xdLabk add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2800 def /y0d 200 def 0 1 7 {/j exch def %j=0,8 9 colours /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def S10 y03 j y0d mul sub moveto TBV tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub moveto TBV rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow 0 1 4 {/k exch def %k=0,4 /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if k 4 lt {TV}{TBV} ifelse S40 k xdLab mul add xdLabk add y03 j y0d mul sub moveto k 0 eq {LCh*12n i50 get cvishow} if k 1 eq {LCh*12n i53 get dup -100 le {-50 0 rmoveto} if cvishow} if k 2 eq {LCh*12n i54 get dup -100 le {-50 0 rmoveto} if cvishow} if k 3 eq {LCh*12n i51 get cvishow} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,7 S10 y03 10.1 y0d mul sub moveto TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV xchart8 0 eq {( = 500 [\050) show} {( = 250 [) show} ifelse TBIV (X) show TBV ( / ) show TBIV (X) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 10.1 y0d mul sub moveto TBV xchart8 0 eq {([1a]) show} {([1b]) show} ifelse S10 y03 11.2 y0d mul sub moveto TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV xchart8 0 eq {( = 200 [\050) show} {( = 100 [) show} ifelse TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Z) show TBV ( / ) show TBIV (Z) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 11.2 y0d mul sub moveto TBV xchart8 0 eq {([2a]) show} {([2b]) show} ifelse S10 y03 12.4 y0d mul sub moveto TBIV (C) show TBIV xchart8 0 eq {(*) show} if TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = [ ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( + ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( ] ) show TBX 0 100 rmoveto (0,5) show 0 -100 rmoveto S50 y03 12.2 y0d mul sub moveto TBV xchart8 0 eq {([3a]) show} {([3b]) show} ifelse S10 y03 13.4 y0d mul sub moveto TBIV (h) show TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = atan [ ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV ( / ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV ( ]) show S50 y03 13.2 y0d mul sub moveto TBV xchart8 0 eq {([4a]) show} {([4b]) show} ifelse /xt2 2150 def /yt2 -2370 def xt2 yt2 translate 0 setgray xp 1450 sub yp 0750 add moveto /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 xchart8 0 eq {/xfact1 12 def /yfact1 12 def } { % /xfact1 12 mul 2.5 mul def % /yfact1 12 mul 2.5 mul def /xfact1 12 def /yfact1 12 def } ifelse /xp0 xp 0400 add def /yp0 yp 1000 sub def /xpN xp0 1000 sub def /ypN yp0 1000 sub def xp0 1900 sub yp0 0 sub moveto 3600 0 rlineto %horizontal axis & arrow -100 40 rlineto 100 -40 rlineto -100 -40 rlineto stroke xp0 0000 add yp0 1400 sub moveto 0 3100 rlineto %vertical axis & arrow -40 -100 rlineto 40 100 rlineto 40 -100 rlineto stroke xp0 1800 sub yp0 70 sub moveto 0 140 rlineto stroke %marks, horizontal axis xp0 1200 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 add yp0 70 sub moveto 0 140 rlineto stroke xp0 1200 add yp0 70 sub moveto 0 140 rlineto stroke xchart8 0 eq {%xchart8=0 /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } { % /scal_x [(-60) ( -40) ( -20) ( 20) ( 40)] def % /scal_y [( 40) (20) (-20) (-40) ] def /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } ifelse %xchart8=0 TV xp0 2000 sub yp0 220 sub moveto scal_x 0 get show %numbers, horizontal scale xp0 1400 sub yp0 220 sub moveto scal_x 1 get show xp0 0750 sub yp0 220 sub moveto scal_x 2 get show xp0 0400 add yp0 220 sub moveto scal_x 3 get show xp0 1000 add yp0 220 sub moveto scal_x 4 get show xp0 70 sub yp0 1200 add moveto 140 0 rlineto stroke %marks, vertical axis xp0 70 sub yp0 0600 add moveto 140 0 rlineto stroke xp0 70 sub yp0 0600 sub moveto 140 0 rlineto stroke xp0 70 sub yp0 1200 sub moveto 140 0 rlineto stroke xp0 100 add yp0 1150 add moveto scal_y 0 get show %numbers, vertical axis xp0 100 add yp0 0550 add moveto scal_y 1 get show xp0 100 add yp0 0650 sub moveto scal_y 2 get show xp0 100 add yp0 1250 sub moveto scal_y 3 get show TBIK xp0 0080 add yp0 1550 add moveto xchart8 0 eq {(b*) show} {(B) show} ifelse xp0 1550 add yp0 0120 add moveto xchart8 0 eq {(a*) show} {(A) show} ifelse 0.5 setgray xchart5 1 eq {%old hexagon 15 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def xi yi 0040 0 360 arc fill } for %i=0,6 } if %old hexagon 1 setgray 30 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 5 {/i exch def %i=0,5 1 1 3 {/k exch def %k=1,3 0 setgray /i34 i 12 mul k 3 mul add def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi0 xp0 LCh*12n i53 get xfact1 mul add def /yi0 yp0 LCh*12n i54 get yfact1 mul add def /xi1 xp0 LCh*12n i53 5 add get xfact1 mul add def /yi1 yp0 LCh*12n i54 5 add get yfact1 mul add def /xiM xi0 xi1 xi0 sub k 0.25 mul mul add def /yiM yi0 yi1 yi0 sub k 0.25 mul mul add def /r rgb*30Y i34 3 add get def /g rgb*30Y i34 4 add get def /b rgb*30Y i34 5 add get def r g b setrgbcolor xiM yiM 0050 0 360 arc fill } for %k=1,3 } for %i=0,5 newpath /xshift 6 array def /yshift 6 array def % R Y G C B M /xshift [-300 -100 -050 -100 -300 -030] def /yshift [-200 -300 200 -300 -200 -300] def 0 1 5 {/i exch def %i=0,5 0 setgray /i3 i 3 mul def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def xi yi 0100 0 360 arc fill /r rgb*36X i3 0 add get def /g rgb*36X i3 1 add get def /b rgb*36X i3 2 add get def r g b setrgbcolor xi yi 0050 0 360 arc fill newpath 0 setgray xi xshift i get add yi yshift i get add moveto tex*36X i 3 mul 2 add get show newpath } for %i=0,5 20 setlinewidth xt2 neg yt2 neg translate } if %xchart6=1 hue circle %******************************************************* showpage grestore %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 28 SHSl sub MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 13 %line 359 %!PS-Adobe-3.0 EPSF-3.0 AEK30-3N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark03 where {pop} {userdict /pdfmark03 /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/AEK3/AEK3.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 pdfmark03 [ /View [ /Fit ] /DOCVIEW pdfmark03 %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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-3N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 SHAl add MM 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 14 %line 369 %!PS-Adobe-3.0 EPSF-3.0 AEK30-4N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark04 where {pop} {userdict /pdfmark04 /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/AEK3/AEK3.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 pdfmark04 [ /View [ /Fit ] /DOCVIEW pdfmark04 %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 1 def /lanind2 1 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 1 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-4N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 28 SHSl sub MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 15 %line 379 %!PS-Adobe-3.0 EPSF-3.0 AEK30-5N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark05 where {pop} {userdict /pdfmark05 /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/AEK3/AEK3.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 pdfmark05 [ /View [ /Fit ] /DOCVIEW pdfmark05 %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 1 def /lanind2 1 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 2 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-5N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 SHAl add MM 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 16 %line 389 %!PS-Adobe-3.0 EPSF-3.0 AEK30-6N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark06 where {pop} {userdict /pdfmark06 /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/AEK3/AEK3.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 pdfmark06 [ /View [ /Fit ] /DOCVIEW pdfmark06 %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 1 def /lanind2 1 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 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-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 %%EndDocument EndEPSF grestore gsave BeginEPSF /xc1 16 def /yc1 12 def /xt 1 def xchart 1 eq {/xt 1 def} if 28 SHSl sub MM 20 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 17 %line 399 %!PS-Adobe-3.0 EPSF-3.0 AEK30-7N %%BoundingBox: 70 85 243 206 %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: farbe.li.tu-berlin.de/AEK3/AEK3.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 pdfmark07 [ /View [ /Fit ] /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 /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 1 def /lanind2 1 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 4 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-7N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 86 SHAl add MM 020 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 18 %line 409 %!PS-Adobe-3.0 EPSF-3.0 AEK30-8N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark08 where {pop} {userdict /pdfmark08 /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/AEK3/AEK3.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 pdfmark08 [ /View [ /Fit ] /DOCVIEW pdfmark08 %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 1 def /lanind2 1 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 5 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 0 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 0 def %0 to 7: 8 contrast steps no. 1 to 8 according to ISO 9241-406 /xchart8 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK30-8N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 197 MM translate 10 /Times-ISOL1 FS 1 1 scale -77 -91 translate %%BeginDocument: Bild 12 %line 419 %%EndDocument EndEPSF grestore gsave /SHSr 2 MM def /SHAr 2 MM def BeginEPSF 161 MM 06 MM sub SHSr sub 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 21 %line 429 %!PS-Adobe-3.0 EPSF-3.0 AEK31-1N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark11 where {pop} {userdict /pdfmark11 /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/AEK3/AEK3.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 pdfmark11 [ /View [ /Fit ] /DOCVIEW pdfmark11 %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*12 60 array def /XYZ*12 60 array def /LCh*12n 60 array def /XYZ*12n 60 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*12_XYZ*12n {%BEG proz_XYZ*12_XYZ*12n %for 10 colours %input XYZ*12, rgb*10 %output LCh*12n, rgb*10n %only for xchart5=1 and for 10 colours in 7 hue planes and achromatic %change XYZ*12 to XYZ*12n 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*12n i100 XYZ*12 i100 get Xnor sub Xfac1 mul Xnor add put XYZ*12n i101 XYZ*12 i101 get Ynor sub Yfac1 mul Ynor add put XYZ*12n i102 XYZ*12 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*12n i100 XYZ*12 i100 get Xfac2 mul Xtref add put XYZ*12n i101 XYZ*12 i101 get Yfac2 mul Ytref add put XYZ*12n i102 XYZ*12 i102 get Zfac2 mul Ztref add put } if %xchart9=0 } bind def %END proz_XYZ*12_XYZ*12n %**************************************************************** /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*36X_definitions {%BEG proz_sRGB_rgb*36X_definitions /XYZ*WCGa_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*sRGB_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*Ostw_d_0000_1000 36 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 N0 095.05 100.00 108.90 %8 W0 000.01 000.01 000.01 %9 N1 107.29 112.88 122.24 %10 W1 19.31 20.31 22.00 %11 Z1 ] def /XYZ*Offs_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /rgb*36X 36 array def /rgb*36X [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.00 0.00 0.00 %7 N0 1.00 1.00 1.00 %8 W0 0.00 0.00 0.00 %9 N1 1.13 1.13 1.13 %10 W1 0.18 0.18 0.18 %11 Z1 ] def /tex*36X 36 array def /tex*36X [(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 (Schwarz) (black) (N1) %9 (Wei\337) (white) (W1) %10 (Grau) (grey) (Z1) %11 ] def /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 0 1 11 {/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*12 i50 XYZ*sRGB_d_0000_0886 i30 get put XYZ*12 i51 XYZ*sRGB_d_0000_0886 i31 get put XYZ*12 i52 XYZ*sRGB_d_0000_0886 i32 get put } if %xchart4=0 xchart4 1 eq {%xchart4=1 XYZ*12 i50 XYZ*WCGa_d_0000_0886 i30 get put XYZ*12 i51 XYZ*WCGa_d_0000_0886 i31 get put XYZ*12 i52 XYZ*WCGa_d_0000_0886 i32 get put } if %xchart4=1 xchart4 2 eq {%xchart4=2 XYZ*12 i50 XYZ*Offs_d_0000_0886 i30 get put XYZ*12 i51 XYZ*Offs_d_0000_0886 i31 get put XYZ*12 i52 XYZ*Offs_d_0000_0886 i32 get put } if %xchart4=2 xchart4 3 eq {%xchart4=3 XYZ*12 i50 XYZ*Ostw_d_0000_1000 i30 get 0.8860 mul put XYZ*12 i51 XYZ*Ostw_d_0000_1000 i31 get 0.8860 mul put XYZ*12 i52 XYZ*Ostw_d_0000_1000 i32 get 0.8860 mul put } if %xchart4=3 /SUM XYZ*12 i50 get XYZ*12 i51 get add XYZ*12 i52 get add def XYZ*12 i53 XYZ*12 i50 get SUM div put XYZ*12 i54 XYZ*12 i51 get SUM div put %will be replaced, if xchart5=1 XYZ*12n i50 XYZ*12 i50 get put XYZ*12n i51 XYZ*12 i51 get put XYZ*12n i52 XYZ*12 i52 get put XYZ*12n i53 XYZ*12 i53 get put XYZ*12n i54 XYZ*12 i54 get put } for %i=0,11 } bind def %END proz_sRGB_rgb*36X_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*36X i3j get put tex*3A j tex*36X 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*12 i5j get put LCh*5A j LCh*12 i5j get put XYZ*5An j XYZ*12n i5j get put LCh*5An j LCh*12n i5j get put } for %j=0,4 0 1 2 {/i exch def %i=0,2 rgb*3N i rgb*36X i 21 add get put %8x3 tex*3N i tex*36X i 21 add get put rgb*3W i rgb*36X i 24 add get put %9x3 tex*3W i tex*36X i 24 add get put } for %i=0,2 0 1 4 {/i exch def %i=0,4 XYZ*5N i XYZ*12 i 35 add get put %8x5 LCh*5N i LCh*12 i 35 add get put XYZ*5W i XYZ*12 i 40 add get put %9x5 LCh*5W i LCh*12 i 40 add get put XYZ*5Nn i XYZ*12n i 35 add get put %8x5 LCh*5Nn i LCh*12n i 35 add get put XYZ*5Wn i XYZ*12n i 40 add get put %9x5 LCh*5Wn i LCh*12n 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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 1 def %0: YN=0, 1: YN=0,0 ..2,5 ..40,3 /xchart6 0 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-1N) 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*12 and XYZ*12n proz_sRGB_rgb*36X_definitions %uses XYZ*12 proz_XYZnw_D65_xchart7_definition 0 1 11 {/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*12 i100 get def /Yaref XYZ*12 i101 get def /Zaref XYZ*12 i102 get def % in any case defined proz_XYZ_LCh* LCh*12 i100 L*ref put LCh*12 i101 C*ref put LCh*12 i102 h*ref put LCh*12 i103 a*ref put LCh*12 i104 b*ref put LCh*12n i100 L*ref put %may be replaced LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put xchart5 1 eq {%BEG xchart5=1 %XYZaref see above %input XYZ*12 %output XYZ*12n, LCh*12n proz_XYZ*12_XYZ*12n %calculates intermediate XYZ*12n /Xaref XYZ*12n i100 get def /Yaref XYZ*12n i101 get def /Zaref XYZ*12n i102 get def %input XYZaref, output LChab*ref proz_XYZ_LCh* LCh*12n i100 L*ref put LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put } if %xchart5=1 } for %i=0,11 %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 /yt 300 def %y-Zeilenabstand for text /yd 400 def %y-Zeilenabstand for formula %Spalten /S1 100 def /S2 1500 def /S3 2300 def /S4 5900 def /S5 7700 def /S6 8500 def /yz 400 def /yu5 7600 def /yu4 7100 def /yu3 5800 def /yu2 5800 def /yu1 5800 def %******************************************************** xchart6 0 eq {%xchart6=0 table /xdXYZ 470 def /xdLab 570 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) show TBS (, and ) showen ( und ) showde TBIS tex_LabC*h 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 50 3400 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 TIS (, 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 /xt1 0000 def /yt1 0000 def xt1 yt1 translate /y01 3250 def /y02 2850 def /S10 020 def %colour /S20 0400 def %rgb /S30 0900 def %XYZ /S40 3300 def %LCh*ab 0 y01 moveto 6000 0 rlineto stroke 0 y02 100 sub moveto 6000 0 rlineto stroke 0 750 moveto 6000 0 rlineto stroke S20 50 sub y01 moveto S20 50 sub 0 lineto stroke S30 50 sub y01 moveto S30 50 sub 0 lineto stroke S40 50 sub y01 moveto S40 50 sub 0 lineto stroke TBV S30 y02 200 add moveto (CIEXYZ) show (\255Daten) showde ( data) showen S40 y02 200 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show /tex_XYZxy [(X) (Y) (Z) (x) (y)] def 0 1 4 {/k exch def %k=0,4 TBIV S30 k xdXYZ mul add y02 moveto tex_XYZxy k get show TBX S30 k xdXYZ mul add 080 add y02 moveto 0 -50 rmoveto (d) show 0 50 rmoveto } for %k=0,4 xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 120 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV S40 k xdLab mul add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2500 def /y0d 235 def 0 1 10 {/j exch def %j=0,9 colours without red twice /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /ydd 0 def i 8 gt {/ydd 0.2 y0d mul def} if S10 y03 j y0d mul sub ydd sub moveto tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub ydd sub moveto TBV i 8 le {%i<=7 rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow} {rgb*36X i30 get cvsshow2g} ifelse /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def 0 1 4 {/k exch def %k=0,4 TV S30 k xdXYZ mul add y03 j y0d mul sub ydd sub moveto k 0 eq {XYZ*12n i50 get cvsshow2g} if k 1 eq {XYZ*12n i51 get cvsshow2g} if k 2 eq {XYZ*12n i52 get cvsshow2g} if k 3 eq {XYZ*12n i53 get cvsshow3g} if k 4 eq {XYZ*12n i54 get cvsshow3g} if } for %k=0,4 0 1 4 {/k exch def %k=0,4 k 3 le {TV}{TBV} ifelse S40 k xdLab mul add y03 j y0d mul sub ydd sub moveto k 0 eq {LCh*12n i50 get cvsshow2g} if k 1 eq {LCh*12n i53 get cvsshow2g} if k 2 eq {LCh*12n i54 get cvsshow2g} if k 3 eq {LCh*12n i51 get cvsshow2g} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,10 xt1 neg yt1 neg translate } if %xchart6=0 table %********************************************************* xchart6 1 eq {%xchart6=1 hue circle /xdLab 300 def %HUE CIRCLE /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 /rgb*30Y 84 def %7x12 /rgb*30Y [1.00 0.00 0.00 %0 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 %1 Y 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 0.00 %2 G 0.00 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 %3 C 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 %4 B 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 1.00 %5 M 1.00 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 %6 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 ] def 50 3800 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) showde (, XYZxy) showen TBS (, and ) showen ( und ) showde TBIS xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBV 0 -40 rmoveto xchart8 0 eq {(ab)} {(AB)} ifelse show 0 40 rmoveto 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 3700 moveto 6000 0 rlineto stroke 50 3500 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 (, 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 /y01 3350 def /y02 3050 def /S10 020 def %colour /S20 0270 def %rgb /S40 0650 def %LCh*ab xchart8 0 eq {/S50 2600 def} {/S50 2150 def} ifelse %[X] TBV S40 y02 250 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show TBX -50 -50 rmoveto (d) show 50 50 rmoveto xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 100 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if S40 k xdLab mul add xdLabk add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add xdLabk add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2800 def /y0d 200 def 0 1 7 {/j exch def %j=0,8 9 colours /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def S10 y03 j y0d mul sub moveto TBV tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub moveto TBV rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow 0 1 4 {/k exch def %k=0,4 /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if k 4 lt {TV}{TBV} ifelse S40 k xdLab mul add xdLabk add y03 j y0d mul sub moveto k 0 eq {LCh*12n i50 get cvishow} if k 1 eq {LCh*12n i53 get dup -100 le {-50 0 rmoveto} if cvishow} if k 2 eq {LCh*12n i54 get dup -100 le {-50 0 rmoveto} if cvishow} if k 3 eq {LCh*12n i51 get cvishow} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,7 S10 y03 10.1 y0d mul sub moveto TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV xchart8 0 eq {( = 500 [\050) show} {( = 250 [) show} ifelse TBIV (X) show TBV ( / ) show TBIV (X) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 10.1 y0d mul sub moveto TBV xchart8 0 eq {([1a]) show} {([1b]) show} ifelse S10 y03 11.2 y0d mul sub moveto TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV xchart8 0 eq {( = 200 [\050) show} {( = 100 [) show} ifelse TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Z) show TBV ( / ) show TBIV (Z) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 11.2 y0d mul sub moveto TBV xchart8 0 eq {([2a]) show} {([2b]) show} ifelse S10 y03 12.4 y0d mul sub moveto TBIV (C) show TBIV xchart8 0 eq {(*) show} if TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = [ ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( + ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( ] ) show TBX 0 100 rmoveto (0,5) show 0 -100 rmoveto S50 y03 12.2 y0d mul sub moveto TBV xchart8 0 eq {([3a]) show} {([3b]) show} ifelse S10 y03 13.4 y0d mul sub moveto TBIV (h) show TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = atan [ ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV ( / ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV ( ]) show S50 y03 13.2 y0d mul sub moveto TBV xchart8 0 eq {([4a]) show} {([4b]) show} ifelse /xt2 2150 def /yt2 -2370 def xt2 yt2 translate 0 setgray xp 1450 sub yp 0750 add moveto /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 xchart8 0 eq {/xfact1 12 def /yfact1 12 def } { % /xfact1 12 mul 2.5 mul def % /yfact1 12 mul 2.5 mul def /xfact1 12 def /yfact1 12 def } ifelse /xp0 xp 0400 add def /yp0 yp 1000 sub def /xpN xp0 1000 sub def /ypN yp0 1000 sub def xp0 1900 sub yp0 0 sub moveto 3600 0 rlineto %horizontal axis & arrow -100 40 rlineto 100 -40 rlineto -100 -40 rlineto stroke xp0 0000 add yp0 1400 sub moveto 0 3100 rlineto %vertical axis & arrow -40 -100 rlineto 40 100 rlineto 40 -100 rlineto stroke xp0 1800 sub yp0 70 sub moveto 0 140 rlineto stroke %marks, horizontal axis xp0 1200 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 add yp0 70 sub moveto 0 140 rlineto stroke xp0 1200 add yp0 70 sub moveto 0 140 rlineto stroke xchart8 0 eq {%xchart8=0 /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } { % /scal_x [(-60) ( -40) ( -20) ( 20) ( 40)] def % /scal_y [( 40) (20) (-20) (-40) ] def /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } ifelse %xchart8=0 TV xp0 2000 sub yp0 220 sub moveto scal_x 0 get show %numbers, horizontal scale xp0 1400 sub yp0 220 sub moveto scal_x 1 get show xp0 0750 sub yp0 220 sub moveto scal_x 2 get show xp0 0400 add yp0 220 sub moveto scal_x 3 get show xp0 1000 add yp0 220 sub moveto scal_x 4 get show xp0 70 sub yp0 1200 add moveto 140 0 rlineto stroke %marks, vertical axis xp0 70 sub yp0 0600 add moveto 140 0 rlineto stroke xp0 70 sub yp0 0600 sub moveto 140 0 rlineto stroke xp0 70 sub yp0 1200 sub moveto 140 0 rlineto stroke xp0 100 add yp0 1150 add moveto scal_y 0 get show %numbers, vertical axis xp0 100 add yp0 0550 add moveto scal_y 1 get show xp0 100 add yp0 0650 sub moveto scal_y 2 get show xp0 100 add yp0 1250 sub moveto scal_y 3 get show TBIK xp0 0080 add yp0 1550 add moveto xchart8 0 eq {(b*) show} {(B) show} ifelse xp0 1550 add yp0 0120 add moveto xchart8 0 eq {(a*) show} {(A) show} ifelse 0.5 setgray xchart5 1 eq {%old hexagon 15 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def xi yi 0040 0 360 arc fill } for %i=0,6 } if %old hexagon 1 setgray 30 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 5 {/i exch def %i=0,5 1 1 3 {/k exch def %k=1,3 0 setgray /i34 i 12 mul k 3 mul add def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi0 xp0 LCh*12n i53 get xfact1 mul add def /yi0 yp0 LCh*12n i54 get yfact1 mul add def /xi1 xp0 LCh*12n i53 5 add get xfact1 mul add def /yi1 yp0 LCh*12n i54 5 add get yfact1 mul add def /xiM xi0 xi1 xi0 sub k 0.25 mul mul add def /yiM yi0 yi1 yi0 sub k 0.25 mul mul add def /r rgb*30Y i34 3 add get def /g rgb*30Y i34 4 add get def /b rgb*30Y i34 5 add get def r g b setrgbcolor xiM yiM 0050 0 360 arc fill } for %k=1,3 } for %i=0,5 newpath /xshift 6 array def /yshift 6 array def % R Y G C B M /xshift [-300 -100 -050 -100 -300 -030] def /yshift [-200 -300 200 -300 -200 -300] def 0 1 5 {/i exch def %i=0,5 0 setgray /i3 i 3 mul def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def xi yi 0100 0 360 arc fill /r rgb*36X i3 0 add get def /g rgb*36X i3 1 add get def /b rgb*36X i3 2 add get def r g b setrgbcolor xi yi 0050 0 360 arc fill newpath 0 setgray xi xshift i get add yi yshift i get add moveto tex*36X i 3 mul 2 add get show newpath } for %i=0,5 20 setlinewidth xt2 neg yt2 neg translate } if %xchart6=1 hue circle %******************************************************* showpage grestore %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 06 MM sub SHAr add 152 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 22 %line 439 %!PS-Adobe-3.0 EPSF-3.0 AEK31-2N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark12 where {pop} {userdict /pdfmark12 /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/AEK3/AEK3.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 pdfmark12 [ /View [ /Fit ] /DOCVIEW pdfmark12 %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*12 60 array def /XYZ*12 60 array def /LCh*12n 60 array def /XYZ*12n 60 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*12_XYZ*12n {%BEG proz_XYZ*12_XYZ*12n %for 10 colours %input XYZ*12, rgb*10 %output LCh*12n, rgb*10n %only for xchart5=1 and for 10 colours in 7 hue planes and achromatic %change XYZ*12 to XYZ*12n 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*12n i100 XYZ*12 i100 get Xnor sub Xfac1 mul Xnor add put XYZ*12n i101 XYZ*12 i101 get Ynor sub Yfac1 mul Ynor add put XYZ*12n i102 XYZ*12 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*12n i100 XYZ*12 i100 get Xfac2 mul Xtref add put XYZ*12n i101 XYZ*12 i101 get Yfac2 mul Ytref add put XYZ*12n i102 XYZ*12 i102 get Zfac2 mul Ztref add put } if %xchart9=0 } bind def %END proz_XYZ*12_XYZ*12n %**************************************************************** /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*36X_definitions {%BEG proz_sRGB_rgb*36X_definitions /XYZ*WCGa_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*sRGB_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /XYZ*Ostw_d_0000_1000 36 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 N0 095.05 100.00 108.90 %8 W0 000.01 000.01 000.01 %9 N1 107.29 112.88 122.24 %10 W1 19.31 20.31 22.00 %11 Z1 ] def /XYZ*Offs_d_0000_0886 36 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 N0 084.21 088.60 096.48 %8 W0 000.01 000.01 000.01 %9 N1 095.05 100.00 108.90 %10 W1 017.11 18.00 19.60 %11 Z1 ] def /rgb*36X 36 array def /rgb*36X [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.00 0.00 0.00 %7 N0 1.00 1.00 1.00 %8 W0 0.00 0.00 0.00 %9 N1 1.13 1.13 1.13 %10 W1 0.18 0.18 0.18 %11 Z1 ] def /tex*36X 36 array def /tex*36X [(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 (Schwarz) (black) (N1) %9 (Wei\337) (white) (W1) %10 (Grau) (grey) (Z1) %11 ] def /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 0 1 11 {/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*12 i50 XYZ*sRGB_d_0000_0886 i30 get put XYZ*12 i51 XYZ*sRGB_d_0000_0886 i31 get put XYZ*12 i52 XYZ*sRGB_d_0000_0886 i32 get put } if %xchart4=0 xchart4 1 eq {%xchart4=1 XYZ*12 i50 XYZ*WCGa_d_0000_0886 i30 get put XYZ*12 i51 XYZ*WCGa_d_0000_0886 i31 get put XYZ*12 i52 XYZ*WCGa_d_0000_0886 i32 get put } if %xchart4=1 xchart4 2 eq {%xchart4=2 XYZ*12 i50 XYZ*Offs_d_0000_0886 i30 get put XYZ*12 i51 XYZ*Offs_d_0000_0886 i31 get put XYZ*12 i52 XYZ*Offs_d_0000_0886 i32 get put } if %xchart4=2 xchart4 3 eq {%xchart4=3 XYZ*12 i50 XYZ*Ostw_d_0000_1000 i30 get 0.8860 mul put XYZ*12 i51 XYZ*Ostw_d_0000_1000 i31 get 0.8860 mul put XYZ*12 i52 XYZ*Ostw_d_0000_1000 i32 get 0.8860 mul put } if %xchart4=3 /SUM XYZ*12 i50 get XYZ*12 i51 get add XYZ*12 i52 get add def XYZ*12 i53 XYZ*12 i50 get SUM div put XYZ*12 i54 XYZ*12 i51 get SUM div put %will be replaced, if xchart5=1 XYZ*12n i50 XYZ*12 i50 get put XYZ*12n i51 XYZ*12 i51 get put XYZ*12n i52 XYZ*12 i52 get put XYZ*12n i53 XYZ*12 i53 get put XYZ*12n i54 XYZ*12 i54 get put } for %i=0,11 } bind def %END proz_sRGB_rgb*36X_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*36X i3j get put tex*3A j tex*36X 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*12 i5j get put LCh*5A j LCh*12 i5j get put XYZ*5An j XYZ*12n i5j get put LCh*5An j LCh*12n i5j get put } for %j=0,4 0 1 2 {/i exch def %i=0,2 rgb*3N i rgb*36X i 21 add get put %8x3 tex*3N i tex*36X i 21 add get put rgb*3W i rgb*36X i 24 add get put %9x3 tex*3W i tex*36X i 24 add get put } for %i=0,2 0 1 4 {/i exch def %i=0,4 XYZ*5N i XYZ*12 i 35 add get put %8x5 LCh*5N i LCh*12 i 35 add get put XYZ*5W i XYZ*12 i 40 add get put %9x5 LCh*5W i LCh*12 i 40 add get put XYZ*5Nn i XYZ*12n i 35 add get put %8x5 LCh*5Nn i LCh*12n i 35 add get put XYZ*5Wn i XYZ*12n i 40 add get put %9x5 LCh*5Wn i LCh*12n 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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 def %0: sRGB, 1: WCGa, 3: Offs, 4:Ostw /xchart5 1 def %0: YN=0, 1: YN=0,0 ..2,5 ..40,3 /xchart6 1 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-2N) 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*12 and XYZ*12n proz_sRGB_rgb*36X_definitions %uses XYZ*12 proz_XYZnw_D65_xchart7_definition 0 1 11 {/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*12 i100 get def /Yaref XYZ*12 i101 get def /Zaref XYZ*12 i102 get def % in any case defined proz_XYZ_LCh* LCh*12 i100 L*ref put LCh*12 i101 C*ref put LCh*12 i102 h*ref put LCh*12 i103 a*ref put LCh*12 i104 b*ref put LCh*12n i100 L*ref put %may be replaced LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put xchart5 1 eq {%BEG xchart5=1 %XYZaref see above %input XYZ*12 %output XYZ*12n, LCh*12n proz_XYZ*12_XYZ*12n %calculates intermediate XYZ*12n /Xaref XYZ*12n i100 get def /Yaref XYZ*12n i101 get def /Zaref XYZ*12n i102 get def %input XYZaref, output LChab*ref proz_XYZ_LCh* LCh*12n i100 L*ref put LCh*12n i101 C*ref put LCh*12n i102 h*ref put LCh*12n i103 a*ref put LCh*12n i104 b*ref put } if %xchart5=1 } for %i=0,11 %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 /yt 300 def %y-Zeilenabstand for text /yd 400 def %y-Zeilenabstand for formula %Spalten /S1 100 def /S2 1500 def /S3 2300 def /S4 5900 def /S5 7700 def /S6 8500 def /yz 400 def /yu5 7600 def /yu4 7100 def /yu3 5800 def /yu2 5800 def /yu1 5800 def %******************************************************** xchart6 0 eq {%xchart6=0 table /xdXYZ 470 def /xdLab 570 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) show TBS (, and ) showen ( und ) showde TBIS tex_LabC*h 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 50 3400 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 TIS (, 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 /xt1 0000 def /yt1 0000 def xt1 yt1 translate /y01 3250 def /y02 2850 def /S10 020 def %colour /S20 0400 def %rgb /S30 0900 def %XYZ /S40 3300 def %LCh*ab 0 y01 moveto 6000 0 rlineto stroke 0 y02 100 sub moveto 6000 0 rlineto stroke 0 750 moveto 6000 0 rlineto stroke S20 50 sub y01 moveto S20 50 sub 0 lineto stroke S30 50 sub y01 moveto S30 50 sub 0 lineto stroke S40 50 sub y01 moveto S40 50 sub 0 lineto stroke TBV S30 y02 200 add moveto (CIEXYZ) show (\255Daten) showde ( data) showen S40 y02 200 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show /tex_XYZxy [(X) (Y) (Z) (x) (y)] def 0 1 4 {/k exch def %k=0,4 TBIV S30 k xdXYZ mul add y02 moveto tex_XYZxy k get show TBX S30 k xdXYZ mul add 080 add y02 moveto 0 -50 rmoveto (d) show 0 50 rmoveto } for %k=0,4 xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 120 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV S40 k xdLab mul add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2500 def /y0d 235 def 0 1 10 {/j exch def %j=0,9 colours without red twice /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /ydd 0 def i 8 gt {/ydd 0.2 y0d mul def} if S10 y03 j y0d mul sub ydd sub moveto tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub ydd sub moveto TBV i 8 le {%i<=7 rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow} {rgb*36X i30 get cvsshow2g} ifelse /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def 0 1 4 {/k exch def %k=0,4 TV S30 k xdXYZ mul add y03 j y0d mul sub ydd sub moveto k 0 eq {XYZ*12n i50 get cvsshow2g} if k 1 eq {XYZ*12n i51 get cvsshow2g} if k 2 eq {XYZ*12n i52 get cvsshow2g} if k 3 eq {XYZ*12n i53 get cvsshow3g} if k 4 eq {XYZ*12n i54 get cvsshow3g} if } for %k=0,4 0 1 4 {/k exch def %k=0,4 k 3 le {TV}{TBV} ifelse S40 k xdLab mul add y03 j y0d mul sub ydd sub moveto k 0 eq {LCh*12n i50 get cvsshow2g} if k 1 eq {LCh*12n i53 get cvsshow2g} if k 2 eq {LCh*12n i54 get cvsshow2g} if k 3 eq {LCh*12n i51 get cvsshow2g} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,10 xt1 neg yt1 neg translate } if %xchart6=0 table %********************************************************* xchart6 1 eq {%xchart6=1 hue circle /xdLab 300 def %HUE CIRCLE /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 /rgb*30Y 84 def %7x12 /rgb*30Y [1.00 0.00 0.00 %0 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 %1 Y 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 0.00 %2 G 0.00 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 %3 C 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 1.00 %4 B 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 1.00 1.00 0.00 1.00 %5 M 1.00 0.00 0.75 1.00 0.00 0.50 1.00 0.00 0.25 1.00 0.00 0.00 %6 R 1.00 0.25 0.00 1.00 0.50 0.00 1.00 0.75 0.00 ] def 50 3800 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 (\255Daten ) showde ( data ) showen TBIS (rgb*) show TBIS (, XYZxy) showde (, XYZxy) showen TBS (, and ) showen ( und ) showde TBIS xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBV 0 -40 rmoveto xchart8 0 eq {(ab)} {(AB)} ifelse show 0 40 rmoveto 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 3700 moveto 6000 0 rlineto stroke 50 3500 moveto TS (Normfarbwerte von Schwarz und Wei\337: ) showde (Tristimulus values of black and white: ) showen TIS (Y) show TV 0 -40 rmoveto xchart5 0 eq {(N) show}{(Nn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5N 1 get cvsshow1g} {XYZ*5Nn 1 get cvsshow1g} ifelse TIS (, Y) show TV 0 -40 rmoveto xchart5 0 eq {(W) show}{(Wn) show} ifelse 0 40 rmoveto TS (=) show xchart5 0 eq {XYZ*5W 1 get cvsshow1g} {XYZ*5Wn 1 get cvsshow1g} ifelse xchart5 1 eq {%xchart5=1 (, 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 /y01 3350 def /y02 3050 def /S10 020 def %colour /S20 0270 def %rgb /S40 0650 def %LCh*ab xchart8 0 eq {/S50 2600 def} {/S50 2150 def} ifelse %[X] TBV S40 y02 250 add moveto TBIV xchart8 0 eq {(LabC*h) show} {(L*ABCh) show} ifelse TBX indab TBV (\255Daten) showde ( data) showen S20 y02 moveto TBIV (rgb*) show TBX -50 -50 rmoveto (d) show 50 50 rmoveto xchart8 0 eq {/tex_LabCh* [(L*) (a*) (b*) (C*) (h) ] def /ind_LabCh* [(d) (d) (d) (ab,d) (ab,d)] def /tex_xshift [120 120 120 100 80 ] def } if xchart8 1 eq {/tex_LabCh* [(L*) (A) (B) (C) (h) ] def /ind_LabCh* [(d) (d) (d) (AB,d) (AB,d)] def /tex_xshift [120 80 80 80 80 ] def } if 0 1 4 {/k exch def %k=0,4 TBIV /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if S40 k xdLab mul add xdLabk add y02 moveto tex_LabCh* k get show TBX S40 k xdLab mul add xdLabk add tex_xshift k get add y02 moveto 0 -50 rmoveto ind_LabCh* k get show 0 50 rmoveto } for %k=0,4 /y03 2800 def /y0d 200 def 0 1 7 {/j exch def %j=0,8 9 colours /i j def j 6 ge {/i j 1 add def} if %for N and W /i30 i 3 mul def /i31 i30 1 add def /i32 i30 2 add def /i50 i 5 mul def /i51 i50 1 add def /i52 i50 2 add def /i53 i50 3 add def /i54 i50 4 add def S10 y03 j y0d mul sub moveto TBV tex*36X i32 get show TBX 0 -40 rmoveto (d) show 0 40 rmoveto S20 y03 j y0d mul sub moveto TBV rgb*36X i30 get cvishow ( ) show rgb*36X i31 get cvishow ( ) show rgb*36X i32 get cvishow 0 1 4 {/k exch def %k=0,4 /xdLabk 0 def k 1 eq {/xdLabk -50 def} if k 2 eq {/xdLabk -50 def} if k 3 eq {/xdLabk -50 def} if k 4 lt {TV}{TBV} ifelse S40 k xdLab mul add xdLabk add y03 j y0d mul sub moveto k 0 eq {LCh*12n i50 get cvishow} if k 1 eq {LCh*12n i53 get dup -100 le {-50 0 rmoveto} if cvishow} if k 2 eq {LCh*12n i54 get dup -100 le {-50 0 rmoveto} if cvishow} if k 3 eq {LCh*12n i51 get cvishow} if k 4 eq {LCh*12n i52 get cvishow} if } for %k=0,4 } for %j=0,7 S10 y03 10.1 y0d mul sub moveto TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV xchart8 0 eq {( = 500 [\050) show} {( = 250 [) show} ifelse TBIV (X) show TBV ( / ) show TBIV (X) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 10.1 y0d mul sub moveto TBV xchart8 0 eq {([1a]) show} {([1b]) show} ifelse S10 y03 11.2 y0d mul sub moveto TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV xchart8 0 eq {( = 200 [\050) show} {( = 100 [) show} ifelse TBIV (Y) show TBV ( / ) show TBIV (Y) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( - ) show xchart8 0 eq {(\050) show} if TBIV (Z) show TBV ( / ) show TBIV (Z) show TBX 0 -40 rmoveto (D65) show 0 40 rmoveto TBV xchart8 0 eq {(\051) show TBX 0 100 rmoveto (1/3) show 0 -100 rmoveto} if TBV ( ]) show S50 y03 11.2 y0d mul sub moveto TBV xchart8 0 eq {([2a]) show} {([2b]) show} ifelse S10 y03 12.4 y0d mul sub moveto TBIV (C) show TBIV xchart8 0 eq {(*) show} if TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = [ ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( + ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBX 0 100 rmoveto (2) show 0 -100 rmoveto TBV ( ] ) show TBX 0 100 rmoveto (0,5) show 0 -100 rmoveto S50 y03 12.2 y0d mul sub moveto TBV xchart8 0 eq {([3a]) show} {([3b]) show} ifelse S10 y03 13.4 y0d mul sub moveto TBIV (h) show TBX xchart8 0 eq {0 -40 rmoveto (ab) show 0 40 rmoveto} {0 -40 rmoveto (AB) show 0 40 rmoveto} ifelse TBV ( = atan [ ) show TBIV xchart8 0 eq {(b*) show} {(B) show} ifelse TBV ( / ) show TBIV xchart8 0 eq {(a*) show} {(A) show} ifelse TBV ( ]) show S50 y03 13.2 y0d mul sub moveto TBV xchart8 0 eq {([4a]) show} {([4b]) show} ifelse /xt2 2150 def /yt2 -2370 def xt2 yt2 translate 0 setgray xp 1450 sub yp 0750 add moveto /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 xchart8 0 eq {/xfact1 12 def /yfact1 12 def } { % /xfact1 12 mul 2.5 mul def % /yfact1 12 mul 2.5 mul def /xfact1 12 def /yfact1 12 def } ifelse /xp0 xp 0400 add def /yp0 yp 1000 sub def /xpN xp0 1000 sub def /ypN yp0 1000 sub def xp0 1900 sub yp0 0 sub moveto 3600 0 rlineto %horizontal axis & arrow -100 40 rlineto 100 -40 rlineto -100 -40 rlineto stroke xp0 0000 add yp0 1400 sub moveto 0 3100 rlineto %vertical axis & arrow -40 -100 rlineto 40 100 rlineto 40 -100 rlineto stroke xp0 1800 sub yp0 70 sub moveto 0 140 rlineto stroke %marks, horizontal axis xp0 1200 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0600 add yp0 70 sub moveto 0 140 rlineto stroke xp0 1200 add yp0 70 sub moveto 0 140 rlineto stroke xchart8 0 eq {%xchart8=0 /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } { % /scal_x [(-60) ( -40) ( -20) ( 20) ( 40)] def % /scal_y [( 40) (20) (-20) (-40) ] def /scal_x [(-150) (-100) ( -50) ( 50) ( 100)] def /scal_y [(100) (50) (-50) (-100)] def } ifelse %xchart8=0 TV xp0 2000 sub yp0 220 sub moveto scal_x 0 get show %numbers, horizontal scale xp0 1400 sub yp0 220 sub moveto scal_x 1 get show xp0 0750 sub yp0 220 sub moveto scal_x 2 get show xp0 0400 add yp0 220 sub moveto scal_x 3 get show xp0 1000 add yp0 220 sub moveto scal_x 4 get show xp0 70 sub yp0 1200 add moveto 140 0 rlineto stroke %marks, vertical axis xp0 70 sub yp0 0600 add moveto 140 0 rlineto stroke xp0 70 sub yp0 0600 sub moveto 140 0 rlineto stroke xp0 70 sub yp0 1200 sub moveto 140 0 rlineto stroke xp0 100 add yp0 1150 add moveto scal_y 0 get show %numbers, vertical axis xp0 100 add yp0 0550 add moveto scal_y 1 get show xp0 100 add yp0 0650 sub moveto scal_y 2 get show xp0 100 add yp0 1250 sub moveto scal_y 3 get show TBIK xp0 0080 add yp0 1550 add moveto xchart8 0 eq {(b*) show} {(B) show} ifelse xp0 1550 add yp0 0120 add moveto xchart8 0 eq {(a*) show} {(A) show} ifelse 0.5 setgray xchart5 1 eq {%old hexagon 15 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12 i53 get xfact1 mul add def /yi yp0 LCh*12 i54 get yfact1 mul add def xi yi 0040 0 360 arc fill } for %i=0,6 } if %old hexagon 1 setgray 30 setlinewidth 0 1 6 {/i exch def %i=0,6 0 setgray /i50 i 5 mul def /i53 i50 3 add def %a* /i54 i50 4 add def %b* /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def i 0 eq {xi yi moveto} if i 1 ge {xi yi lineto} if i 6 eq {stroke} if } for %i=0,6 0 1 5 {/i exch def %i=0,5 1 1 3 {/k exch def %k=1,3 0 setgray /i34 i 12 mul k 3 mul add def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi0 xp0 LCh*12n i53 get xfact1 mul add def /yi0 yp0 LCh*12n i54 get yfact1 mul add def /xi1 xp0 LCh*12n i53 5 add get xfact1 mul add def /yi1 yp0 LCh*12n i54 5 add get yfact1 mul add def /xiM xi0 xi1 xi0 sub k 0.25 mul mul add def /yiM yi0 yi1 yi0 sub k 0.25 mul mul add def /r rgb*30Y i34 3 add get def /g rgb*30Y i34 4 add get def /b rgb*30Y i34 5 add get def r g b setrgbcolor xiM yiM 0050 0 360 arc fill } for %k=1,3 } for %i=0,5 newpath /xshift 6 array def /yshift 6 array def % R Y G C B M /xshift [-300 -100 -050 -100 -300 -030] def /yshift [-200 -300 200 -300 -200 -300] def 0 1 5 {/i exch def %i=0,5 0 setgray /i3 i 3 mul def /i50 i 5 mul def /i53 i50 3 add def /i54 i50 4 add def /xi xp0 LCh*12n i53 get xfact1 mul add def /yi yp0 LCh*12n i54 get yfact1 mul add def xi yi 0100 0 360 arc fill /r rgb*36X i3 0 add get def /g rgb*36X i3 1 add get def /b rgb*36X i3 2 add get def r g b setrgbcolor xi yi 0050 0 360 arc fill newpath 0 setgray xi xshift i get add yi yshift i get add moveto tex*36X i 3 mul 2 add get show newpath } for %i=0,5 20 setlinewidth xt2 neg yt2 neg translate } if %xchart6=1 hue circle %******************************************************* showpage grestore %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 06 MM sub SHSr sub 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 23 %line 449 %!PS-Adobe-3.0 EPSF-3.0 AEK31-3N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark13 where {pop} {userdict /pdfmark13 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/AEK3/AEK3.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 pdfmark13 [ /View [ /Fit ] /DOCVIEW pdfmark13 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /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 1 def /lanind2 1 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 0 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-3N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 06 MM sub SHAr add 108 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 24 %line 459 %!PS-Adobe-3.0 EPSF-3.0 AEK31-4N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark14 where {pop} {userdict /pdfmark14 /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/AEK3/AEK3.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 pdfmark14 [ /View [ /Fit ] /DOCVIEW pdfmark14 %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 1 def /lanind2 1 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 1 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-4N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 06 MM sub SHSr sub 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 25 %line 469 %!PS-Adobe-3.0 EPSF-3.0 AEK31-5N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark15 where {pop} {userdict /pdfmark15 /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/AEK3/AEK3.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 pdfmark15 [ /View [ /Fit ] /DOCVIEW pdfmark15 %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 1 def /lanind2 1 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 2 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-5N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 06 MM sub SHAr add 064 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 26 %line 479 %!PS-Adobe-3.0 EPSF-3.0 AEK31-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/AEK3/AEK3.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 1 def /lanind2 1 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 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-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 %%EndDocument EndEPSF grestore gsave BeginEPSF 161 MM 06 MM sub SHSr sub 020 MM translate 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 27 %line 489 %!PS-Adobe-3.0 EPSF-3.0 AEK31-7N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark17 where {pop} {userdict /pdfmark17 /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/AEK3/AEK3.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 pdfmark17 [ /View [ /Fit ] /DOCVIEW pdfmark17 %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 1 def /lanind2 1 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 4 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-7N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 06 MM sub SHAr add 020 MM translate 12 /Times-ISOL1 FS -9 MM -7 MM moveto ( ) show 10 /Times-ISOL1 FS 53 MM 1 MM moveto ( ) show 1 1 scale -77 -91 translate %%BeginDocument: Bild 28 %line 499 %!PS-Adobe-3.0 EPSF-3.0 AEK31-8N %%BoundingBox: 70 85 243 206 %START PDFDE011.EPS /pdfmark18 where {pop} {userdict /pdfmark18 /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/AEK3/AEK3.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 pdfmark18 [ /View [ /Fit ] /DOCVIEW pdfmark18 %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 1 def /lanind2 1 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 5 def %0 for xchart6=0 or 1; 0 to 5 for 6 hue planes /xchart3 0 def %0: LCH, %1: ICE/ice /xchart4 3 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 1 def %0: LabC*h, 1: L*ABCh /xchart9 0 def %0 for Normalizaton; 0: Y=88,6, 1: Y=18,0 4 /Times-ISOL1 FS 72 86 moveto (AEK31-8N) 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 %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 080 MM add 008 MM translate %80 MM Breite von TestStreifen 10 /Times-ISOL1 FS 53 MM 1 MM moveto () show 1 1 scale -77 21 MM sub -91 translate %%BeginDocument: Bild 29 Teststreifen Ueberlaenge %line 509 %%EndDocument EndEPSF grestore gsave BeginEPSF -0.0 MM -0.0 MM translate %xy-Verschiebung Rechteckrahmen nach innen% %%BeginDocument: Bild 30 %Rechteckrahmen %line 519 %!PS-Adobe-3.0 EPSF-3.0 Frame arround with Internet text DG02 20070101 %%BoundingBox: 0 0 598 845 %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (N) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanind1 01 def /lanind2 01 def /lanindd 01 def /colorm1 00 def /colorm2 00 def /colormd 01 def /deintp1 00 def /deintp2 00 def /deintpd 01 def /xcolor1 03 def /xcolor2 03 def /xcolord 01 def /xchart1 00 def /xchart2 00 def /xchartd 01 def /pchart1 00 def /pchart2 00 def /pchartd 01 def /colsep1 00 def /colsep2 00 def /colsepd 01 def /pmetam1 00 def /pmetam2 00 def /pmetamd 01 def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} if /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} if /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} if /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} if /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 1 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} if /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} if /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} if /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /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 0 def /i*ptrsc 0 def gsave 0 setgray 1.0 1.0 scale 0.0 MM 0.0 MM translate 0.15 MM setlinewidth /x 20 array def /y 20 array def /d 20 array def /x [000 296 296 000 002 294 294 002 005 291 291 005 %speziell 006 290 290 006 008 288 288 008 ] def /y [000 000 210 210 002 002 208 208 005 005 205 205 %speziell 006 006 204 204 008 008 202 202 ] def /d [060 017 -60 -17 058 015 -58 -15 056 013 -56 -13 054 011 -54 -11 052 009 -52 -09 ] def colorm 0 eq deintp 0 eq and {/Txx (d) def /Fxx (d) def} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def /Fxx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def /Fxx (d) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def /Fxx (e) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def /Fxx (-) def} if xchart 1 ge {%xchart>=1 /i0 12 def /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def 2.5 MM /Times-ISOL1 FS x i0 get MM 40 MM add y i0 get MM 1 MM sub moveto lanind cvishow (-) show colorm cvishow deintp cvishow xcolor cvishow xchart cvishow pchart cvishow colsep cvishow (-F) show pmetam cvishow } if %xchart>=1 /xt 1 def xchart 1 eq {/xt 1 def} if xt 0 eq {%xt=0,1 ifelse /i0 12 def /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def 2.5 MM /Times-ISOL1 FS x i0 get MM 110 MM add y i0 get MM 1 MM sub moveto (http://130.149.60.45/~farbmetrik/AEK3/AEK3) show colorm cvishow deintp cvishow colorm 0 eq {(N) show} {(F) show} ifelse (P.PDF & ) show (http://130.149.60.45/~farbmetrik/AEK3/AEK3) show colorm cvishow deintp cvishow colorm 0 eq {(N) show} {(F) show} ifelse (P.TXT & ) show (http://130.149.60.45/~farbmetrik/AEK3/AEK3.HTM) show } %xt=0 { %xt=1 /xlu 017 MM def /ylu 017 MM def /xro 279 MM def /yro 193 MM def /xlo 017 MM def /ylo 193 MM def /xru 279 MM def /yru 017 MM def /xmo xlo xro xlo sub 0.5 mul add def /ymo yro 1 MM sub def xmo 1 MM sub ymo moveto 2 MM 0 rlineto stroke xmo ymo 1 MM sub moveto 0 1 MM rlineto stroke xlu 8 MM sub ylu moveto 16 MM 0 rlineto stroke xlu ylu 8 MM sub moveto 0 16 MM rlineto stroke xro 8 MM add yro moveto -16 MM 0 rlineto stroke xro yro 8 MM add moveto 0 -16 MM rlineto stroke xru 8 MM sub yru moveto 16 MM 0 rlineto stroke xru yru 8 MM sub moveto 0 16 MM rlineto stroke xlo 8 MM add ylo moveto -16 MM 0 rlineto stroke xlo ylo 8 MM add moveto 0 -16 MM rlineto stroke 1 2 7 {/i exch def %Zentrierkreise xlu ylu i MM 0 360 arc stroke xro yro i MM 0 360 arc stroke xru yru i MM 0 360 arc stroke xlo ylo i MM 0 360 arc stroke } for %i 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse 0 setgray x i0 get MM y i0 get MM moveto x i1 get MM y i1 get MM lineto x i2 get MM y i2 get MM lineto x i3 get MM y i3 get MM lineto x i0 get MM y i0 get MM lineto stroke i 16 eq {6 /Times-ISOL1 FS /x00 67 def /xdif 32 def /y0o 202.3 def /y0u 6.3 def /x0l 6.1 def /x0r 288 def /y00 22 def /ydif 32 def x00 xdif 0 mul add MM y0o MM moveto (V) show x00 xdif 0 mul add MM y0u MM moveto (C) show x00 xdif 1 mul add MM y0o MM moveto (L) show x00 xdif 1 mul add MM y0u MM moveto (M) show x00 xdif 2 mul add MM y0o MM moveto (O) show x00 xdif 2 mul add MM y0u MM moveto (Y) show x00 xdif 3 mul add MM y0o MM moveto (Y) show x00 xdif 3 mul add MM y0u MM moveto (O) show x00 xdif 4 mul add MM y0o MM moveto (M) show x00 xdif 4 mul add MM y0u MM moveto (L) show x00 xdif 5 mul add MM y0o MM moveto (C) show x00 xdif 5 mul add MM y0u MM moveto (V) show x0l MM y00 ydif 0 mul add MM moveto (V) show x0r MM y00 ydif 0 mul add MM moveto (C) show x0l MM y00 ydif 1 mul add MM moveto (L) show x0r MM y00 ydif 1 mul add MM moveto (M) show x0l MM y00 ydif 2 mul add MM moveto (O) show x0r MM y00 ydif 2 mul add MM moveto (Y) show x0l MM y00 ydif 3 mul add MM moveto (Y) show x0r MM y00 ydif 3 mul add MM moveto (O) show x0l MM y00 ydif 4 mul add MM moveto (M) show x0r MM y00 ydif 4 mul add MM moveto (L) show x0l MM y00 ydif 5 mul add MM moveto (C) show x0r MM y00 ydif 5 mul add MM moveto (V) show } if } for %i=0,16 0 1 10 {/j0 exch def /j1 j0 1 add def %j0 j0 0 eq {tzccmy0* setcmykcolor} if j0 1 eq {0 setgray} if j0 2 eq {tzmcmy0* setcmykcolor} if j0 3 eq {0 setgray} if j0 4 eq {tzycmy0* setcmykcolor} if j0 5 eq {0 setgray} if j0 6 eq {tzocmy0* setcmykcolor} if j0 7 eq {0 setgray} if j0 8 eq {tzlcmy0* setcmykcolor} if j0 9 eq {0 setgray} if j0 10 eq {tzvcmy0* setcmykcolor} if 12 4 16 {/i exch def /i0 i def %i=0,16 %0 4 16 {/i exch def /i0 i def %i=0,16 /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def i 16 eq {0.30 MM setlinewidth} {0.15 MM setlinewidth} ifelse x i0 get d i0 get add 16 j0 mul add MM y i0 get MM moveto x i0 get d i0 get add 16 j1 mul add MM y i0 get MM lineto stroke x i1 get MM y i1 get d i1 get add 16 j0 mul add MM moveto x i1 get MM y i1 get d i1 get add 16 j1 mul add MM lineto stroke x i2 get d i2 get add 16 j0 mul sub MM y i2 get MM moveto x i2 get d i2 get add 16 j1 mul sub MM y i2 get MM lineto stroke x i3 get MM y i3 get d i3 get add 16 j0 mul sub MM moveto x i3 get MM y i3 get d i3 get add 16 j1 mul sub MM lineto stroke } for %i=0,16 } for %j0 0.15 MM setlinewidth /s 7 MM def /s1 8 MM def /s5 36 MM def 16 1 20 {/j exch def /j0 j 16 sub def %j=16,20 /ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def 0 1 3 {/ij exch def %ij=0,3 ij 0 eq {/ix0 xlu 8 MM add j0 7 MM mul add def /iy0 ylu 8 MM sub def} if ij 1 eq {/ix0 xru 43 MM sub j0 7 MM mul add def /iy0 yru 8 MM sub def} if ij 2 eq {/ix0 xlo 8 MM add j0 7 MM mul add def /iy0 ylo 1 MM add def} if ij 3 eq {/ix0 xro 43 MM sub j0 7 MM mul add def /iy0 yro 1 MM add def} if i*ptrsc 0 eq i*ptrsc 2 eq or {%i*ptrsc=0,2 cmy0* setcmykcolor j 16 eq {tzan j get dup dup 0 setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if tzan j get dup dup 0 setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=0,2 i*ptrsc 1 eq i*ptrsc 3 eq or {%i*ptrsc=1,3 www* setrgbcolor j 16 eq {1 tzan j get 1 sub dup dup setrgbcolor %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 1 tzan j get sub dup dup setrgbcolor %N ix0 iy0 s s rec fill } if %i*ptrsc=1,3 i*ptrsc 4 eq i*ptrsc 5 eq or {%i*ptrsc=4,5 [/CIEBasedABC << %Farbraum und Grenzen fuer D65 /RangeABC [0 100 -128 127 -128 127] /DecodeABC [{16 add 116 div} bind {500 div} bind {200 div} bind] /MatrixABC [1 1 1 1 0 0 0 0 -1] /DecodeLMN [{dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 0.9505 mul} bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse 1.0890 mul} bind] /WhitePoint [0.9505 1 1.089] %CIEXYZ fuer D65 >>] setcolorspace j 16 eq {tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if tznLAB* 0 get tzwLAB* 0 get tznLAB* 0 get sub 0.25 j0 mul mul add tznLAB* 1 get tzwLAB* 1 get tznLAB* 1 get sub 0.25 j0 mul mul add tznLAB* 2 get tzwLAB* 2 get tznLAB* 2 get sub 0.25 j0 mul mul add setcolor %N ix0 iy0 s s rec fill } if %i*ptrsc=4,5 i*ptrsc 6 eq {%i*ptrsc=6 000n* setcmykcolor j 16 eq {0 0 0 tzan j get setcmykcolor ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 0 0 0 tzan j get setcmykcolor ix0 iy0 s s rec fill } if %i*ptrsc=6 i*ptrsc 7 eq {%i*ptrsc=7 w* setgray j 16 eq {1 tzan j get sub setgray ix0 0.5 MM sub iy0 0.5 MM sub s5 s1 rec fill} if 1 tzan j get sub setgray ix0 iy0 s s rec fill } if %i*ptrsc=7 } for %ij=0,3 } for %j=16,20 0 setgray 018 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 008.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 006.2 MM moveto 6 /Times-Roman FS (-6) show 018 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 018 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show 276 MM 202.2 MM moveto 6 /Times-Roman FS (-8) show 276 MM 204.2 MM moveto 6 /Times-Roman FS (-6) show /10TIN {10 /Times-ISOL1 FS} def /10TRN {10 /Times-Roman FS} def /12TIN {12 /Times-ISOL1 FS} def /12TRN {12 /Times-Roman FS} def /10TII {10 /TimesI-ISOL1 FS} def /10TRI {10 /Times-Italic FS} def /12TII {12 /TimesI-ISOL1 FS} def /12TRI {12 /Times-Italic FS} def /10TIB {10 /TimesB-ISOL1 FS} def /10TRB {10 /Times-Bold FS} def /12TIB {12 /TimesB-ISOL1 FS} def /12TRB {12 /Times-Bold FS} def /10TIBI {10 /TimesBI-ISOL1 FS} def /10TRBI {10 /Times-BoldItalic FS} def /12TIBI {12 /TimesBI-ISOL1 FS} def /12TRBI {12 /Times-BoldItalic FS} def %special /10TIN10 {10TIN 0 -3 rmoveto xcolor 1 eq {(10) show} if 0 3 rmoveto} def /10TINi10 {10TIN 0 -3 rmoveto (i) show xcolor 1 eq {(,10) show} if 0 3 rmoveto} def /TELi0 8 array def /TELi1 8 array def /TELi 8 array def /TELi0 [(P60) (P55) (P50) (P45) (P40) (P35) (P30) (P25)] def %7 illumin. /TELi1 [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /xchartPD 1 def %xchartPD=0: Pxx, xchartPD=1: Dxx 0 1 7 {/i exch def %i=0,7 xchartPD 0 eq {%xchartPD=0 TELi i TELi0 i get put }%xchartPD=0 {%xchartPD=1 TELi i TELi1 i get put } ifelse %xchartPD=1 } for %i=0,7 0 setgray 12TIN 61 MM 13.5 MM moveto (TUB\255Pr\374fvorlage AEK3; ) showde %0AEK3X-Y 0000# (TUB\255test chart AEK3; ) showen %1AEK3X-Y 0000# (gr\341fico TUB\255AEK3; ) showes %2AEK3X-Y 0000# (TUB\255test graphique AEK3; ) showfr %3AEK3X-Y 0000# (grafico TUB\255AEK3; ) showit %4AEK3X-Y 0000# (TUB\255test chart AEK3; ) showjp %5AEK3X-Y 0000# %compare ISO 9241-306 /YNi [(0,0) (0,63) (1,26) (2,52) (5,04) (10,08) (20,16) (40,32)] def /xchart41 0 def %main text /xchart42 3 def %subtext /xchart71 3 def %reflection 0 to 7: 0,0 to 40,3 /xchart81 1 def %0: LabC*h, 1: L*ChAB /xchart91 0 def %0 Yw=89, 1: Yz=18 xchart41 0 eq {%xchart41=0 %F0,1 12TIN (Affine Farbmetrik f\374r sechs Ger\344tebuntt\366ne) showde (Affine colour metric for six device hues) showen } if %xchart41=0 61 MM 09.5 MM moveto 12TII xchart42 0 eq {(sRGB) show} if xchart42 1 eq {(WCGa) show} if xchart42 2 eq {(Offs) show} if xchart42 3 eq {(Ostw) show} if 12TIN (-Daten ) showde ( data ) showen 12TII (rgb*, XYZ, ) show ( and ) showea %1AEK3X-Y 0200# 12TII (L*(Ch)) show 10TIN xchart81 0 eq {0 -2 rmoveto (ab) show 0 2 rmoveto} if xchart81 1 eq {0 -2 rmoveto (AB) show 0 2 rmoveto} if 12TIN %1AEK3X-Y 0200# (, Reflexion ) showde (, reflection ) showea 12TII (Y) show 10TIN 0 -2 rmoveto (N) show 0 2 rmoveto 12TIN (=0 & ) show (Y) show 10TIN 0 -2 rmoveto (Nn) show 0 2 rmoveto 12TIN (=) show YNi xchart71 get show (, ) show 12TII (Y) show 10TIN 0 -2 rmoveto (W) show 0 2 rmoveto 12TIN (=88,6, ) show 12TIN (Adaptation ) showde (adaptation ) showen 12TII (Y) show 10TIN 0 -2 rmoveto xchart91 0 eq {(Wa) show}{(Za) show} ifelse 0 2 rmoveto 12TIN xchart91 0 eq {(=88,6.) show} {(=18.) show} ifelse xchart42 1 eq {%xchart42=1 } if %xchart42=1 xchart42 2 eq {%xchart42=2 } if %xchart42=2 xchart42 3 eq {%xchart42=3 } if %xchart42=3 xchart 1 ge {%xchart>=1 12TIN (, 3D=) show colorm cvishow (, de=) show deintp cvishow 12TII xchart5f 0 eq {(, sRGB) show} if xchart5f 1 eq {(, cmyk) show} if xchart5f 2 eq {(, cmy0) show} if xchart5f 3 eq {(, cmyk) show} if colorm 1 eq {(*) show} if } if %xchart>=1 12TIN 184 MM 13.5 MM moveto (Eingabe: ) showde %0AEK3X-Y 0500# (input: ) showen %1AEK3X-Y 0500# (entrada: ) showes %2AEK3X-Y 0500# (entr\351e: ) showfr %3AEK3X-Y 0500# (immettere: ) showit %4AEK3X-Y 0500# (input: ) showjp %5AEK3X-Y 0500# 12TII (rgb/cmy0) show xchart41 0 eq {( (No 1MR)) show} {(->rgb ) show ((1MR)) show} ifelse %xchart xchart3 lt {(w/rgb/cmyk) show % } if %xchart xchart3 ge {%xchart>=xchart3 % (rgb) show % } if %xchart>=xchart3 %10 /Times-ISOL1 FS %0 -2 rmoveto Txx show 0 2 rmoveto %12TIN %12TIN %184 MM 9.5 MM moveto %(Ausgabe: ) showde %0AEK3X-Y 0600# %(output: ) showen %1AEK3X-Y 0600# %(salida: ) showes %2AEK3X-Y 0600# %(sortie: ) showfr %3AEK3X-Y 0600# %(uscita: ) showit %4AEK3X-Y 0600# %(output: ) showjp %5AEK3X-Y 0600# %colorm=0,1! 12TIN xchart 0 eq {%xchart=0,#0 %xchart41 0 eq {12TIN % (no change) showen % (keine \304nderung) showde} % {12TIN % (change of gamma ) showen % (\304nderung Gamma ) showde % 12TII % (g) show % 10TIN % 0 -2 rmoveto (P) show 0 2 rmoveto} ifelse %12TIN %(rechts) showde %0AEK3X-Y 0700# %(right) showea %1AEK3X-Y 0700# %(ning\372n cambio) showes %2AEK3X-Y 0700# %(aucun changement) showfr %3AEK3X-Y 0700# %(nessun cambiamento) showit %4AEK3X-Y 0700# %(no change compared) showjp %5AEK3X-Y 0700# }%xchart=0 {%xchart#0 12TIN colorm 0 eq {%colorm=0 (Transfer nach ) showde %0AEK3X-Y 0800# (transfer to ) showen %1AEK3X-Y 0800# (transfiera a ) showes %2AEK3X-Y 0800# (transf\351rer \340 ) showfr %3AEK3X-Y 0800# (trasferire a ) showit %4AEK3X-Y 0800# (transfer to ) showjp %5AEK3X-Y 0800# }%colorm=0 {%colorm=1 (3D\255Linearisierung ) showde %0AEK3X-Y 0900# (3D\255linearization to ) showen %1AEK3X-Y 0900# (3D\255linealizaci\363n a ) showes %2AEK3X-Y 0900# (linearisation 3D selon ) showfr %3AEK3X-Y 0900# (3D\255linearizzazione a ) showit %4AEK3X-Y 0900# (3D\255linearization to ) showjp %5AEK3X-Y 0900# } ifelse %colorm=1 12TII xchart5f 0 eq {(rgb) show} if xchart5f 1 eq {(cmyk) show} if xchart5f 2 eq {(cmy0) show} if xchart5f 3 eq {(cmyk) show} if colorm 1 eq {(*) show} if 10 /Times-ISOL1 FS 0 -2 rmoveto Txx show 0 2 rmoveto 12TIN } ifelse %xchart=0,#0 %0 setgray %end white and unvisible 12TIN 62 MM 198.5 MM moveto 12TRN (http://farbe.li.tu-berlin.de/AEK3/AEK3L) show 12TIN (0) show % LSC$ show LEX$ show xchart41 4 le {(; only vector graphic VG) showen (; nur Vektorgrafik VG) showde} if % {(; VG with ISO\255PG image) showen % (; VG mit ISO\255PG\255Bild) showde} ifelse %1 setgray %start white and unvisible (; ) show xchart 0 eq { (Start\255Ausgabe) showde %0AEK3X-Y 1000# (start output) showen %1AEK3X-Y 1000# (comience salida) showes %2AEK3X-Y 1000# (sortie de production) showfr %3AEK3X-Y 1000# (cominciare l'uscita) showit %4AEK3X-Y 1000# (start output) showjp %5AEK3X-Y 1000# } if LSC$ (C) eq { (Start\255Ausgabe) showde %0AEK3X-Y 1100# (start output) showen %1AEK3X-Y 1100# (comience salida) showes %2AEK3X-Y 1100# (sortie de production) showfr %3AEK3X-Y 1100# (cominciare l'uscita) showit %4AEK3X-Y 1100# (start output) showjp %5AEK3X-Y 1100# } if xchart 1 ge {%xchart>=1 colorm 0 eq {%colorm=0,1 (Transfer Ausgabe) showde %0AEK3X-Y 1200# (transfer output) showen %1AEK3X-Y 1200# (salida de transferencia) showes %2AEK3X-Y 1200# (sortie de transfert) showfr %3AEK3X-Y 1200# (uscita di trasferimento) showit %4AEK3X-Y 1200# (transfer output) showjp %5AEK3X-Y 1200# }%colorm=0 {%colorm=1 (3D\255Linearisierung) showde %0AEK3X-Y 1300# (3D\255linearization) showen %1AEK3X-Y 1300# (3D\255linealizaci\363n) showes %2AEK3X-Y 1300# (linearisation 3D) showfr %3AEK3X-Y 1300# (3D\255linearizzzazione) showit %4AEK3X-Y 1300# (3D\255linearization) showjp %5AEK3X-Y 1300# } ifelse %colorm=0,1 } if %xchart>=1 62 MM 194 MM moveto LSC$ (N) eq LSC$ (C) eq or { (N: Keine 3D\255Linearisierung (OL) ) showde %0AEK3X-Y 1400# (N: no 3D\255linearization (OL) ) showen %1AEK3X-Y 1400# (N: ninguna 3D\255linealizaci\363n (OL) ) showes %2AEK3X-Y 1400# (N: aucun linearisation 3D (OL) ) showfr %3AEK3X-Y 1400# (N: nessun 3D\255linearizzazione (OL) ) showit %4AEK3X-Y 1400# (N: no 3D\255linearization (OL) ) showjp %5AEK3X-Y 1400# (in Datei (F) oder PS\255Startup (S)) showde %0AEK3X-Y 1500# (in file (F) or PS\255startup (S)) showen %1AEK3X-Y 1500# (en archivo (F) o PS\255startup (S)) showes %2AEK3X-Y 1500# (dans fichier (F) ou PS\255startup (S)) showfr %3AEK3X-Y 1500# (nel file (F) o PS\255startup (S)) showit %4AEK3X-Y 1500# (in file (F) or PS\255startup (S)) showjp %5AEK3X-Y 1500# } {LSC$ show (: ) show (3D\255Linearisierung) showde %0AEK3X-Y 1600# (3D\255linearization) showen %1AEK3X-Y 1600# (3D\255linealizaci\363n) showes %2AEK3X-Y 1600# (linearisation 3D) showfr %3AEK3X-Y 1600# (3D\255linearizzzazione) showit %4AEK3X-Y 1600# (3D\255linearization) showjp %5AEK3X-Y 1600# ( AEK3/AEK3L) show LSS$ show LSX$ show (0) show % LSC$ show LEY$ show } ifelse LSC$ (F) eq { ( in Datei (F)) showde %0AEK3X-Y 1700# ( in file (F)) showen %1AEK3X-Y 1700# ( en archivo (F)) showes %2AEK3X-Y 1700# ( dans fichier (F)) showfr %3AEK3X-Y 1700# ( nel file (F)) showit %4AEK3X-Y 1700# ( in file (F)) showjp %5AEK3X-Y 1700# } if LSC$ (S) eq { ( im Distiller Startup (S) Directory) showde %0AEK3X-Y 1800# ( in Distiller Startup (S) Directory) showen %1AEK3X-Y 1800# ( en el Distiller Startup (S) Directory) showes %2AEK3X-Y 1800# ( dans le Distiller Startup (S) Directory) showfr %3AEK3X-Y 1800# ( nel Distiller Startup (S) Directory) showit %4AEK3X-Y 1800# ( in Distiller Startup (S) Directory) showjp %5AEK3X-Y 1800# } if LSC$ (D) eq { ( in PS\255Device (D)) showde %0AEK3X-Y 1900# ( in PS\255device (D)) showen %1AEK3X-Y 1900# ( en el PS\255device (D)) showes %2AEK3X-Y 1900# ( dans l'appareil PS (D)) showfr %3AEK3X-Y 1900# ( nel PS\255dispositivo (D)) showit %4AEK3X-Y 1900# ( in PS\255Device (D)) showjp %5AEK3X-Y 1900# } if LSC$ (T) eq { ( im Distiller Startup (S) Directory) showde %0AEK3X-Y 2000# ( in Distiller Startup (S) Directory) showen %1AEK3X-Y 2000# ( en el Distiller Startup (S) Directory) showes %2AEK3X-Y 2000# ( dans le Distiller Startup (S) Directory) showfr %3AEK3X-Y 2000# ( nel Distiller Startup (S) Directory) showit %4AEK3X-Y 2000# ( in Distiller Startup (S) Directory) showjp %5AEK3X-Y 2000# } if LSC$ (E) eq { ( in PS\255Device (D)) showde %0AEK3X-Y 2100# ( in PS\255device (D)) showen %1AEK3X-Y 2100# ( en el PS\255device (D)) showes %2AEK3X-Y 2100# ( dans appareil PS (D)) showfr %3AEK3X-Y 2100# ( nel PS\255dispositivo (D)) showit %4AEK3X-Y 2100# ( in PS\255Device (D)) showjp %5AEK3X-Y 2100# } if %0 setgray %end white and unvisible (, Seite ) showde %0AEK3X-Y 2200# (, page ) showen %1AEK3X-Y 2200# (, p\341gina ) showes %2AEK3X-Y 2200# (, page ) showfr %3AEK3X-Y 2200# (, pagina ) showit %4AEK3X-Y 2200# (, page ) showjp %5AEK3X-Y 2200# xchart 1 add cvishow (/) show xchartm cvishow 16 MM 185 MM moveto -90 rotate (Siehe \344hnliche Dateien: ) showde %0AEK3X-Y 2300# (see similar files: ) showen %1AEK3X-Y 2300# (vea archivos semejantes: ) showes %2AEK3X-Y 2300# (voir des fichiers similaires: ) showfr %3AEK3X-Y 2300# (vedere dei file simili: ) showit %4AEK3X-Y 2300# (see similar files: ) showjp %5AEK3X-Y 2300# 12TRN (http://farbe.li.tu-berlin.de/AEK3/AEK3.HTM) show 12TIN %(0) show % %LSC$ show LEX$ show 90 rotate 12 MM 185 MM moveto -90 rotate (Technische Information: ) showde %0AEK3X-Y 2400# (technical information: ) showen %1AEK3X-Y 2400# (informaci\363n t\351cnica: ) showes %2AEK3X-Y 2400# (informations techniques: ) showfr %3AEK3X-Y 2400# (informazioni tecniche: ) showit %4AEK3X-Y 2400# (technical information: ) showjp %5AEK3X-Y 2400# 12TRN (http://farbe.li.tu-berlin.de) show 12TIN ( oder ) showde %0AEK3X-Y 2500# ( or ) showen %1AEK3X-Y 2500# ( o ) showes %2AEK3X-Y 2500# ( ou ) showfr %3AEK3X-Y 2500# ( o ) showit %4AEK3X-Y 2500# ( or ) showjp %5AEK3X-Y 2500# 12TRN (http://130.149.60.45/~farbmetrik) show 12TIN 90 rotate 281 MM 185 MM moveto -90 rotate (TUB\255Registrierung: 20201101\255AEK3/AEK3L) showde %0AEK3X-Y 2600# (TUB registration: 20201101\255AEK3/AEK3L) showen %1AEK3X-Y 2600# (TUB matr\355cula: 20201101\255AEK3/AEK3L) showes %2AEK3X-Y 2600# (TUB enregistrement: 20201101\255AEK3/AEK3L) showfr %3AEK3X-Y 2600# (TUB iscrizione: 20201101\255AEK3/AEK3L) showit %4AEK3X-Y 2600# (TUB registration: 20201101\255AEK3/AEK3L) showjp %5AEK3X-Y 2600# (0) show % LSC$ show LEX$ show 90 rotate 281 MM 74 MM moveto -90 rotate (TUB\255Material: Code=rha4ta) showde %0AEK3X-Y 2700# (TUB material: code=rha4ta) showen %1AEK3X-Y 2700# (TUB material: code=rha4ta) showes %2AEK3X-Y 2700# (TUB mat\351riel: code=rha4ta) showfr %3AEK3X-Y 2700# (TUB materiale: code=rha4ta) showit %4AEK3X-Y 2700# (TUB material: code=rha4ta) showjp %5AEK3X-Y 2700# 90 rotate 277 MM 185 MM moveto -90 rotate /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def ( Anwendung f\374r Beurteilung und Messung ) showde %0AEK3X-Y 2800# ( application for evaluation and measurement ) showen %1AEK3X-Y 2800# ( aplicaci\363n para la medida ) showes %2AEK3X-Y 2800# ( application pour la mesure ) showfr %3AEK3X-Y 2800# ( la domanda per la misura ) showit %4AEK3X-Y 2800# ( application for measurement ) showjp %5AEK3X-Y 2800# xchart5f 0 eq {%xchart5f=0 (von Display\255 oder Druck\255Ausgabe) showde %0AEK3X-Y 2900# (of display or print output) showen %1AEK3X-Y 2900# (de display output) showes %2AEK3X-Y 2900# (de sortie sur \350cran) showfr %3AEK3X-Y 2900# (di stampa di display) showit %4AEK3X-Y 2900# (of display output) showjp %5AEK3X-Y 2900# } if %xchart5f=0 xchart5f 1 eq xchart5f 2 eq or {%xchart5f=1,2 (von Offsetdruck\255Ausgabe) showde %0AEK3X-Y 3000# (of offset print output) showen %1AEK3X-Y 3000# (salida en la impressi\363n offset) showes %2AEK3X-Y 3000# (des sorties sur offset) showfr %3AEK3X-Y 3000# (uscita nella stampa di offset) showit %4AEK3X-Y 3000# (of offset print output) showjp %5AEK3X-Y 3000# } if %xchart5f=1,2 xchart5f 3 eq {%xchart5f=3 (von Laserdrucker\255Ausgabe) showde %0AEK3X-Y 3100# (of laser printer output) showen %1AEK3X-Y 3100# (salida de impresora l\341ser) showes %2AEK3X-Y 3100# (des sorties sur imprimante laser) showfr %3AEK3X-Y 3100# (di uscita della stampante laser) showit %4AEK3X-Y 3100# (of laser printer output) showjp %5AEK3X-Y 3100# } if %xchart5f=3 xchart 1 ge {%xchart>=1 xchart5f 0 eq {%xchart5f=0 (, keine Separation) showde %0AEK3X-Y 3200# (, no separation) showen %1AEK3X-Y 3200# (, ninguna separaci\363n) showes %2AEK3X-Y 3200# (, aucune s\351paration) showfr %3AEK3X-Y 3200# (, nessuna separazione) showit %4AEK3X-Y 3200# (, no separation) showjp %5AEK3X-Y 3200# } if %chart5f=0 xchart5f 1 ge {%xchart5f>=1 (, Separation) showde %0AEK3X-Y 3300# (, separation) showen %1AEK3X-Y 3300# (, separaci\363n) showes %2AEK3X-Y 3300# (, s\351paration) showfr %3AEK3X-Y 3300# (, separazione) showit %4AEK3X-Y 3300# (, separation) showjp %5AEK3X-Y 3300# xchart5f 1 eq xchart5f 3 eq or {(cmyn6) show} if xchart5f 2 eq {(cmy0) show} if colorm 1 eq {(*) show} if colsep 0 eq {( (CMYK))}{( (CMY0))} ifelse show } if %xchart5f>=1 } if %xchart>=1 IMES 1 eq LSC$ (N) ne and { %IMES=1 (, Yr=) show Yre cvsshow1 (, XYZ) show } if %IMES=1 90 rotate /i0 8 def /i1 i0 1 add def /i2 i0 2 add def /i3 i0 3 add def 0.30 MM setlinewidth 0 setgray x i0 get MM y i0 get MM moveto x i1 get MM y i1 get MM lineto x i2 get MM y i2 get MM lineto x i3 get MM y i3 get MM lineto x i0 get MM y i0 get MM lineto stroke %/xlu1 013 MM def /ylu1 010 MM def %/xro1 283 MM def /yro1 200 MM def %/xlo1 013 MM def /ylo1 200 MM def %/xru1 283 MM def /yru1 010 MM def %xlu1 4 MM sub ylu1 moveto 8 MM 0 rlineto stroke %xlu1 ylu1 4 MM sub moveto 0 8 MM rlineto stroke %xro1 4 MM add yro1 moveto -8 MM 0 rlineto stroke %xro1 yro1 4 MM add moveto 0 -8 MM rlineto stroke %xru1 4 MM sub yru1 moveto 8 MM 0 rlineto stroke %xru1 yru1 4 MM sub moveto 0 8 MM rlineto stroke %xlo1 4 MM add ylo1 moveto -8 MM 0 rlineto stroke %xlo1 ylo1 4 MM add moveto 0 -8 MM rlineto stroke } ifelse %xt=1 grestore gsave %********************************************************** %%Trailer %%EndDocument EndEPSF grestore gsave showpage grestore %} for %colsepf=0,1 %} for %pchartf=0,0 %} for %xchartf=0,0 %} for %xcolorf=0,1 %} for %deintpf=0,1 %} for %colormf=0,1 %} for %lanindf=0,0 %%Trailer