%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/hes9/hes90-7N.EPS %%BoundingBox: 70 85 246 206 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostSCTipt pictures: farbe.li.tu-berlin.de/hes9/hes9.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:2024110112000) /ModDate (D:20241101112000) /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 /Symbol FS} bind def /SK {250 /Symbol FS} bind def /SM {300 /Symbol FS} bind def /SG {350 /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 -80 rmoveto show 0 80 rmoveto} bind def /eGs {300 /Times-ISOL1 FS 0 200 rmoveto show 0 -200 rmoveto} bind def /ibGb {300 /TimesB-ISOL1 FS 0 -80 rmoveto show 0 80 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 /kMs {300 /TimesI-ISOL1 FS show TM} bind def /bMs {300 /TimesB-ISOL1 FS show TM} bind def /jMs {300 /TimesBI-ISOL1 FS show TM} bind def /sMs {300 /Symbol FS show TM} bind def /iMs {250 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 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 -60 rmoveto show 0 60 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 -50 rmoveto show 0 50 rmoveto TK} bind def /eKs {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ibKs {200 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TK} bind def /ebKs {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 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 TL} bind def /kLs {200 /TimesI-ISOL1 FS show TL} bind def /bLs {200 /TimesB-ISOL1 FS show TL} bind def /jLs {200 /TimesBI-ISOL1 FS show TL} bind def /sLs {200 /Symbol FS show TL} bind def /iLs {160 /Times-ISOL1 FS 0 -40 rmoveto show 0 40 rmoveto TL} bind def /eLs {160 /Times-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def /ibLs {160 /TimesB-ISOL1 FS 0 -40 rmoveto show 0 40 rmoveto TL} bind def /ebLs {160 /TimesB-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def /ipL {160 /Times-ISOL1 FS 25 25 rmoveto (\267) show 25 -25 rmoveto TL} bind def /jbLs {160 /TimesBI-ISOL1 FS 0 110 rmoveto show 0 -110 rmoveto TL} bind def %80% smaller /nSs {160 /Times-ISOL1 FS show TS} bind def /kSs {160 /TimesI-ISOL1 FS show TS} bind def /bSs {160 /TimesB-ISOL1 FS show TS} bind def /jSs {160 /TimesBI-ISOL1 FS show TS} bind def /sSs {160 /Symbol FS show TS} bind def /iSs {130 /Times-ISOL1 FS 0 -30 rmoveto show 0 30 rmoveto TS} bind def /eSs {130 /Times-ISOL1 FS 0 80 rmoveto show 0 -80 rmoveto TS} bind def /ibSs {130 /TimesB-ISOL1 FS 0 -30 rmoveto show 0 30 rmoveto TS} bind def /ebSs {130 /TimesB-ISOL1 FS 0 80 rmoveto show 0 -80 rmoveto TS} bind def /ipS {130 /Times-ISOL1 FS 20 20 rmoveto (\267) show 20 -20 rmoveto TS} bind def /jbSs {130 /TimesBI-ISOL1 FS 0 80 rmoveto show 0 -80 rmoveto TS} bind def /20rm {20 0 rmoveto} 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 %XCHA01.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 r g b {setrgbcolor rec fill} bind def /colrecst %x y width heigth r g b {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 r g b {setrgbcolor rem fill} bind def /colremst %x y width heigth r g b {setrgbcolor rem stroke} bind def /tfr {1.0 0.0 0.0 setrgbcolor} bind def %Reproduktionsfarben /tfg {0.0 1.0 0.0 setrgbcolor} bind def /tfb {0.0 0.0 1.0 setrgbcolor} bind def /tfc {0.0 1.0 1.0 setrgbcolor} bind def /tfm {1.0 0.0 1.0 setrgbcolor} bind def /tfy {1.0 1.0 0.0 setrgbcolor} bind def /tfw {1.00 1.00 1.00 setrgbcolor} bind def %Graureihe /tfh {0.75 0.75 0.75 setrgbcolor} bind def /tfz {0.50 0.50 0.50 setrgbcolor} bind def /tfd {0.25 0.25 0.25 setrgbcolor} bind def /tfn {0.00 0.00 0.00 setrgbcolor} bind def %*************************************************** /proc_equaHAU {%BEG proc_equaHAU /x00t 0050 def %La /x0pt 0150 def %equations /x01t 0600 def %phi /x02t 1100 def %CT /x03t 1850 def %S0 /x04t 2600 def %S1 /x05t 3400 def %B0 /x06t 4000 def %B*LY /x07t 4800 def %LLt/sx /x08t 5450 def %(La/Lt)/dx /xt0e 5740 def /yt0t 3750 def %title /yt0e 3200 def %main equations /y00t 2000 def /ydel 0250 def /y00tp 2300 def %top lines /Haub_Laj 8 array def %300 default, j=jchart=0,6 + 1 additonel (U) %j 0 1 2 3 4 5 6 jLaj 0 eq {/Haub_Laj [0300 1000 0200 0040 0008 01.6 0.32 ] def} if jLaj 1 eq {/Haub_Laj [1000 0200 0040 0008 01.6 0.32 0.064] def} if jLaj 2 eq {/Haub_Laj [1500 0300 0030 0003 00.3 0.03 0.003] def} if ifunc 1 ge {0 yt0t 250 add moveto 6000 0 rlineto stroke} if x00t yt0t moveto TBL (Relationship brightness ) showen (Beziehung Hellheit ) showde (B*) jLs -60 -30 rmoveto ifunc 1 le {(LT) ibLs} {(YT) ibLs} ifelse 0 30 rmoveto ipu 1 le {%ipu=0 TBL ( and luminance ) showen ( und Leuchtdichte ) showde (L) jLs (T) ibLs }%ipu=0 {%ipu=1 TBL ( and viewing angle ) showen ( & Beobachtungswinkel ) showde SL (j) show } ifelse %ipu=1 TBL ( as function) showen ( als Funktion) showde x00t yt0t 250 sub moveto TBL (of tristimulus value ) showen (von Normfarbwert ) showde (Y) jLs (T) ibLs TBL ( for the adaptation luminance ) showen ( f\374r Adaptationsleuchtdichte ) showde (L) jLs (a) ibLs 20rm (=) bLs 20rm Haub_Laj jchartl get cvishow ( cd/m) bLs (2) ebLs 0 yt0t 250 sub 80 sub moveto 6000 0 rlineto stroke %/iout 1 def %iout 1 eq {%iout=1 x0pt yt0e moveto (B*) jLs -60 -30 rmoveto ifunc 1 le {(LT) ibLs} {(YT) ibLs} ifelse 0 30 rmoveto (\050) bLs (L) jLs (T) ibLs (, ) bLs (L) jLs ifunc 1 le {(a) ibLs} {(r) ibLs} ifelse ifunc 2 eq {(, ) bLs (L) jLs (r) ibLs} if (, ) bLs SL (j) show (\051) bLs ( = ) bLs ifunc 2 eq {([) bLs} if %ifunc>=2 ifunc 0 eq ifunc 2 eq or {%ifunc=0,2 (C) jLs (T) ibLs (\050) bLs SL (j) show (\051) bLs 20rm (L) jLs (T) ibLs -60 0 rmoveto (n) ebLs ( - ) bLs (B) jLs ifunc 0 eq {(a) ibLs}{(r) ibLs} ifelse (\050) bLs (L) jLs ifunc 0 eq {(a) ibLs}{(r) ibLs} ifelse (, ) bLs SL (j) show (\051) bLs } if %ifunc=0,2 ifunc 1 eq {%ifunc=1 (s) bLs (x) ibLs (\050) bLs SL (j) show (\051) bLs 20rm (L) jLs (T) ibLs -60 0 rmoveto (n) ebLs ( - ) bLs (d) jLs (xa) ibLs (\050) bLs (L) jLs (a) ibLs (, ) bLs SL (j) show (\051) bLs } if %ifunc=1 ifunc 2 eq {(]) bLs 20rm (B*) jLs -60 0 rmoveto (ra) ibLs} if ifunc 3 eq {%ifunc=3 (s) bLs (yra) ibLs (\050) bLs SL (j) show (\051) bLs 20rm (L) jLs (T) ibLs -60 0 rmoveto (n) ebLs ( - ) bLs (d) jLs (yra) ibLs (\050) bLs SL (j) show (\051) bLs } if %ifunc=3 ifunc 1 le {xt0e 1400 sub yt0e moveto TBL (brightness ) showen (Hellheit ) showde (B*) jLs -60 -30 rmoveto (LT) ibLs} {xt0e 1400 sub yt0e moveto TBL (brightness ) showen (Hellheit ) showde (B*) jLs -60 -30 rmoveto (YT) ibLs } ifelse xt0e yt0e moveto ([1]) bLs x0pt yt0e 300 sub moveto (B) jLs ifunc 1 le {(a) ibLs (\050) bLs (L) jLs (a) ibLs} {(r) ibLs (\050) bLs (L) jLs (r) ibLs} ifelse (, ) bLs SL (j) show (\051) bLs ( = ) bLs (C) jLs (T) ibLs 20rm (\050) bLs SL (j) show (\051) bLs 20rm ([) bLs (S) jLs (0) ibLs (\050) bLs SL(j) show (\051 + ) bLs (S) jLs (1) ibLs (\050) bLs SL(j) show (\051) bLs 20rm (L) jLs ifunc 1 le {(a) ibLs}{(r) ibLs} ifelse -60 0 rmoveto (n) ebLs (]) bLs ifunc 1 le {%ifunc<=1,>=2 xt0e 1950 sub yt0e 300 sub moveto (\050n=0,31\051) bLs } {%ifunc>=2 xt0e 2400 sub yt0e 300 sub moveto (\050n=0,31) bLs (, ) bLs (B*) jLs -60 -10 rmoveto (ra) ibLs 0 10 rmoveto (=) bLs (B*) jLs -60 -30 rmoveto (LT,r) ibLs 0 30 rmoveto 20rm (/) bLs (B*) jLs -60 -30 rmoveto (LT,a) ibLs 0 30 rmoveto (\051) bLs } ifelse %ifunc>=2 xt0e yt0e 300 sub moveto ([2]) bLs ifunc 0 eq {%ifunc=0 x0pt yt0e 600 sub moveto (L) jLs (Lt) ibLs (\050) bLs (L) jLs (a) ibLs (, ) bLs SL (j) show (\051) bLs ( = ) bLs ([) bLs (S) jLs (0) ibLs (\050) bLs SL(j) show (\051 + ) bLs (S) jLs (1) ibLs (\050) bLs SL(j) show (\051) bLs 20rm (L) jLs (a) ibLs -60 0 rmoveto (n) ebLs (]) bLs 20rm (1/n) ebLs } if %ifunc=0 ifunc 2 eq {%ifunc=2 x0pt yt0e 600 sub moveto (L) jLs (Yt) ibLs (\050) bLs (L) jLs (a) ibLs (, ) bLs SL (j) show (\051) bLs ( = ) bLs ([) bLs (S) jLs (0) ibLs (\050) bLs SL(j) show (\051 + ) bLs (S) jLs (1) ibLs (\050) bLs SL(j) show (\051) bLs 20rm (L) jLs (r) ibLs -60 0 rmoveto (n) ebLs (]) bLs 20rm (1/n) ebLs %20rm (L) bLs (ra) iLs -80 0 rmoveto (n) ebLs 20rm (B*) jLs -60 -10 rmoveto (ra) iLs } if %ifunc=2 ifunc 1 eq {%ifunc=1 x0pt yt0e 600 sub moveto (s) jLs (x) ibLs (\050) bLs SL(j) show (\051) bLs ( = ) bLs (C) jLs (T) ibLs 20rm (\050) bLs SL (j) show (\051) bLs ( [3]) bLs x0pt 1900 add yt0e 600 sub moveto (d) jLs (xa) ibLs (\050) bLs SL(j) show (\051) bLs ( = ) bLs (B) jLs (a) ibLs (\050) bLs (L) jLs (a) ibLs (, ) bLs SL (j) show (\051) bLs ( [4]) bLs } if ifunc 3 eq {%ifunc=3 x0pt yt0e 600 sub moveto (s) jLs (yra) ibLs (\050) bLs SL(j) show (\051) bLs (=) bLs (C) jLs (T) ibLs 20rm (\050) bLs SL (j) show (\051) bLs 20rm (B*) jLs -60 -10 rmoveto (ra) ibLs ( [3]) bLs x0pt 2000 add yt0e 600 sub moveto (d) jLs (yra) ibLs (\050) show SL(j) show (\051) bLs (=) bLs (B) jLs (r) ibLs (\050) bLs (L) jLs (r) ibLs (, ) bLs SL (j) show (\051) bLs 20rm (B*) jLs -60 -10 rmoveto (ra) ibLs ( [4]) bLs } if ifunc 0 eq ifunc 2 eq or {%ifunc=0,2 xt0e 1950 sub yt0e 600 sub moveto (\050) bLs TBL (t=black threshold) showen (t=Schwarzschwelle) showde (\051) bLs } if %ifunc=0,2 ifunc 1 eq ifunc 3 eq or {%ifunc=1,3 xt0e 1350 sub yt0e 600 sub moveto (\050) bLs TBL (s=scaling factor) showen (s=Skalierfaktor) showde (\051) bLs } if %ifunc=1,3 ifunc 0 eq ifunc 2 eq or {%ifunc=0,2 xt0e yt0e 600 sub moveto ([3]) bLs } if %ifunc=0,2 x00t y00tp moveto ifunc 1 le {(L) jLs (T) ibLs} {(Y) jLs (T) ibLs} ifelse x01t y00tp moveto SL (j) show x02t y00tp moveto (C) jLs (T) ibLs (\050) bLs SL (j) show (\051) bLs x03t y00tp moveto SL (D) show 20rm ifunc 1 le {(L) jLs}{(Y) jLs} ifelse x04t 100 sub y00tp moveto (B*/B*) jLs -30 0 rmoveto (u) ibLs x05t 200 sub y00tp moveto ifunc 1 le {(B) jLs (a) ibLs (\050) bLs (L) jLs (a) ibLs (,) bLs SL (j) show (\051) bLs} {(B) jLs (r) ibLs (\050) bLs (L) jLs (r) ibLs (,) bLs SL (j) show (\051) bLs} ifelse x06t y00tp moveto (B*) jLs -60 -30 rmoveto ifunc 1 le {(LT) iLs} {(YT) iLs} ifelse 0 30 rmoveto x07t y00tp moveto ifunc 0 eq {(L) jLs (Lt) ibLs} if ifunc 1 eq {(s) bLs (x) ibLs (\050) bLs SL (j) show (\051) bLs} if ifunc 2 eq {(L) jLs (Yt) ibLs} if ifunc 3 eq {-100 0 rmoveto (s) bLs (yra) ibLs (\050) bLs SL (j) show (\051) bLs} if x08t y00tp moveto ifunc 0 eq {(L) jLs (a) ibLs (/) bLs (L) jLs (t) ibLs} if ifunc 1 eq {-050 0 rmoveto (d) bLs (xa) ibLs (\050) bLs SL (j) show (\051) bLs} if ifunc 2 eq {(L) jLs (a) ibLs (/) bLs (L) jLs (t) ibLs} if ifunc 3 eq {-100 0 rmoveto (d) bLs (yra) ibLs (\050) bLs SL (j) show (\051) bLs} if %} if %iout=1 } bind def %END proc_equaHAU %*************************************************** /proc_funcHAU1 {%BEG proc_funcHAU1 function Haubner 4 versions, ifunc-0 to 3 %from 'hnq5'Y10-3R_R.EPS, line 259:371 /ifunc 0 def /Haubdatj 8 array def %phi, Cr(phi), S0(phi), S1(phi) %BEG Haubdati Table 1, 7 data %A Unified Relationship between Brightness an Luminance %P. Haubner, H.-W. Bodmann and A.W. Marsden %Siemens Forsch. u. Entwickl.Ber. Bd. 9 (1980), Nr. 6, p.315-318 /phi 8 array def %from above publication, i=ichart=0,6 120,90,..,10 /CTi 8 array def /S0i 8 array def /S1i 8 array def %inverse Table 1 order of Haubner, used as default, index i=ichart=0,6 & 0 /phi [120 100 090 060 030 020 010 120 ] def /CTi [22.969 23.128 23.415 23.973 26.235 27.971 30.747 22.969 ] def /S0i [0.07186 0.07473 0.10868 0.13133 0.17975 0.20132 0.27308 0.07186] def /S1i [0.24481 0.24943 0.25265 0.26578 0.31888 0.35557 0.39842 0.24481] def /Haub_Laj 8 array def %300 default, index j=jchart=0,6 %j 0 1 2 3 4 5 6 jLaj 0 eq {/Haub_Laj [0300 1000 0200 0040 0008 01.6 0.32 ] def} if jLaj 1 eq {/Haub_Laj [1000 0200 0040 0008 01.6 0.32 0.064] def} if jLaj 2 eq {/Haub_Laj [3000 0300 0030 0003 00.3 0.03 0.003] def} if /Haub_n 0.31 def %fix /Haub_1Mn 1 0.31 div def %=3.2268 (1Mn=1-Minus-n) /Haub_B0i 8 array def %=7x7 options for jchart=0,7 /Haub_Lti 8 array def %t=black threshold /Haub_B*i 8 array def %brightness - Hellheit /Laj Haub_Laj jchart get def %a=7 Adaptations white La=300, 1000, ..0.32 /Lajen Laj Haub_n exp def /Lr 300 def %r=reference=La0 /Lren Lr Haub_n exp def %e=exponent /Lrdaj Lr Laj div def /Lrdajen Lrdaj Haub_n exp def /Lajdr Laj Lr div def /Lajdren Lajdr Haub_n exp def /LTj Laj def %0.01Laj < Haub_Laj < 10Laj %or 0,16 <= Haub_Laj <= 5000 cd/m^2 /LTjen LTj Haub_n exp def /LTjdaj LTj Laj div def /LTjdajen LTjdaj Haub_n exp def /Lu Lr 0.18 mul def /Luen Lu Haub_n exp def %d diffuse white for i=2, j=0(top left),1(top right),2(down left,3(down right) %B0(Lr ,d)= CTi(d) [S0i(d) + S1i(d) * Lr^n ] %B0(Laj,d)= CTi(d) [S0i(d) + S1i(d) * Laj^n] %B0(Lr,d)/B0(Laj,d)=[S0i(d) + S1i(d) * Lr^n] /[S0i(d) + S1i(d) * Laj^n] %B0(Laj,d)/B0(Lr,d)=[S0i(d) + S1i(d) * Laj^n]/[S0i(d) + S1i(d) * Lr^n ] % %only for phi=120 mit fix constants CTi, S0i & S1i and i=0 /CTLr CTi 0 get def %Lr =reference white 300 cd/m^2 /CTLaj CTi 0 get def %Laj=diffuse white 300,1000,200,40,8 cd/m^2 /B0Lr S0i 0 get S1i 0 get Lren mul add CTi 0 get mul def %=34,60 /B0Laj S0i 0 get S1i 0 get Lajen mul add CTi 0 get mul def %=34,60, 49,51,.. %B0LrdLaj=(S0i 0 get S1i 0 get Lren mul add) % /(S0i 0 get S1i 0 get Lajen mul add) /B0LrdLaj B0Lr B0Laj div def %=1,00 (300), 34,60/49,51=0,6988 (1000), .. /B0LajdLr B0Laj B0Lr div def %=1,00 (300), 49,51/34,60=1,4300 (1000), .. /B*B0Lr CTi 0 get Lren mul B0Lr sub def %=100 for Lr =300 /B*B0Laj CTi 0 get Lajen mul B0Laj sub def %=100 (300), 146 (1000), .. /B*B0LrdLaj B*B0Lr B*B0Laj div def %=100 (300), 100/146=0,6849 (1000), .. /B*B0LajdLr B*B0Laj B*B0Lr div def %=100 (300), 146/100=1,4600 (1000), /B*faj B*B0Lr B*B0Laj div def %=100/146 for Lr=300 to Laj=1000 /Bfaj B0Lr B0Laj div def %=34,60/49,51 for Lr=300 to Laj=1000 /Ltji 8 array def %t=black threshold, equ. (71), Haubner, PhD-thesis /Ytrji 8 array def %7 relative black thresholds /Lji 8 array def /Lri 8 array def /B*Li 8 array def %includes La,phi (only) /B*Yi 8 array def %includes La,phi and Lr=300 (r=reference) /B0ji 8 array def /B0ri 8 array def /B*Lji 8 array def /B*Yrji 8 array def /B*L2i 8 array def %B*Li/B*L2j relative to D /B*Yr2i 8 array def %B*Yi/B*Y2j /B*L4i 8 array def %B*Li/B*L4j relative to U /B*Yr4i 8 array def %B*Yi/B*Y4j /DLi 8 array def %delta_L /DYi 8 array def %delta_Y /sxi 8 array def /dxji 8 array def /syrji 8 array def /dyrji 8 array def /CTji 8 array def /B*LTui 8 array def /B*YTui 8 array def /B*Lrui 8 array def /B*Yrui 8 array def /DLTui 8 array def /DYTui 8 array def /LTui 8 array def /YTui 8 array def 0 1 6 {/i exch def %i=0,6 %This is for original Haubner for La=300 normalized to B*Li=B0i=100 %B0(La,p) = Cri(p) [S0i(p) + S1i(p) * La^n] Lji i Laj put Lri i Lr put B0ji i S0i i get S1i i get Lajen mul add CTi i get mul put B0ri i S0i i get S1i i get Lren mul add CTi i get mul put sxi i CTi i get put dxji i B0ji i get put syrji i CTi i get B*B0LrdLaj mul put dyrji i B0ri i get B*B0LrdLaj mul put Ltji i S0i i get S1i i get Lajen mul add Haub_1Mn exp put Ytrji i Ltji i get B*B0LrdLaj mul put B*Lji i CTi i get LTjen mul B0ji i get sub put B*Yrji i CTi i get LTjen mul B0ri i get sub B*B0LrdLaj mul put CTji i Laj Ltji i get div put } for %i=0,6 /iout 1 def iout 1 eq {%iout=1 /i 7 def Lji i Lji 4 get put Lri i Lr put B0ji i B0ji 4 get put B0ri i B0ri 4 get put sxi i sxi 4 get put dxji i dxji 4 get put syrji i syrji 4 get put dyrji i dyrji 4 get put Ltji i Ltji 4 get put Ytrji i Ytrji 4 get put B*Lji i B*Lji 4 get put B*Yrji i B*Yrji 4 get put CTji i CTji 4 get put } if %iout=1 /Haub_n 0.31 def /Haub_1Mn 1 0.31 div def %for phi 0 get=120'(i=0), B0ji 0 get=34,60 (i=0,j=0), %CTi 0 get (i=0), S0i 0 get (i=0), S1i 0 get (i=0), n=0,31 /phu phi 0 get def %i=0 /CTu CTji 0 get def %i=0 /S0u S0i 0 get def %i=0 /S1u S1i 0 get def %i=0 /B0u B0ji 0 get def %j=0,1,2,3 %example for B*La=145 (for Laj=1000) /CTd CTji 0 get def /B0d B0ji 0 get def /B*Ld B*Lji 0 get def %= 145 (d=diffuse white) /LTd Lji 0 get def /YTd LTd Laj div 100 mul def /B*del B*Ld 4 div def 0 1 5 {/i exch def %i=0,5 B*LTui i B*Ld B*del 2 mul add i B*del mul sub put B*YTui i B*LTui i get B*B0LrdLaj mul put LTui i B*LTui i get B0u add CTu div Haub_1Mn exp put YTui i LTui i get B*B0LrdLaj mul put } for %i=0,5 %$STOP71 B*LTui 6 0 put %n B*YTui 6 0 put LTui 6 Ltji 0 get put YTui 6 Ytrji 0 get put %$STOP72 B*LTui 7 B*LTui 4 get put %u B*YTui 7 B*YTui 4 get put LTui 7 LTui 4 get put YTui 7 YTui 4 get put %$STOP77 %calculation of relative data B*L and delta_L or B*Y and delta_Y 0 1 7 {/i exch def %i=0,7 B*Lrui i B*LTui i get B*LTui 4 get div put B*Yrui i B*YTui i get B*YTui 4 get div put ifunc 1 le {%ifunc<=1,>1 DLTui i B*LTui i get 1 add B0u add CTu div Haub_1Mn exp i 6 ne {B*LTui i get B0u add CTu div Haub_1Mn exp} {0} ifelse sub put }%ifunc<=1 {%ifunc>1 DYTui i B*YTui i get 1 add B0u add CTu div Haub_1Mn exp i 6 ne {B*YTui i get B0u add CTu div Haub_1Mn exp} {0} ifelse sub put } ifelse %ifunc>1 } for %i=0,7 %$STOP78 /Name 8 array def % 0 1 2 3 4 5 6 7 /Name [(P) ( ) (D) ( ) (U) ( ) (N) (U)] def ipu 0 eq {%ipu=0 /j jchart def 0 1 7 {/i exch def %i=0,7 /k i 6 mul j add def /y00ti y00t i i 7 eq {0.3 add} if ydel mul sub def x00t y00ti moveto Haub_Laj j get cvishow i 6 le {%i<=6,7 x01t y00ti moveto phi i get cvishow (') show x02t y00ti moveto CTi i get cvsshow3x x03t y00ti moveto S0i i get cvsshow4x x04t y00ti moveto S1i i get cvsshow4x x05t y00ti moveto ifunc 1 le {B0ji i get cvsshow2x} {B0ri i get cvsshow2x} ifelse }%i<=6,7 {%i=7 x01t y00ti moveto phi 0 get cvishow (') show x02t y00ti moveto CTi 0 get cvsshow3x x03t y00ti moveto ifunc 1 le {DLTui i get cvsshow3x} {DYTui i get cvsshow3x} ifelse x04t y00ti moveto ifunc 1 le {B*LTui i get B*LTui 4 get div cvsshow2x} {B*YTui i get B*YTui 4 get div cvsshow2x} ifelse x05t y00ti moveto ifunc 1 le {B0ji 0 get cvsshow2x} {B0ri 0 get cvsshow2x} ifelse x06t y00ti moveto ifunc 1 le {B*Li i get cvsshow2x} {B*Yi i get cvsshow2x} ifelse } ifelse %<=6,7 x07t y00ti moveto ifunc 0 eq {Lti get cvsshow2x} if ifunc 1 eq {sxi k get cvsshow2x} if ifunc 2 eq {Yti k get cvsshow2x} if ifunc 3 eq {syi k get cvsshow2x} if x08t y00ti moveto ifunc 0 eq {CTi k get cvsshow2x} if ifunc 1 eq {dxi k get cvsshow2x} if ifunc 2 eq {CTi k get cvsshow2x} if ifunc 3 eq {dyi k get cvsshow2x} if } for %i=0,7 } if %ipu=0 ipu 1 eq {%ipu=1 /j jchart def 0 1 7 {/i exch def %i=0,7 /k i 6 mul j add def /y00ti y00t i i 7 eq {0.3 add} if ydel mul sub def x00t y00ti moveto ifunc 1 le {LTui i get cvsshow2x} {YTui i get cvsshow2x} ifelse x01t y00ti moveto phi 0 get cvishow (') show x02t y00ti moveto CTi 0 get cvsshow3x x03t y00ti moveto ifunc 1 le {DLTui i get cvsshow3x} {DYTui i get cvsshow3x} ifelse x04t y00ti moveto ifunc 1 le {B*LTui i get B*LTui 4 get div cvsshow2x} {B*YTui i get B*YTui 4 get div cvsshow2x} ifelse 30 0 rmoveto Name i get show x05t y00ti moveto ifunc 1 le {B0ji i get cvsshow2x} {B0ri i get cvsshow2x} ifelse x06t y00ti moveto ifunc 1 le {B*LTui i get cvsshow2x} {B*YTui i get cvsshow2x} ifelse x07t y00ti moveto ifunc 0 eq {Ltji 0 get cvsshow2x} if ifunc 1 eq {sxi 0 get cvsshow2x} if ifunc 2 eq {Ytrji 0 get cvsshow2x} if ifunc 3 eq {syrji 0 get cvsshow2x} if x08t y00ti moveto ifunc 0 eq {CTi 0 get cvsshow2x} if ifunc 1 eq {dxji 0 get cvsshow2x} if ifunc 2 eq {CTi 0 get cvsshow2x} if ifunc 3 eq {dyrji 0 get cvsshow2x} if } for %i=0,7 } if %ipu=1 %$STOP79 } bind def %END proc_funcHAU1 function Haubner 7x7 versions, ifunc-0 to 3 %*************************************************** %%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 1 def /lanind2 1 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 % 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 /cvishow0 {cvi 6 string cvs show} def 72 90 translate 0.010 MM dup scale /xbtex0 0 def %xbtex=0 for files Y1(0/1)-(3/7)n.EPS xbtex0 1 eq {%xbtex0=1 40 setlinewidth /ymax1 08550 def /xmax1 12250 def 1.0 setgray 0 0 moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto closepath fill 0 setgray 0 0 moveto xmax1 0 rlineto 0 ymax1 rlineto xmax1 neg 0 rlineto closepath stroke TK 0 setgray 150 /Times-ISOL1 FS 150 -140 moveto (hes90-3R_R) show } if %xbtex0=1 %$STOP0 /ipu 1 def %0:phi change 120'>=10', 1:La change 1000, 200, 40, 8 example /xpos [00000 00000 00000 00000] def /ypos [00000 00000 00000 00000] def /x00t 0400 def %xpos for BEG equations /x01t 1900 def %xpos for shift equations /x00e 5250 def %xpos for Num equations /jLaj 0 def %0:300,1000,200,40 %1:1000,200,40,8 %2:3000,300,30,3 /jchartl 1 def %2 1 2 {/jchartl exch def %jchartl=0,3 jchartl 0 eq {/jchart 0 def} if %0300 cd/m^2 jchartl 1 eq {/jchart 1 def} if %1000 cd/m^2 jchartl 2 eq {/jchart 2 def} if %0200 cd/m^2 jchartl 3 eq {/jchart 3 def} if %0040 cd/m^2 /xchartl 1 def %0 1 3 {/xchartl exch def %xchartl=0,3 /ifuncl 0 def 0 1 3 {/ifuncl exch def %ifuncl=0,3 gsave /ifunc ifuncl def ifunc 0 eq {/kchartl 0 def /pchartl 0 def} if %0,0:left top page ifunc 1 eq {/kchartl 1 def /pchartl 0 def} if %1,0:right top page ifunc 2 eq {/kchartl 0 def /pchartl 4 def} if %0,4:left down page ifunc 3 eq {/kchartl 1 def /pchartl 4 def} if %1,4:right down page 20 setlinewidth xpos ifuncl get ypos ifuncl get translate 0 setgray 150 /Times-ISOL1 FS 150 -140 moveto (hes9) show 0 xchartl 2 ge {1 add} if cvishow0 (-) show ifuncl 1 add xchartl 1 eq xchartl 3 eq or {4 add} if cvishow0 (a) show %a /xwidth 6000 def /ywidth 4000 def 25 setlinewidth 1 1 1 setrgbcolor 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath fill %0 setlinewidth %0 0 moveto xwidth 0 rlineto 0 ywidth rlineto % xwidth neg 0 rlineto closepath clip 20 setlinewidth 0 setgray 0 0 moveto xwidth 0 rlineto 0 ywidth rlineto xwidth neg 0 rlineto closepath stroke %BEG ifunc=0,1,2,3 ******************************************** proc_equaHAU %$STOPM1 proc_funcHAU1 %$STOPM2 TK 0 setgray 150 /Times-ISOL1 FS 1000 -140 moveto (j=) nSs jchart cvishow (, ) nSs (L) jSs (r) iSs (=) nSs Lr cvishow (, ) nSs (L) jSs (aj) iSs (=) nSs Laj cvishow (, ) nSs %(n) jSs (=0,31, ) nSs SS (j) show (=) nSs phi 0 get cvishow (', ) show /ioutx 0 def ioutx 1 eq {%ioutx=1 ifunc 0 eq {(B) jSs (a) iSs (=) nSs B0ji jchart get cvsshow2x (, ) nSs (B*) jSs -60 -30 rmoveto (LT) iSs 0 30 rmoveto (=) nSs B*Li jchart get cvsshow2x } if ifunc 1 eq {(B) jSs (a) iSs (=) nSs B0ji jchart get cvsshow2x (, ) nSs (B*) jSs -60 -30 rmoveto (YT) iSs 0 30 rmoveto (=) nSs B*Li jchart get cvsshow2x (, ) nSs (s) jSs (x) iSs (=) nSs sxi jchart get cvsshow2x (, ) nSs (d) jSs (xa) iSs (=) nSs dxi jchart get cvsshow2x } if ifunc 2 eq {(B) jSs (r) iSs (=) nSs B0ri jchart get cvsshow2x (, ) nSs (B*) jSs -60 -30 rmoveto (YT) iSs 0 30 rmoveto (=) nSs B*Yi jchart get cvsshow2x } if ifunc 3 eq {(B) jSs (r) iSs (=) nSs B0ri jchart get cvsshow2x (, ) nSs (B*) jSs -60 -30 rmoveto (YT) iSs 0 30 rmoveto (=) nSs B*Yi jchart get cvsshow2x (, ) nSs (s) jSs (yra) iSs (=) nSs syi jchart get cvsshow2x (, ) nSs (d) jSs (yra) iSs (=) nSs dyi jchart get cvsshow2x } if } if %ioutx=1 xpos ifuncl get neg ypos ifuncl get neg translate grestore } for %ifuncl=0,3 %} for %xchartl=0,3 %} for %jchartl=0,3 showpage grestore %%Trailer