%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/egj8/egj8l00XX.PS 20230101 %%BoundingBox: 07 04 414 292 /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/egj8/egj8.htm) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023070112000) /ModDate (D:20230701112000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %Y10g00na.ps6 %line 20****************************************************** %BEG egj8/OUTLIN10.PS Emty 20210418 %END egj8/OUTLIN10.PS Emty 20210418 %BEG egj8/OUTLIN1X.PS 20210418 %EMPTY %END egj8/OUTLIN1X.PS 20210418 %BEG egj8/OUTLIN1Y2.PS Emty 20210418 %END egj8/OUTLIN1Y2.PS Emty 20210418 /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 /tfb {0 0.5 1 setrgbcolor} 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 0.5 0.5 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$ [(1.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$ [(1.dat) (b.dat) (g.dat) (h.dat) (i.dat) (j.dat) (p.dat) (t.dat)] def %******************************************************************* /lanind1f 00 def /lanind2f 00 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 egj80-1N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-1N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 egj80-2N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-2N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 http://farbe.li.tu-berlin.de/egj8/egj80-3n %%BoundingBox: 70 85 421 335 %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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023010112000) /ModDate (D:20230101112000) /DOCINFO pdfmark03 [ /View [ /Fit ] /DOCVIEW pdfmark03 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 0 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS 74 86 moveto (egj80-3n) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth 0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey 0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 1 def 1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave xchartl 1 eq { 100 04480 translate} if xchartl 3 eq { 6150 04480 translate} if xchartl 5 eq { 100 00220 translate} if xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj80-) show xchartk 1 add cvishow (a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(1)(2)(3)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(1)(2)(3)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl xchartl 1 eq { 100 neg 04480 neg translate} if xchartl 3 eq { 6150 neg 04480 neg translate} if xchartl 5 eq { 100 neg 00220 neg translate} if xchartl 7 eq { 6150 neg 00220 neg translate} if grestore } for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 egj80-4N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-4N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 egj80-5N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-5N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 egj80-6N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-6N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 http://farbe.li.tu-berlin.de/egj8/egj80-7n %%BoundingBox: 70 85 421 335 %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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023010112000) /ModDate (D:20230101112000) /DOCINFO pdfmark07 [ /View [ /Fit ] /DOCVIEW pdfmark07 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 1 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS 74 86 moveto (egj80-7n) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth 0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey 0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 1 def 1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave xchartl 1 eq { 100 04480 translate} if xchartl 3 eq { 6150 04480 translate} if xchartl 5 eq { 100 00220 translate} if xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj80-) show xchartk 1 add cvishow (a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(1)(2)(3)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(1)(2)(3)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl xchartl 1 eq { 100 neg 04480 neg translate} if xchartl 3 eq { 6150 neg 04480 neg translate} if xchartl 5 eq { 100 neg 00220 neg translate} if xchartl 7 eq { 6150 neg 00220 neg translate} if grestore } for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 egj80-8N %%BoundingBox: 70 85 246 206 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def %%EndProlog gsave /ioutx 0 def ioutx 1 eq {%ioutx=1 4 /Times-Roman FS 72 86 moveto (egj80-8N) show 72 90 translate 0.01 MM dup scale 20 setlinewidth /xwidth 6100 def /ywidth 4000 def 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke } if %ioutx=1 grestore showpage %%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 http://farbe.li.tu-berlin.de/egj8/egj81-1n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark11 [ /View [ /Fit ] /DOCVIEW pdfmark11 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 0 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-3r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 1 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-1n, egj80-1a) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(1)(2)(3)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(1)(2)(3)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 http://farbe.li.tu-berlin.de/egj8/egj81-2n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark12 [ /View [ /Fit ] /DOCVIEW pdfmark12 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 0 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 0 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-3r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 7 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-2n, egj80-4a) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(0,5)(1)(1,5)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(0,5)(1)(1,5)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div 2 mul def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div 2 mul def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 http://farbe.li.tu-berlin.de/egj8/egj81-3n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark13 [ /View [ /Fit ] /DOCVIEW pdfmark13 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 1 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-7r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 1 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-3n, egj80-5a) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(1)(2)(3)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(1)(2)(3)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 3000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1000 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 50 add yl0 300 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 300 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 http://farbe.li.tu-berlin.de/egj8/egj81-4n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark14 [ /View [ /Fit ] /DOCVIEW pdfmark14 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 0 def iouts4 1 eq {%iouys4 x00t y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 1 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-3r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 7 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-4n, egj80-4a) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %[ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 3 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 3 def} if xchartl 6 eq {/j1y 3 def /j2y 5 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(0,5)(1)(1,5)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(0,5)(1)(1,5)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 3 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul add} def /jyl {000 j j1y sub 1000 mul add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div 2 mul def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke %[ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1 div 2 mul def %scale=1 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 700 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 http://farbe.li.tu-berlin.de/egj8/egj81-5N %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023010112000) /ModDate (D:20230101112000) /DOCINFO pdfmark15 [ /View [ /Fit ] /DOCVIEW pdfmark15 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** /ifunc 0 def %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % gsave /YLIN 1 def /ifunc 0 def /x00t 0100 def /y00t 3100 def /y00h 3400 def /ydel 250 def /x00e 5700 def /equ (]) def 72 90 translate 0.01 MM dup scale 20 setlinewidth /xchartl 2 def 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-5N) show /xwidth 6000 def /ywidth 4000 def 20 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 50 3800 moveto TBL (Lightness ) showea (Helligkeit ) showde TBIL (L* ) show TBL (and differences ) showea (und differenzen ) showde SL (D) show TBIL (Y ) show TBL (or ) showea (oder ) showde TBIL (dY ) show (in the colour space TUBJND) showea (im Farbenraum TUBJND) showde 15 setlinewidth 0 3740 moveto xwidth 0 rlineto stroke 25 setlinewidth x00t y00h moveto TL (The lightness ) showea (Die Helligkeit ) showde TIL (L* ) show TL (is defined by the equation: ) showea (ist definiert durch die Gleichung: ) showde x00t y00t moveto TBIL (L*) show (TUBJND) ibLs TBL ( = \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (]) show TBL ( = \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TL ([1) show equ show x00t y00t ydel 1 mul sub moveto TL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TIL (Y) show (u) iLs TL (=18) show x00e y00t ydel 1 mul sub moveto TL ([2) show equ show x00t y00t ydel 2.5 mul sub moveto TL (This equation is based on psychophysical BAM\255reseach results) showea (Die Gleichung basiert auf psychophysikalischer BAM\255Forschung) showde %1 x00t y00t ydel 3.5 mul sub moveto TBIL (dY) show TBL ( = \050 s + q) show ipK TBIL (Y) show TBL (\051 / c) show TL (, see ) showea (, siehe ) showde TIL (Richter ) show TL (BAM\255Forschungsbericht 115, 1985) show x00e y00t ydel 3.5 mul sub moveto TL ([3) show equ show x00t y00t ydel 5 mul sub moveto TL (There are different versions of this equations, all with equal content) showea (Es gibt andere Versionen dieser Gleichung, alle mit gleichem Inhalt) showde %2 x00t y00t ydel 6 mul sub moveto TBIL (dY) show TBL ( = \050A) show (1) ibLs TBL ( + A) show (2) ibLs ipK TBIL (Y) show TBL (\051 / A) show (0) ibLs TL (, see ) showea (, siehe ) showde TL (CIE 230; Eq. (A.7a)) show x00e y00t ydel 6 mul sub moveto TL ([4) show equ show %3 x00t y00t ydel 7 mul sub moveto TBIL (dY) show TBL ( = \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / t) show TBL ( = \050) show TBL ( 1 + b) show ipK TBL (\050) show TBIL (Y) show TBL ( / ) show TBIL (Y) show (u) ibLs TBL (\051 ] / t) show x00e y00t ydel 7 mul sub moveto TL ([5) show equ show %4 x00t 0000 add y00t ydel 8 mul sub moveto TL (A) show (1) iLs TL (=s=) show JNDA1 cvsshow4x x00t 1200 add y00t ydel 8 mul sub moveto TL (A) show (2) iLs TL (=q=) show JNDA2 cvsshow4x x00t 2400 add y00t ydel 8 mul sub moveto TL (A) show (0) iLs TL (=c=) show JNDA0 cvsshow1x x00t 3300 add y00t ydel 8 mul sub moveto ((c=scaling constant)) showea ((c=Skalierungskonstante)) showde x00e y00t ydel 8 mul sub moveto TL ([6) show equ show x00t y00t ydel 9.5 mul sub moveto TL (The lightness ) showea (Die Helligkeit ) showde TIL (L* ) show TL (is called the line element of ) showea (ist das Linienelement von ) showde TIL (dY) show TL (, see the equation) showea (, siehe die Gleichung) showde /y3 y00t ydel 11 mul sub def /ix0 0400 def /ix1 2000 def /ixt 0000 def /iyt 2500 def ix1 250 sub y3 120 sub moveto 500 /Symbol FS (\362) show /y3h y3 50 add def %line higher /y3a y3 120 add def %text above line /y3s y3 150 sub def %text below line ix0 y3 moveto %cero line text TBIL (L*) show (TUBJND) ibLs 30 0 rmoveto TBIL ((Y)) show TBL ( = ) show ix1 050 sub y3h moveto 800 0 rlineto stroke ix1 y3a moveto ix1 100 add y3a moveto TBL (t) show ipK TBIL (dY) show ix1 100 sub y3s moveto TBL ([ 1 + a) show ipK TBIL (Y) show TBL (]) show ix1 800 add y3 moveto TBL ( = (t/a)) show TBL ( ln [ 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (]) show x00e y00t ydel 11 mul sub moveto TL ([7) show equ show grestore 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 http://farbe.li.tu-berlin.de/egj8/egj81-6n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark16 [ /View [ /Fit ] /DOCVIEW pdfmark16 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 1.5 mul def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t 100 add y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t 100 add y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t 100 add y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t 100 add y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t 100 add y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t 100 add y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t 100 add y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t 100 add y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 0 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-3r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 7 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-6n, egj80-4a_m) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke [ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 4 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 4 def} if xchartl 6 eq {/j1y 3 def /j2y 4 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(0,5)(1)(1,5)(2)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(0,5)(1)(1,5)(2)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 4 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul 1.33 div add} def /jyl {-50 j j1y sub 1000 mul 1.33 div add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1.5 mul def %scale=1,5 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1.5 mul def %scale=1,5 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get 220 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 http://farbe.li.tu-berlin.de/egj8/egj81-7 %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2021080112000) /ModDate (D:20210801112000) /DOCINFO pdfmark01 [ /View [ /Fit ] /DOCVIEW pdfmark01 %END PDFDE011 % 40mm = 80*72/25.4 = 232; 232+90+13 = 335 % !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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /TV {120 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIV {120 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBV {120 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIV {120 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /SV {120 /Symbol FS} bind def /SL {160 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SG {320 /Symbol FS} bind def /RV {120 /Times-Roman FS} bind def /RL {160 /Times-Roman FS} bind def /RS {200 /Times-Roman FS} bind def /RK {240 /Times-Roman FS} bind def /RM {280 /Times-Roman FS} bind def /RG {320 /Times-Roman FS} bind def /RIV {120 /Times-Italic FS} bind def /RIL {160 /Times-Italic FS} bind def /RIS {200 /Times-Italic FS} bind def /RIK {240 /Times-Italic FS} bind def /RIM {280 /Times-Italic FS} bind def /RIG {320 /Times-Italic FS} bind def /RBV {120 /Times-Bold FS} bind def /RBL {160 /Times-Bold FS} bind def /RBS {200 /Times-Bold FS} bind def /RBK {240 /Times-Bold FS} bind def /RBM {280 /Times-Bold FS} bind def /RBG {320 /Times-Bold FS} bind def /RBIV {120 /Times-BoldItalic FS} bind def /RBIL {160 /Times-BoldItalic FS} bind def /RBIS {200 /Times-BoldItalic FS} bind def /RBIK {240 /Times-BoldItalic FS} bind def /RBIM {280 /Times-BoldItalic FS} bind def /RBIG {320 /Times-BoldItalic FS} bind def /cvishowr {dup 0 ge {0.5 add} {0.5 sub} ifelse cvi 6 string cvs show} def /cvishow {cvi 6 string cvs show ( ) show} def /cvsshow1 {10 mul cvi 0.1 mul 9 string cvs show ( ) show} def /cvsshow2 {100 mul cvi 0.01 mul 9 string cvs show ( ) show} def /cvsshow3 {1000 mul cvi 0.001 mul 9 string cvs show ( ) show} def /cvsshow4 {10000 mul cvi 0.0001 mul 9 string cvs show ( ) show} def /cvsshow5 {100000 mul cvi 0.00001 mul 9 string cvs show ( ) show} def /cvishow0 {cvi 6 string cvs show} def /cvsshow10 {10 mul cvi 0.1 mul 9 string cvs show} def /cvsshow20 {100 mul cvi 0.01 mul 9 string cvs show} def /cvsshow30 {1000 mul cvi 0.001 mul 9 string cvs show} def /cvsshow40 {10000 mul cvi 0.0001 mul 9 string cvs show} def /cvsshow50 {100000 mul cvi 0.00001 mul 9 string cvs show} def /cvsshow0r {10 mul 0.5 add cvi 0.1 mul 10 string cvs show} def /cvsshow1r {10 mul 0.5 add cvi 0.1 mul %new980310 dup 0 ge {( ) show} if dup abs 10 lt {( ) show} if 10 string cvs show} def /cvsshow2r {100 mul 0.5 add cvi 0.01 mul %new980310 dup 0 ge {( ) show} if dup abs 10 lt {( ) show} if 10 string cvs show} def /cvsshow3r {1000 mul 0.5 add cvi 0.001 mul 10 string cvs show} def %now with cvishow0 instead of cvishow /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 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 cvishow0 (,) show %nxa=99 nxb cvishow0 %nxb=1/0 } def /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 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 cvishow0 (,) show %nxb=99, nxb 10 ge {nxb cvishow0} if %nxb=12 nxb 1 ge nxb 9 le and {(0) show nxb cvishow0} if %nxb=02 nxb 0 eq {(00) show} if %nxb=00 } def /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 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 cvishow0 (,) show %nxb=99, nxb 100 ge {nxb cvishow0} if %nxb=123/012/001/000 nxb 10 ge nxb 99 le and {(0) show nxb cvishow0} if %nxb=012 nxb 1 ge nxb 9 le and {(00) show nxb cvishow0} if %nxb=001 nxb 0 eq {(000) show} if %nxb=000 } def %********************************************************* %%EndProlog gsave %lanindL2 START 20000505 /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {3 lanind eq {show} {pop} ifelse} bind def /showfr {2 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % gsave 3 /Times-ISOL1 FS 74 87 moveto (egj81-7N) show 72 90 translate 0.01 MM dup scale /xwidth 6000 def /ywidth 4000 def 20 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke %gsave %start in case of clip /yz 0300 def /x0 0100 def /xe 5600 def /y1 ywidth 0600 sub def %F(x) /y2 ywidth 1300 sub def %text /y3 ywidth 1800 sub def %dF(x) /y4 ywidth 2300 sub def %F(x) /y4a ywidth 2600 sub def %YN, Yu, YW /y5 ywidth 3100 sub def %dln*1+x) /y6 ywidth 3600 sub def %ln(1+ax) TBK x0 ywidth 220 sub moveto (Line\255element examples for grey samples ) showea (Linienelementbeispiel f\374r graue Farben ) showde TBK (\0500,2) show SK (\243) show TBIK 30 0 rmoveto (x=Y/Y) show TBL 0 -30 rmoveto (u) show 0 30 rmoveto 30 0 rmoveto SK (\243) show TBK (5\051) show 0 ywidth 300 sub moveto xwidth 0 rlineto stroke x0 y1 0 yz mul sub moveto TBIK (F(x) ) show TK (is called the line\255element function of ) showea (ist das Linienelement der Funktion ) showde TBIK (f(x).) show x0 y1 1 yz mul sub moveto TK (The following relations are valid for ) showea (Die folgende Beziehung ist g\374ltig f\374r ) showde TIK (x) show TK (=) show TIK (Y/Y) show TS 0 -40 rmoveto (u) show 0 40 rmoveto TK (=) show TIK (Y/) show TK (18:) show /y2h y2 50 add def %line higher /y2a y2 120 add def %text above line /y2s y2 120 sub def %text below line TBIK x0 1200 add y2 moveto %cero line text (= f(x)) show x0 400 add y2h moveto 700 0 rlineto stroke x0 400 add y2a moveto (d[F(x)]) show x0 450 add 150 add y2s moveto (dx) show xe y2 moveto TK ([1]) show /ix0 0400 def /ix1 1500 def /ixt 0000 def /iyt 2500 def ix1 300 sub y3 120 sub moveto 500 /Symbol FS (\362) show /y3h y3 50 add def %line higher /y3a y3 120 add def %text above line /y3s y3 150 sub def %text below line ix0 y3 moveto %cero line text TBIK (F) show 30 0 rmoveto ((x) = ) show ix1 100 sub y3h moveto 700 0 rlineto stroke ix1 y3a moveto TBIK (f) show 50 0 rmoveto ('(x)) show ix1 y3s moveto (f) show 100 0 rmoveto ((x)) show ix1 700 add y3 moveto TBIK (dx) show xe y3 moveto TK ([2]) show x0 y4 moveto TK (Example for all normalized tristimulus values ) showea (Beispiel f\374r alle normierten Normfarbwerte ) showde TIK (x=Y/Y) show 0 -50 rmoveto TS (u) show 0 50 rmoveto TK (,) show x0 y4a moveto TK (for example for ) showea (zum Beispiel f\374r ) showde TIK (Y) show 0 -30 rmoveto TL (N) show 0 30 rmoveto TK (=3,6, ) show TIK (Y) show 0 -30 rmoveto TL (u) show 0 30 rmoveto TK (=18, ) show TIK (Y) show 0 -30 rmoveto TL (W) show 0 30 rmoveto TK (=90.) show /y5h y5 50 add def %line higher /y5a y5 120 add def %text above line /y5s y5 150 sub def %text below line x0 y5 moveto %cero line txt (=) x0 1700 add y5 moveto TBK (=) show x0 300 add y5h moveto 1300 0 rlineto stroke x0 300 add y5a moveto TBIK (d[) show TBK (t) show 30 0 rmoveto (ln\0501+b) show 30 0 rmoveto TBIK (x\051]) show x0 450 add 150 add y5s moveto (dx) show TBK x0 2100 add y5a moveto (t) show 30 0 rmoveto (b) show x0 2000 add y5h moveto 600 0 rlineto stroke x0 2000 add y5s moveto (1+b) show 30 0 rmoveto TBIK (x) show xe y5 moveto TK ([3]) show /ix0 0400 def /ix1 1500 def /ixt 0000 def /iyt 2500 def /y6h y6 50 add def %line higher /y6a y6 100 add def %text above line /y6s y6 150 sub def %text below line 1700 y6 120 sub moveto 500 /Symbol FS (\362) show ix0 y6 moveto %cero line text TBK (t) show 30 0 rmoveto (ln\0501+b) show 30 0 rmoveto TBIK (x) show TBK (\051 = ) show ix1 y6 100 add moveto x0 2000 add y6a moveto (t) show 30 0 rmoveto (b) show x0 1800 add y6h moveto 600 0 rlineto stroke x0 1900 add y6s moveto (1+b) show 30 0 rmoveto TBIK (x) show ix1 1100 add y6 moveto TBIK (dx) show xe y6 moveto TK ([4]) show %grestore %end in case of clip 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 http://farbe.li.tu-berlin.de/egj8/egj81-8n %%BoundingBox: 70 85 244 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/egj8/egj8.HTM) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://farbe.li.tu-berlin.de or http://color.li.tu-berlin.de) /Keywords (image reproduction, colour devices) /Creator (klaus.richter@mac.com) /CreationDate (D:2023100112000) /ModDate (D:20231001112000) /DOCINFO pdfmark18 [ /View [ /Fit ] /DOCVIEW pdfmark18 %END PDFDE011 /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 /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /TS {160 /Times-ISOL1 FS} bind def /TL {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 /TIS {160 /TimesI-ISOL1 FS} bind def /TIL {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 /TBS {160 /TimesB-ISOL1 FS} bind def /TBL {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 /TBIS {160 /TimesBI-ISOL1 FS} bind def /TBIL {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 /SS {160 /Symbol FS} bind def /SL {200 1 sub /Symbol FS} bind def /SK {250 1 sub /Symbol FS} bind def /SM {300 1 sub /Symbol FS} bind def /SG {350 1 sub /Symbol FS} bind def /CS {160 /Courier-ISOL1 FS} bind def /CL {200 /Courier-ISOL1 FS} bind def /CK {250 /Courier-ISOL1 FS} bind def /CM {300 /Courier-ISOL1 FS} bind def /CG {350 /Courier-ISOL1 FS} bind def /CBS {160 /CourierB-ISOL1 FS} bind def /CBL {200 /CourierB-ISOL1 FS} bind def /CBK {250 /CourierB-ISOL1 FS} bind def /CBM {300 /CourierB-ISOL1 FS} bind def /CBG {350 /CourierB-ISOL1 FS} bind def /nGs {350 /Times-ISOL1 FS show} bind def /kGs {350 /TimesI-ISOL1 FS show} bind def /bGs {350 /TimesB-ISOL1 FS show} bind def /jGs {350 /TimesBI-ISOL1 FS show} bind def /sGs {350 /Symbol FS show} bind def /iGs {300 /Times-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -90 rmoveto show 0 90 rmoveto} bind def /ebGb {300 /TimesB-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ipG {300 /Times-ISOL1 FS 50 50 rmoveto (\267) show 50 -50 rmoveto} bind def %20% kleiner /nMs {300 /Times-ISOL1 FS show TM} bind def /kM2 {300 /TimesI-ISOL1 FS show TM} bind def /bM2 {300 /TimesB-ISOL1 FS show TM} bind def /jM2 {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /eMs {250 /Times-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ibMs {250 /TimesB-ISOL1 FS 0 -70 rmoveto show 0 70 rmoveto TM} bind def /ebMs {250 /TimesB-ISOL1 FS 0 160 rmoveto show 0 -160 rmoveto TM} bind def /ipM {250 /Times-ISOL1 FS 40 40 rmoveto (\267) show 40 -40 rmoveto TM} bind def %40% kleiner /nKs {250 /Times-ISOL1 FS show TK} bind def /kKs {250 /TimesI-ISOL1 FS show TK} bind def /bKs {250 /TimesB-ISOL1 FS show TK} bind def /jKs {250 /TimesBI-ISOL1 FS show TK} bind def /sKs {250 /Symbol FS show TK} bind def /iKs {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TK} bind def /ipK {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /nLs {200 /Times-ISOL1 FS show TS} bind def /kLs {200 /TimesI-ISOL1 FS show TS} bind def /bLs {200 /TimesB-ISOL1 FS show TS} bind def /jLs {200 /TimesBI-ISOL1 FS show TS} bind def /sLs {200 /Symbol FS show TS} bind def /iLs {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eLs {160 /Times-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /ebLs {160 /TimesB-ISOL1 FS 0 090 rmoveto show 0 -090 rmoveto TS} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TS} bind def %XCHA02.PS BEG /rec %x, y width heigth {/heigth exch def /width exch def moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colrecfi %x y width heigth c m y k {setrgbcolor rec fill} bind def /colrecst %x y width heigth c m y k {setrgbcolor rec stroke} bind def /rem %x, y width heigth {/heigth exch 0.5 mul def /width exch 0.5 mul def /yleftb exch heigth 0.5 mul add def /xleftb exch width 0.5 mul add def xleftb yleftb moveto width 0 rlineto 0 heigth rlineto width neg 0 rlineto closepath } bind def /colremfi %x y width heigth c m y k {setrgbcolor rem fill} bind def /colremst %x y width heigth c m y k {setrgbcolor rem stroke} bind def /tzr {1 0 0} bind def %Reproduktionsfarben /tzg {0 1 0} bind def /tzb {0 0 1} bind def /tzc {0 1 1} bind def /tzm {1 0 1} bind def /tzy {1 1 0} bind def /tzn {0.00} bind def %Graureihe /tzd {0.25} bind def /tzz {0.50} bind def /tzh {0.75} bind def /tzw {1.00} bind def /tfr {1 0 0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0 1 0 setrgbcolor} bind def /tfb {0 0 1 setrgbcolor} bind def /tfc {0 1 1 setrgbcolor} bind def /tfm {1 0 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfrn {0.5 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfgn {0.0 0.5 0.0 setrgbcolor} bind def /tfbn {0.0 0.0 0.5 setrgbcolor} bind def /tfcn {0.0 0.5 0.5 setrgbcolor} bind def /tfmn {0.5 0.0 0.5 setrgbcolor} bind def /tfyn {0.5 0.5 0.0 setrgbcolor} bind def /tfn {0.00 setgray} bind def %Graureihe /tfd {0.25 setgray} bind def /tfz {0.50 setgray} bind def /tfh {0.75 setgray} bind def /tfw {1.00 setgray} bind def %XCHA02.PS BEG /YnW 100 def %TUBJND, CIELAB /Yi 101 array def %101(W)+3*101(R,G,B) /YLogi 101 array def /dYi 101 array def /L*i 101 array def /X00i 101 array def %log(Xi) /Y00i 101 array def %L*i, log(L*i) /Y0ui 101 array def %L*i/Lu, log(L*i/L*u) /Y10i 101 array def %dYi, log(dYi) /Y1ui 101 array def %dYi/dYu, log(dYi/dYu) /Y20i 101 array def %dYi/Yi, log(dYi/Yi) sensitivity /Y2ui 101 array def %(dYi/dYu)/(Yi/Yu), log[(dYi/dYu)/(Yi/Yu)] /Y30i 101 array def %Yi/dYi, log(Yi/dYi) contrast /Y3ui 101 array def %(Yi/Yu)/(dYi/dYu), log[(Yi/Yu)/(dYi/dYu)] /Yx0i 101 array def %one of eight above /MULX 1000 def /MULY 1000 1.5 mul def /ifunc 0 def %0: TUBJND, 1: CIELAB /YLIN 1 def %data for LINLAB, TUBJND, CIELAB /c24 2.4 def %LINYAB /e10D24 1.0 2.4 div def /e14D24 1.4 2.4 div def /c30 3.0 def %CIELAB /e10D30 1.0 3.0 div def /e20D30 2.0 3.0 div def %*************************************************** %ifunc 0 eq {%ifunc=0 %TUBJND /YYL 0.001 def /YFL 0.000001 def /Yu 18.00 def %dY = (s + q * Y)/c = (A1 + A2 * Y) / A0 /JNDC 1.5 def %c=A0 /JNDS 0.0170 def %s=A1 /JNDQ 0.0058 def %q=A2 /JNDA0 JNDC def /JNDA1 JNDS def /JNDA2 JNDQ def /JNDA JNDQ JNDS div def %a=q/s=A2/A1=0,3411 /JNDT JNDC JNDS div def %t=c/s=A0/A1=88,23 /JNDB JNDA Yu mul def %b=q/s*Yu=a*Yu=A2/A1*Yu= /JNDD JNDT JNDA div def %d=t/a=A0/A2=258,6 ifunc 0 eq {%ifunc=0 %dY = (s + q Y)/ c = (A1 + A2 * Y) / A0 %dY = [1 + (q/s) Y] / (c/s) = [1 + a Y] / t = [1 + (A2/A1) * Y] / (A0/A1) %dY = [1 + (q/s)*Yu * (Y/Yu)] * (c/s) = [1 + (a*Yu) (Y/Yu)] /t % = [1 + b (Y/Yu)] / t = [ 1 + A2/A1*Yu*(Y/Yu) ] / (A0/A1) %L*= ln [1 + a Y] * d = ln [1 + (A2/A1) * Y] * (A0/A2) %dL*/dY = 1 / (1 + a*Y) * a * d) = t / (1 + a*Y) = (A0/A2) / [1 + (A2/A1) * Y] %for dL*=1: %dY = (1 + a*Y) / t = [1 + (A2/A1) * Y] / (A0/A1) %s=0.0170=A1 %q=0.0058=A2 %c=Y0=1.5=A0 %a=q/s=0.3411=A2/A1 %b=a*Yu=6.1411=(A2/A1)*Yu %t=c/s=88.23=A0/A1 %d=t/a=258.62=(A0/A1)/(A2/A1)=A0/A2 /Yn 100 def /dYu Yu JNDA mul 1 add JNDT div def %[1 + (A2/A1) * Yu] / (A0/A1) /L*u Yu JNDA mul 1 add ln JNDD mul def %A0/A2 * ln [1 + (A2/A1) * Yu] /iu 40 def %*************************************************** /Yi_L*i_dYi_L_0 {%BEG Yi_L*i_dYi_L_0 L=TUBJND /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put %L*i = A0/A2 * ln [1 + (A2/A1) * Y] L*i i Yi i get JNDA mul 1 add ln JNDD mul put %dYi = [1 + (A2/A1) * Y] / (A0/A1) dYi i Yi i get JNDA mul 1 add JNDT div put } for %i=1,100 } bind def %END Yi_L*i_dYi_L_0 =TUBJND } if %ifunc=0 %*************************************************** ifunc 1 eq {%ifunc=1 /econst 2.71828182 def /W2 2 sqrt def /FL 0.0001 def %Yn=100, L*u=50 %Yu=Yn*[(L*u+16)/116]**3 %dYu=3*[Yn**(1/3)/116*Yu**(2/3)] /Yn 100 def /L*u 50 def /Yu L*u 16 add 116 div 3 exp 100 mul def /dYu Yn e10D30 exp 116 div 3 mul Yu e20D30 exp mul def /iu 40 def /aCIE 3 116 div Yn e20D30 exp mul def /bCIE aCIE iu e20D30 exp mul def /cCIE 3 116 div Yn e10D30 exp mul def /dCIE cCIE iu e20D30 exp mul def /eCIE 116 3 div Yn e20D30 exp mul def /fCIE eCIE iu e20D30 exp mul def %************************************************* /Yi_L*i_dYi_C_0 {%BEG Yi_L*i_dYi_C_0 C=CIELAB /Yu0 18 def %range 0,18, 1,8, 18, 180, 1800 18000 % 0 20 40 60 80 100 %log -0.7447 0.2553 1.2553 2.2553 3.2553 4.2553 /Log018 Yu0 100 div log def 1 1 100 {/i exch def %i=1,100 YLogi i Log018 i 0.05 mul add put Yi i 10 YLogi i get exp YnW mul 100. div put L*i i Yi i get YnW div e10D30 exp 116 mul 16 sub put dYi i Yi i get YnW div e20D30 exp c30 mul 100 mul 116 div put } for %i=1,100 } bind def %END Yi_L*i_dYi_C_0 C=CIELAB } if %ifunc=1 /ioutc 0 def /cero_line {%BEG cero_line %1. log line = cero line tfr %-2. MULX mul 1. log MULY mul moveto % 0. MULX mul 1. log MULY mul lineto stroke tfn %tfw %2. log line = +1 line tfg %-2. MULX mul 10. log MULY mul moveto % 0. MULX mul 10. log MULY mul lineto stroke tfn %tfw } bind def %cero line %*************************************************** /Yi_Yxyi {%BEG Yi_Yxyi definition for 4 functions: L*i, dYi, dYi/Yi, Yi/dYi %i=0 not available 1 1 100 {/i exch def %i=1,100 X00i i Yi i get put Y00i i L*i i get put Y0ui i L*i i get L*u div put Y10i i dYi i get put Y1ui i dYi i get dYu div put Y20i i dYi i get Yi i get div put Y2ui i dYi i get Yi i get div dYu Yu div div put Y30i i Yi i get dYi i get div put Y3ui i Yi i get dYi i get div Yu dYu div div put } for %i=1,100 } bind def %END Yi_Yxyi %*************************************************** /Y_curve {%BEG Y_curve 50 setlinewidth 0 1 1 {/je exch def %je=0,1 je 0 eq {1 1 1 setrgbcolor} if je 1 eq {0 0 0 setrgbcolor [100] 0 setdash} if /i1 001 def /i2 100 def i1 1 i2 {/i exch def %i=i1,i2 X00i i get log MULX mul Yx0i i get MULY mul i i1 eq {moveto} if i i1 1 add ge i i2 1 sub le and {lineto} if i i2 eq {stroke} if } for %i=i1,i2 } for %je=0,1 /iout 0 def iout 1 eq {%iout=1 50 setlinewidth 0 1 2 {/k exch def %k=0,3 k 0 eq {/i 04 def} if k 1 eq {/i 18 def} if k 2 eq {/i 90 def} if tfb X00i i get log MULX mul Yx0i i get MULY mul 060 0 360 arc fill newpath X00i i get log 0.50 sub MULX mul Yx0i i get ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {0.15 500 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 0.2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.01 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 200 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %TUBJND ifunc 1 eq {%ifunc=1 CIELAB xchartl 0 eq {0.15 50 mul add} if xchartl 1 eq {0.15 1 mul add} if xchartl 2 eq {0.15 2 mul add} if xchartl 3 eq {0.15 2 mul add} if xchartl 4 eq {0.15 0.1 mul add} if xchartl 5 eq {0.15 2 mul add} if xchartl 6 eq {0.15 20 mul add} if xchartl 7 eq {0.15 1 mul add} if } if %CIELAB MULY mul moveto TBK xchartl 0 eq xchartl 6 eq or {Yx0i i get cvsshow1x} {Yx0i i get cvsshow3x} ifelse 0 setgray newpath } for %k=0,2 } if %iout=0 [ ] 0 setdash 0 setgray } bind def %END Y_curve %*************************************************** /cvishow {cvi 10 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 10 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 10 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 10 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 10 string cvs show} def /cvsshow1x {/nxx exch def %example nxx=99.1/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10 mul cvi abs /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 /cvsshow2x {/nxx exch def %example nxx=99.12/99,02/99,00 nxx 0 lt {(-) show} {() show} ifelse nxx 100 mul cvi abs /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 /cvsshow3x {/nxx exch def %example nxx=99.123/99.012/99.001/99.000 nxx 0 lt {(-) show} {() show} ifelse nxx 1000 mul cvi abs /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 /cvsshow4x {/nxx exch def %example nxx=99.123/99.0 nxx 0 lt {(-) show} {() show} ifelse nxx 10000 mul cvi abs /nxi exch def %nxi=99123/99012/99001/9 nxi 10000 idiv /nxa exch def %nxa=99 nxi nxa 10000 mul sub /nxb exch def %nxb=123/012/001/000 nxa cvishow (,) show %nxb=99, nxb 1000 ge {nxb cvishow} if %nxb=123/012/001/000 nxb 100 ge nxb 999 le and {(0) show nxb cvishow} if %nxb=012 nxb 10 ge nxb 99 le and {(00) show nxb cvishow} if %nxb=012 nxb 1 ge nxb 9 le and {(000) show nxb cvishow} if %nxb=001 nxb 0 eq {(0000) show} if %nxb=000 } def /cvsshow4s {/nxx exch def %example nxx=-0,1234 nxx 0 lt {(-0,) show} {(0,) show} ifelse /nxi nxx 10000 mul cvi abs def %nxi=1234 nxi 1000 ge {nxi cvishow} if %nxb=123/012/001/000 nxi 100 ge nxi 999 le and {(0) show nxi cvishow} if %nxb=123/012/001/000 nxi 10 ge nxi 99 le and {(00) show nxi cvishow} if %nxb=012 nxi 1 ge nxi 9 le and {(000) show nxi cvishow} if %nxb=001 nxi 0 eq {(0000) show} if %nxb=000 } def %519 BEG TUBJND_ENJ8 %'ENJ6'TUBJND_ENJ6.PS 230306 only proz_TUBJND_1,3,5,7 of 'ENA6'TUBJND_ENA6.PS /proz_TUBJND_1 {%BEG proz_TUBJND_1 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show TBL (\051) show TBL ( / ln \050 1 + ) show TBL (a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t 100 add y00t ydel 2 mul sub moveto TBIL (L*/L*) show (u) ibLs 20 0 rmoveto TBL (= ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show TBL ( / ln \050 1 + ) show TBL (b) show TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t 100 add y00t ydel 3 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 3 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 3 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 3 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 3 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_1 /proz_TUBJND_3 {%BEG proz_TUBJND_3 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show x00t 100 add y00t ydel 2 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + a) show ipK TBIL (Y) show TBL ( \051 / \050 ) show TBL (1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show /iouts4 1 def iouts4 1 eq {%iouys4 x00t 100 add y00t ydel 3 mul sub moveto TBIL (dY/dY) show (u) ibLs TBL ( = ) show TBL (\050) show TBL (1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL ( \051 / \050 ) show TBL (1 + b) show TBL (\051) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } if %iouts4 } bind def %END proz_TUBJND_3 /proz_TUBJND_5 {%BEG proz_TUBJND_5 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t 100 add y00t ydel 2 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show %C06 %Cr= log[(Y/dY)/(Yu/dYu)] x00t 100 add y00t ydel 3 mul sub moveto TBL (\050) show TBIL (dY/Y) show TBL (\051 / \050) show TBIL (dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (\051 ) show TBL ( = [\050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 / ) show TBIL (Y) show TBL ( ] / [ \050) show TBL ( 1 + b) show TBL (\051 / ) show TBIL (Y) show (u) ibLs TBL ( ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_5 /proz_TUBJND_7 {%BEG proz_TUBJND_7 x00t 100 add y00t moveto TBIL (L*) show (TUBJND) ibLs TBL (= \050) show TBL (t/a) show TBL (\051) show TBL ( ln [ 1 + ) show TBL (b) show ipK TBL (\050) show TBIL (Y/Y) show (u) ibLs TBL (\051]) show x00e y00t moveto TBL ([1) show equ show x00t 100 add y00t ydel 1 mul sub moveto TBL (a=) show JNDA cvsshow4x x00t 0850 add y00t ydel 1 mul sub moveto TBL (t=) show JNDT cvsshow2x x00t 1650 add y00t ydel 1 mul sub moveto TBL (t/a=) show JNDT JNDA div cvsshow1x x00t 2500 add y00t ydel 1 mul sub moveto TBL (b=) show JNDB cvsshow3x x00t 3300 add y00t ydel 1 mul sub moveto TBIL (Y) show (u) ibLs TBL (=18) show x00e y00t ydel 1 mul sub moveto TBL ([2) show equ show %Cr= (Y/dY)/(Yu/dYu) x00t 100 add y00t ydel 2 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + a) show ipK TBIL (Y) show (u) ibLs TBL (\051 ]) show x00e y00t ydel 2 mul sub moveto TBL ([3) show equ show x00t 100 add y00t ydel 3 mul sub moveto TBL (\050) show TBIL (Y/dY) show TBL (\051 / \050) show TBIL (Y/dY) show TBL (\051) show (u) ibLs TBL ( = [ ) show TBIL (Y) show TBL ( / \050) show TBL ( 1 + b) show ipK TBIL (Y/Y) show (u) ibLs TBL (\051 ]) show TBL ( / [ ) show TBIL (Y) show (u) ibLs TBL ( / \050) show TBL ( 1 + b) show TBL (\051 ]) show x00e y00t ydel 3 mul sub moveto TBL ([4) show equ show } bind def %END proz_TUBJND_7 %521 END TUBJND_ENJ8 %523 BEG CIELAB_ENJ8 %525 END CIELAB_ENJ8 %*************************************************** %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintp2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 3 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 0 def} ifelse /pchartf where {pop /pchart1 pchartf def /pchart2 pchartf def /pchartd pchartdf def} {/pchart1 3 def} ifelse /colsepf where {pop /colsep1 colsepf def /colsep2 colsepf def /colsepd colsepdf def} {/colsep1 0 def} ifelse /pmetamf where {pop /pmetam1 pmetamf def /pmetam2 pmetamf def /pmetamd pmetamdf def} {/pmetam1 0 def} ifelse %either defaul values for xchart=0 or values for xchart=1 /lanind lanind1 def % /colorm colorm1 def % /deintp deintp1 def % /xcolor xcolor1 def % /xchart xchart1 def % /pchart pchart1 def % /colsep colsep1 def % /pmetam pmetam1 def % /ioute 1 def %0 1 01 {/ioute exch def %ioute=0,0 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 %always independent of intended output 5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolor cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow gsave %XCHA01.PS END 4 /Times-ISOL1 FS %74 86 moveto (egj80-3r) show %xchart 0 eq {(R) show} % {deintp colorm 2 mul add cvishow} ifelse 72 90 translate 0.01 MM dup scale 20 setlinewidth %0 0 12250 08600 1.0 1.0 1.0 colrecfi %area white grey %0 0 12250 08600 0.0 0.0 0.0 colrecst %Rahmen Schwarz ifunc 0 eq {Yi_L*i_dYi_L_0} if ifunc 1 eq {Yi_L*i_dYi_C_0} if Yi_Yxyi /xchartl 7 def %1 2 7 {/xchartl exch def %xchartl=1,2,7 gsave % xchartl 1 eq { 100 04480 translate} if % xchartl 3 eq { 6150 04480 translate} if % xchartl 5 eq { 100 00220 translate} if % xchartl 7 eq { 6150 00220 translate} if ioute 0 eq {/xchartk xchartl 1 sub 2 idiv def} if ioute 1 eq {/xchartk xchartl 1 sub 2 idiv 4 add def} if 100 /Times-ISOL1 FS 0 setgray 50 -100 moveto (egj81-8n, egj81-6n_m) show %xchartk 1 add cvishow %(a) show %a %(_) show xchart 1 add cvishow /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath clip 0 0 xwidth ywidth 0.0 0.0 0.0 colrecst %frame black tfn %tfw /xtr0 180 def /ytr0 280 def xtr0 ytr0 translate %********************************************************************* 50 setlinewidth %50 setlinewidth tfn 0 0 moveto 5000 0 rlineto stroke 0 0 moveto 0 3100 rlineto stroke 5000 100 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3100 100 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL %/tx [(-2) (-1) ( 0) ( 1) ( 2)] def %/txl [( ) (0,1) ( 1) ( 10) (100)] def /tx [(-2) (-1) ( 0) ( 1) ( 2) ( 3)] def /txl [(0,01) (0,1) ( 1) ( 10) (100) (1000)] def %!x-axis: 100 Einheiten = 0600 Skalen-Einheiten 0 1 5 {/i exch def /ixt {-150 i 1000 mul add} def /ixl { 000 i 1000 mul add} def ixt -230 moveto tx i get exec show tfb i 1 ge {ixt i 0 eq {100 sub} if 100 moveto txl i get exec show} if tfn ixl 60 moveto 0 -120 rlineto stroke } for %tfn %tfw %2300 100 moveto TBIL (Y) show (u) ibLs TBL (=18) show tfn /ixtt 5.0 1000 mul def /iytt -200 def ixtt 100 add iytt moveto TBL (log) show 20 0 rmoveto TBIL (Y) show TBL /iytt 050 def ixtt 300 add iytt moveto tfb TBIL (Y) show tfn %tfn %tfw % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke %tfg %[100] 0 setdash % 3.6 log MULX mul 1000 add 0 moveto %90.0 log MULX mul 1000 add 0 lineto stroke [ ] 0 setdash tfn %!y-Achse: 100 S-Einheiten = 1000 Skalen-Einheiten /j1y 2 def %default /j2y 4 def ifunc 0 eq {%ifunc=0 TUBJND xchartl 0 eq {/j1y 4 def /j2y 6 def} if xchartl 2 eq {/j1y 1 def /j2y 4 def} if xchartl 4 eq {/j1y 0 def /j2y 2 def} if xchartl 6 eq {/j1y 4 def /j2y 6 def} if } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=0 CIELAB xchartl 0 eq {/j1y 3 def /j2y 5 def} if xchartl 2 eq {/j1y 2 def /j2y 4 def} if xchartl 4 eq {/j1y 1 def /j2y 4 def} if xchartl 6 eq {/j1y 3 def /j2y 4 def} if } if %ifunc=1 CIELAB TBL %yshift -1000 0 1000 2000 3000 4000 % 0 1 2 3 4 5 6 7 8 /ty [(-3)(-2)(-1) ( 0) ( 1) ( 2) ( 3) ( 4) ( 5)] def /tyl[(0,001)(0,01) (0,1) (1) (10) (100) (1000) (10000) (100000)] def ifunc 0 eq {%ifunc=0 TUBJND /ty0[(0)(500)(1000)(1500)] def /ty1[(0)(1)(2)(3)] def /ty2[(0,0)(0,2)(0,4)(0,6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,00)(0,01)(0,02)(0,03)] def /ty5[(0)(2)(4)(6)] def /ty6[(0)(100)(200)(300)] def /ty7[(0)(0,5)(1)(1,5)(2)] def } if %ifunc=0 TUBJND ifunc 1 eq {%ifunc=1 CIELAB /ty0[(0)(50)(100)(150)] def /ty1[(0)(1)(2)(3)] def /ty2[(0)(2)(4)(6)] def /ty3[(0)(2)(4)(6)] def /ty4[(0,0)(0,1)(0,2)(0,3)] def /ty5[(0)(2)(4)(6)] def /ty6[(0) (20) (40)(60) ] def /ty7[(0)(0,5)(1)(1,5)(2)] def } if %ifunc=1 CIELAB /j1y 0 def /j2y 4 def j1y 1 j2y {/j exch def /jyt {-50 j j1y sub 1000 mul 1.33 div add} def /jyl {-50 j j1y sub 1000 mul 1.33 div add} def tfb 100 jyt moveto xchartl 0 eq {ty0 j get show} if xchartl 1 eq {ty1 j get show} if xchartl 2 eq {ty2 j get show} if xchartl 3 eq {ty3 j get show} if xchartl 4 eq {ty4 j get show} if xchartl 5 eq {ty5 j get show} if xchartl 6 eq {ty6 j get show} if xchartl 7 eq {ty7 j get show} if tfn -60 jyl moveto 120 0 rlineto stroke } for %******************************************************** %BEG C01_C08 ******************************************** tfn %tfw /ytop 3775 def 050 xtr0 sub ytop ytr0 sub moveto xchartl 01 eq {%xchartl=01 YLIN 0 eq {TBK (log[) show} if TBIK (L*) show ifunc 0 eq {(r,TUBJND) ibKs} {(r,CIELAB) ibKs} ifelse YLIN 0 eq {TBK (]) show} if 2100 500 sub xtr0 sub ytop ytr0 sub 000 sub moveto TBK (relative lightness normalized to the) showen (relative Helligkeit normiert zur) showde 2100 500 sub xtr0 sub ytop ytr0 sub 270 sub moveto (background lightness ) showen (Umgebungshelligkeit ) showde TBIK (L*) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=01 xchartl 03 eq {%xchartl=03 YLIN 0 eq {TBK (log[) show} if SM (D) show 20 0 rmoveto TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show (u) ibLs YLIN 0 eq {TBK (]) show} if 1700 xtr0 sub ytop ytr0 sub 000 sub moveto SM (D) show 20 0 rmoveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( tristimulus\255value difference) showen (\255Normfarbwertdifferenz) showde 1700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to ) showen (normiert f\374r ) showde SM (D) show 20 0 rmoveto TBIK (Y) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=03 xchartl 05 eq {%xchartl=05 YLIN 0 eq {TBK (log[) show} if TBK (\050) show SM (D) show TBIK (Y/Y) show TBK (\051 / \050) show SM (D) show TBIK (Y) show TBK (/) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( sensitivity) showen (\255Empfindlichkeit) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde SM (D) show TBIK (Y/Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=05 xchartl 07 eq {%xchartl=07 YLIN 0 eq {TBK (log[) show} if TBK (\050) show TBIK (Y/) show SM (D) show TBIK (Y) show (\051 / \050) show TBIK (Y) show TBK (/) show SM (D) show TBIK (Y) show TBK (\051) show (u) ibLs YLIN 0 eq {TBK (]) show} if 2700 xtr0 sub ytop ytr0 sub 000 sub moveto TBIK (Y) show TBK ifunc 0 eq {(TUBJND) ibKs} {(CIELAB) ibKs} ifelse TBK ( contrast) showen (\255Kontrast) showde 2700 xtr0 sub ytop ytr0 sub 270 sub moveto (normalized to [) showen (normiert f\374r [) showde TBIK (Y/) show SM (D) show TBIK (Y) show TBK (]) show ifunc 0 eq {(u,TUBJND) ibKs} {(u,CIELAB) ibKs} ifelse } if %xchartl=07 tfn %tfw /y0del 100 def 50 setlinewidth %********************************************************************* /C02_ALOG_L*DL*u {%BEG C02_ALOG_L*DTu* /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1.5 mul def %scale=1,5 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y0ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu L*i iu04 get L*u div def /Y018DYu L*i iu18 get L*u div def /Y090DYu L*i iu90 get L*u div def /Y001dYu L*i 1 get L*u div def /Y100DYu L*i 100 get L*u div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke %xl1 yl1 moveto 0 500 rlineto stroke %special tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1100 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde %xl2 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash %xl3 1100 sub yl2 200 sub moveto %TBL %(W threshold) showea %(W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn %xl1 650 sub yl0 600 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show %xl2 50 add yl0 600 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 100 add moveto TBIL (Y) show (u) ibLs TBL (=18) show %C02 /x0 xl0 300 add def %C02 tfn x0 ylm 120 add moveto TBIL (L*/L*) show (u) ibLs TBL (=1) show /FYiuP1 L*i iu 1 add get L*i iu get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs TBL (=) show L*u cvishow TBIL (, Y) show (u) ibLs TBL (=) show Yu cvishow xtr neg ytr neg translate %old cero point /y0 2900 def /x1 800 def /y1 2700 def /xdel 800 def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C02 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C02 /x00e 5400 def /y00t 2900 def %C02 /ydel 0270 def /equ (b]) def ifunc 0 eq {proz_TUBJND_1} if ifunc 1 eq {proz_CIELAB_1} if } if %ioute=0 tfn %tfw /x0 4300 400 add def /y0 yappi 1 get 100 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C02_ALOG_L*DL*u %********************************************************************* /C04_ALOG_DLn {%BEG C04_ALOG_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y1ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get dYu div def /Y018DYu dYi iu18 get dYu div def /Y090DYu dYi iu90 get dYu div def /Y001dYu dYi 1 get dYu div def /Y100DYu dYi 100 get dYu div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde [100] 0 setdash xl1 yl2 moveto xl3 yl2 lineto stroke [ ] 0 setdash xl3 1000 sub yl2 200 sub moveto TBL (W threshold) showea (W\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C04 /x0 xl0 300 add def %C04 tfn x0 ylm 120 add moveto TBIL ((dY)) show TBL (/) show TBIL ((dY)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get dYi iu 1 add get div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point tfn %tfw /y0 2400 y0del sub def /ydel 300 def %C04 /x01t 0300 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C04 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C04 /x00e 5400 def /y00t 2950 def %C04 /ydel 0270 def /equ (d]) def ifunc 0 eq {proz_TUBJND_3} if ifunc 1 eq {proz_CIELAB_3} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 3 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C04_ALOG_DLn %********************************************************************* /C06_ALOG_DL_Ln {%BEG C06_ALOG_DL_Ln /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 2.0 div def %scale=2.0 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point %0 not available 1 1 100 {/i exch def %i=1,100 Yx0i i Y2ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu dYi iu04 get Yi iu04 get div dYu Yu div div def /Y018DYu dYi iu18 get Yi iu18 get div dYu Yu div div def /Y090DYu dYi iu90 get Yi iu90 get div dYu Yu div div def /Y001dYu dYi 1 get Yi 1 get div dYu Yu div div def /Y100DYu dYi 100 get Yi 100 get div dYu Yu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C06 /x0 xl0 300 add def %C06 tfn x0 ylm 120 add moveto TBIL ((dY/Y)) show TBL (/) show TBIL ((dY/Y)) show (u) ibLs TBL (=1) show /FYiuP1 dYi iu 1 add get Yi iu 1 add get div dYi iu get Yi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (Y) show (u) ibLs TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, dY) show (u) ibLs TBL (/) show TBIL (Y) show (u) ibLs TBL (=) show dYu Yu div cvsshow3x xtr neg ytr neg translate %old cero point /y0 2400 y0del sub def /ydel 300 def %C06 /x01t 0200 def /x02t 0900 def /x03t 2300 def /x04t 3300 def ioute 0 eq {%ioute=0 tfr %C06 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C06 /x00e 5400 def /y00t 2900 def %C06 /ydel 0270 def /equ (f]) def ifunc 0 eq {proz_TUBJND_5} if ifunc 1 eq {proz_CIELAB_5} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 5 get def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C06_ALOG_DL_Ln %********************************************************************* /C08_ALOG_L_DLn {%BEG C08_ALOG_L_DLn /Fx0log -2.0 def /Fy0lin 1.0 def /xshift 1000 def /xtr 1000 xshift add def /ytr 0000 def /iys 1000 def /MULY iys 1.5 mul def %scale=1,5 /ytrl ytr 1000 div def %lin shift xtr ytr translate %new cero point 1 1 100 {/i exch def %i=1,100 Yx0i i Y3ui i get put } for %i=1,100 Y_curve ioutc 1 eq {cero_line} if /iu04 3.6 log 0.18 log sub 0.05 div cvi def /iu18 18 log 0.18 log sub 0.05 div cvi def /iu90 90 log 0.18 log sub 0.05 div cvi def /Y004DYu Yi iu04 get dYi iu04 get div Yu dYu div div def /Y018DYu Yi iu18 get dYi iu18 get div Yu dYu div div def /Y090DYu Yi iu90 get dYi iu90 get div Yu dYu div div def /Y001dYu Yi 1 get dYi 1 get div Yu dYu div div def /Y100DYu Yi 100 get dYi 100 get div Yu dYu div div def /xl0 0.01 log MULX mul def /xl1 3.60 log MULX mul def /xlm 18.00 log MULX mul def /xl2 90.00 log MULX mul def /yl0 0 MULY mul def /yl1 Y004DYu MULY mul def /ylm Y018DYu MULY mul def /yl2 Y090DYu MULY mul def tfz %tfz [100] 0 setdash xl0 ylm moveto xlm ylm lineto xlm yl0 lineto stroke tfg xl1 yl0 moveto xl2 yl0 lineto stroke xl0 yl1 moveto xl0 yl2 lineto stroke tfr /xl3 6000 log MULX mul def xl1 yl1 moveto xl3 yl1 lineto stroke [ ] 0 setdash xl3 1200 sub yl1 50 add moveto TBL (N threshold) showea (N\255Schwelle) showde ioute 0 eq {%ioute=0 tfg xl1 yl0 moveto xl1 yl1 lineto xl0 yl1 lineto stroke xl2 yl0 moveto xl2 yl2 lineto xl0 yl2 lineto stroke tfn xl1 50 add yl0 700 add moveto TBIL (Y) show (N) ibLs TBL (=3,6) show xl2 50 add yl0 700 add moveto TBIL (Y) show (W) ibLs TBL (=90) show } if %ioute=0 tfn xlm 50 add yl0 300 add 250 sub moveto TBIL (Y) show (u) ibLs TBL (=18) show %C08 /x0 xl0 500 add def %C08 tfn x0 ylm 120 add moveto TBIL ((Y/dY)) show TBL (/) show TBIL ((Y/dY)) show (u) ibLs TBL (=1) show /FYiuP1 Yi iu 1 add get dYi iu 1 add get div Yi iu get dYi iu get div div def /FYiu 1 def TBIL (, m) show (u) ibLs TBL (=) show FYiuP1 FYiu sub Yi iu 1 add get log Yi iu get log sub div cvsshow2x x0 ylm 200 sub moveto TBIL (L*) show (u) ibLs %ifunc 0 eq {(TUBJND,) ibLs} if (u) ibLs TBL (=) show L*u cvishow %TBIL (, Y) show (u) ibLs %TBL (=) show Yu cvishow TBIL (, dY) show (u) ibLs TBL (=) show dYu cvsshow2x TBIL (, Y) show (u) ibLs TBL (/) show TBIL (dY) show (u) ibLs TBL (=) show Yu dYu div cvishow xtr neg ytr neg translate %old cero point %C08 /y0 2400 y0del sub def /ydel 300 def ioute 0 eq {%ioute=0 tfr %C08 %L*= (t/a) * ln (1 + a Y) /x00t 0300 def %C08 /x00e 5400 def /y00t 2900 def %C08 /ydel 0270 def /equ (h]) def ifunc 0 eq {proz_TUBJND_7} if ifunc 1 eq {proz_CIELAB_7} if } if %ioute=0 tfn %tfw /x0 4300 def /y0 yappi 7 get 220 add def x0 y0 moveto 1000 0 rlineto stroke tfg [100] 0 setdash x0 y0 moveto 1000 0 rlineto stroke [ ] 0 setdash tfn %tfw x0 y0 0.8 ydel mul sub moveto TBL (application) showen (Anwendungs\255) showde x0 y0 1.5 ydel mul sub moveto TBL (range) showen (bereich) showde } def %END C08_ALOG_L_DL %**************************************************************** %additional blue text /ifbtx 0 def ifbtx 1 eq {%ifbtx=1 tfb /xtfb 40 def xchartl 01 eq {100 3200 xtfb sub moveto TBIL (L*/L*) if (u) ibLs } if xchartl 03 eq {100 3200 xtfb sub moveto SL (D) show TBIL (Y) show TBL (/) show SL (D) show TBIL (Y) show (u) ibLs } if xchartl 05 eq {100 3200 xtfb sub moveto TBIL (S) show (r) ibLs TBL (/) show TBIL (S) show (ru) ibLs TBL (=\050) show SL (D) show TBIL (Y/Y) show TBL (\051/\050) show SL (D) show TBIL (Y) show (u) ibLs TBIL (/Y) show (u) ibLs TBL (\051) show } if xchartl 07 eq {100 3200 xtfb sub moveto TBIL (C) show (r) ibLs TBL (/) show TBIL (C) show (ru) ibLs TBL (=\050) show TBIL (Y/) show SL (D) show TBIL (Y) show TBL (\051/\050) show TBIL (Y) show (u) ibLs TBL (/) show SL (D) show TBIL (Y) show (u) ibLs TBL (\051) show } if } if %ifbtx=1 tfn %************************************************************** % 0 1 2 3 4 5 6 7 ifunc 0 eq {/yappi [1200 1200 1000 1000 1800 1450 1300 0550] def} if ifunc 1 eq {/yappi [1200 1200 1000 1000 1600 1450 1300 0550] def} if xchartl 01 eq {C02_ALOG_L*DL*u} if xchartl 03 eq {C04_ALOG_DLn} if xchartl 05 eq {C06_ALOG_DL_Ln} if xchartl 07 eq {C08_ALOG_L_DLn} if %END C01_C08********************************************** %******************************************************** xtr0 neg ytr0 neg translate %************************************************************** %special space for 'xm03'PROZ0.COM 2x before/after xchartl % xchartl 1 eq { 100 neg 04480 neg translate} if % xchartl 3 eq { 6150 neg 04480 neg translate} if % xchartl 5 eq { 100 neg 00220 neg translate} if % xchartl 7 eq { 6150 neg 00220 neg translate} if grestore %} for %xchartl=1,2,7 showpage grestore %} for %ioute=0,1 %%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 1.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 /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 /10SN {10 /Symbol FS} def /12SN {12 /Symbol FS} 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. /xchart8 1 def %xchart8=0: Pxx, xchart8=1: Dxx 0 1 7 {/i exch def %i=0,7 xchart8 0 eq {%xchart8=0 TELi i TELi0 i get put }%xchart8=0 {%xchart8=1 TELi i TELi1 i get put } ifelse %xchart8=1 } for %i=0,7 /xchart41 4 def %0 to 5: different main text /xchart42 1 def %Ordinate 0: log (ANT1_4), 1: lin (ANT5_6) 0 setgray 12TIN 61 MM 13.5 MM moveto (TUB\255Pr\374fvorlage egj8; ) showde %0egj8X-Y 0000# (TUB\255test chart egj8; ) showen %1egj8X-Y 0000# (gr\341fico TUB\255egj8; ) showes %2egj8X-Y 0000# (TUB\255test graphique egj8; ) showfr %3egj8X-Y 0000# (grafico TUB\255egj8; ) showit %4egj8X-Y 0000# (TUB\255test chart egj8; ) showjp %5egj8X-Y 0000# xchart41 0 eq {%xchart41=0 %ANT1 12TIN (LABJND and CIELAB colour\255difference formula ) showea (LABJND\255 und CIELAB\255Farbabstandsformel ) showde } if %xchart41=0 xchart41 1 eq {%xchart41=1 %ANT2 12TIN (LABJND and CIEDE2000 colour\255difference formula ) showea (LABJND\255 und CIEDE2000\255Farbabstandsformel ) showde } if %xchart41=1 xchart41 2 eq {%xchart41=2 %ANT3 12TIN (For LABJND colour\255difference formula, ) showea (F\374r LABJND\255Farbabstandsformel, ) showde (see CIE 230:2019) showea (siehe CIE 230:2019) showde } if %xchart41=2 xchart41 3 eq {%xchart41=3 %ANT4 12TIN (For CIELAB colour\255difference formula, ) showea (F\374r CIELAB\255Farbabstandsformel, ) showde (see ISO/CIE 11664\2554) showea (siehe ISO/CIE 11664\2554) showde } if %xchart41=3 xchart41 4 eq {%xchart41=4 %ENA6 former ANT5 12TIN (TUBJND colour space and colour differences, ) showea (TUBJND\255Farbenraum und Farbdifferenzen, ) showde (see CIE 230:2019) showea (siehe CIE 230:2019) showde } if %xchart41=4 xchart41 5 eq {%xchart41=5 %ENA7, former ANT6 12TIN (CIELAB colour space and colour differences, ) showea (CIELAB\255Farbenraum und Farbdifferenzen, ) showde (see ISO/CIE 11664\2554) showea (siehe ISO/CIE 11664\2554) showde } if %xchart41=5 61 MM 09.5 MM moveto xchart42 0 eq {%xchart42=0 %FOR ANT1_4 12TIN (log[) show } if %xchart42=0 %for ANT1 to ANT6 12TIN (lightness ) showea (Helligkeit ) showde 12TII (L*, ) show 12TIN (threshold ) showea (Schwelle ) showde 12SN (D) show 12TII (Y, ) show 12TIN (sensitivity ) showea (Empfindlichkeit ) showde 12SN (D) show 12TII (Y/Y, ) show 12TIN (contrast ) showea (Kontrast ) showde 12TII (Y/) show 12SN (D) show 12TII (Y) show xchart42 0 eq {%xchart42=0 12TIN (]) show } if %xchart42=0 12TIN (, unnormalized and normalized for U) showea (, unnormiert und normiert f\374r U) showde 62 MM 198.5 MM moveto 12RN tfb (http://farbe.li.tu-berlin.de/egj8/egj8l) show 12TN (0) show % LSC$ show LEX$ show tfn (; only vector graphic VG) showen (; nur Vektorgrafik VG) showde %1 setgray %start white and unvisible (; ) show xchart 0 eq { (Start\255Ausgabe) showde %0egj8X-Y 1000# (start output) showen %1egj8X-Y 1000# (comience salida) showes %2egj8X-Y 1000# (sortie de production) showfr %3egj8X-Y 1000# (cominciare l'uscita) showit %4egj8X-Y 1000# (start output) showjp %5egj8X-Y 1000# } if 62 MM 194 MM moveto (Siehe separate Bilder dieser Seite: ) showde %0egj8X-Y 2300# (see separate images of this page: ) showen %1egj8X-Y 2300# (vea archivos semejantes: ) showes %2egj8X-Y 2300# (voir des fichiers similaires: ) showfr %3egj8X-Y 2300# (vedere dei file simili: ) showit %4egj8X-Y 2300# (see similar files: ) showjp %5egj8X-Y 2300# 12RN tfb (http://farbe.li.tu-berlin.de/egj8/egj8.htm) show tfn 12TN 16 MM 185 MM moveto -90 rotate (Siehe \344hnliche Dateien der ganzen Serie: ) showde %0egj8X-Y 2350# (see similar files of the whole serie: ) showen %1egj8X-Y 2350# (vea archivos semejantes: ) showes %2egj8X-Y 2350# (voir des fichiers similaires de serie: ) showfr %3egj8X-Y 2350# (vedere dei file simili: ) showit %4egj8X-Y 2350# (see similar files: ) showjp %5egj8X-Y 2350# 12RN tfb (http://farbe.li.tu-berlin.de/egjs.htm) show tfn 12TN 90 rotate 12 MM 185 MM moveto -90 rotate (Technische Information: ) showde %0egj8X-Y 2400# (technical information: ) showen %1egj8X-Y 2400# (informaci\363n t\351cnica: ) showes %2egj8X-Y 2400# (informations techniques: ) showfr %3egj8X-Y 2400# (informazioni tecniche: ) showit %4egj8X-Y 2400# (technical information: ) showjp %5egj8X-Y 2400# 12RN tfb (http://farbe.li.tu-berlin.de) show tfn 12TN ( oder ) showde %0egj8X-Y 2500# ( or ) showen %1egj8X-Y 2500# ( o ) showes %2egj8X-Y 2500# ( ou ) showfr %3egj8X-Y 2500# ( o ) showit %4egj8X-Y 2500# ( or ) showjp %5egj8X-Y 2500# 12RN tfb (http://color.li.tu-berlin.de) show tfn 12TN 90 rotate 281 MM 185 MM moveto -90 rotate (TUB\255Registrierung: 20230701\255egj8/egj8l) showde %0egj8X-Y 2600# (TUB registration: 20230701\255egj8/egj8l) showen %1egj8X-Y 2600# (TUB matr\355cula: 20230701\255egj8/egj8l) showes %2egj8X-Y 2600# (TUB enregistrement: 20230701\255egj8/egj8l) showfr %3egj8X-Y 2600# (TUB iscrizione: 20230701\255egj8/egj8l) showit %4egj8X-Y 2600# (TUB registration: 20230701\255egj8/egj8l) showjp %5egj8X-Y 2600# (0) show % LSC$ show LEX$ show 90 rotate 281 MM 74 MM moveto -90 rotate (TUB\255Material: Code=rha4ta) showde %0egj8X-Y 2700# (TUB material: code=rha4ta) showen %1egj8X-Y 2700# (TUB material: code=rha4ta) showes %2egj8X-Y 2700# (TUB mat\351riel: code=rha4ta) showfr %3egj8X-Y 2700# (TUB materiale: code=rha4ta) showit %4egj8X-Y 2700# (TUB material: code=rha4ta) showjp %5egj8X-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 %0egj8X-Y 2800# ( application for evaluation and measurement ) showen %1egj8X-Y 2800# ( aplicaci\363n para la medida ) showes %2egj8X-Y 2800# ( application pour la mesure ) showfr %3egj8X-Y 2800# ( la domanda per la misura ) showit %4egj8X-Y 2800# ( application for measurement ) showjp %5egj8X-Y 2800# (von Display\255 oder Druck\255Ausgabe) showde %0egj8X-Y 2900# (of display or print output) showen %1egj8X-Y 2900# (de display output) showes %2egj8X-Y 2900# (de sortie sur \350cran) showfr %3egj8X-Y 2900# (di stampa di display) showit %4egj8X-Y 2900# (of display output) showjp %5egj8X-Y 2900# 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 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