%!PS-Adobe-3.0 EPSF-3.0 http://farbe.li.tu-berlin.de/ggk5/ggk5l00XX.PS 20240201 %%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/ggk5/ggk5.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:2024020112000) /ModDate (D:20240201112000) /DOCINFO pdfmark [ /View [ /FitB ] /DOCVIEW pdfmark %Y10M00na.ps6 %line 20****************************************************** %BEG ggk5/OUTLIN10.PS Emty 20210418 %END ggk5/OUTLIN10.PS Emty 20210418 %BEG ggk5/OUTLIN1X.PS 20210418 %EMPTY %END ggk5/OUTLIN1X.PS 20210418 %BEG ggk5/OUTLIN1Y2.PS Emty 20210418 %END ggk5/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 /tfbs {0 0.5 1 setrgbcolor} bind def /tfy {1 1 0 setrgbcolor} bind def /tfg {0 1 0 setrgbcolor} bind def /tfr {1 0 0 setrgbcolor} bind def /tfb {0 0 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 %11 %12 %13 %14 %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 ggk50-1 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark01 [ /View [ /Fit ] /DOCVIEW pdfmark01 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 0 1 0 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-1) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-1N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-2 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark02 where {pop} {userdict /pdfmark02 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark02 [ /View [ /Fit ] /DOCVIEW pdfmark02 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 1 1 1 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-2) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-2N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-3 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark03 where {pop} {userdict /pdfmark03 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark03 [ /View [ /Fit ] /DOCVIEW pdfmark03 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 2 1 2 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-3) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-3N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-4 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark04 where {pop} {userdict /pdfmark04 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark04 [ /View [ /Fit ] /DOCVIEW pdfmark04 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 3 1 3 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-4) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-4N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-5 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark05 where {pop} {userdict /pdfmark05 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark05 [ /View [ /Fit ] /DOCVIEW pdfmark05 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 4 1 4 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-5) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-5N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-6 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark06 where {pop} {userdict /pdfmark06 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark06 [ /View [ /Fit ] /DOCVIEW pdfmark06 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 5 1 5 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-6) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-6N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-7 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark07 where {pop} {userdict /pdfmark07 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark07 [ /View [ /Fit ] /DOCVIEW pdfmark07 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 6 1 6 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-7) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-7N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk50-8 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark08 where {pop} {userdict /pdfmark08 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark08 [ /View [ /Fit ] /DOCVIEW pdfmark08 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if /KN 0 def %for KN=normalization 1 %/KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 7 1 7 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk50-8) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y10-8N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-1 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark11 [ /View [ /Fit ] /DOCVIEW pdfmark11 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 0 1 0 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-1) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-1N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-2 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark12 [ /View [ /Fit ] /DOCVIEW pdfmark12 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 1 1 1 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-2) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-2N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-3 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark13 [ /View [ /Fit ] /DOCVIEW pdfmark13 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 2 1 2 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-3) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-3N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-4 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark14 [ /View [ /Fit ] /DOCVIEW pdfmark14 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 3 1 3 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-4) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-4N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-5 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark15 [ /View [ /Fit ] /DOCVIEW pdfmark15 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 4 1 4 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-5) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-5N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-6 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark16 [ /View [ /Fit ] /DOCVIEW pdfmark16 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 5 1 5 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-6) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-6N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-7 %%BoundingBox: 70 83 226 206 %START PDFDE011.EPS /pdfmark17 where {pop} {userdict /pdfmark17 /cleartomark load put} ifelse /languagelevel where {pop languagelevel} {1} ifelse 2 lt { userdict (<<) cvn ([) cvn load put userdict (>>) cvn (]) cvn load put} if [/Title (PostScript pictures: farbe.li.tu-berlin.de/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark17 [ /View [ /Fit ] /DOCVIEW pdfmark17 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 6 1 6 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-7) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-7N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%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 ggk51-8 %%BoundingBox: 70 83 226 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/ggk5/ggk5.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:2024060112200) /ModDate (D:20240601112200) /DOCINFO pdfmark18 [ /View [ /Fit ] /DOCVIEW pdfmark18 %END PDFDE011 %SETCMYK_OLV.PS /setcmyk_olvcolor %transfer cmyk to olv {/ncolor exch def /ycolor exch def /mcolor exch def /ccolor exch def ncolor 0 eq {1 ccolor sub 1 mcolor sub 1 ycolor sub setrgbcolor } {ccolor 0 eq mcolor 0 eq and ycolor 0 eq and {%only black n 1 ncolor sub dup dup setrgbcolor } {%cmy and black n 1 ccolor sub 1 ncolor sub mul 1 mcolor sub 1 ncolor sub mul 1 ycolor sub 1 ncolor sub mul setrgbcolor } ifelse } ifelse } bind def /FS {findfont exch scalefont setfont} bind def /MM {72 25.4 div mul} def /str {8 string } bind def /languagelevel where {pop languagelevel} {1} ifelse /PSL12 exch def /dictende {counttomark 2 idiv dup dict begin {def} repeat pop currentdict end} bind def /Times-Roman findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Times-ISOL1 exch definefont pop /Times-Italic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesI-ISOL1 exch definefont pop /Times-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesB-ISOL1 exch definefont pop /Times-BoldItalic findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /TimesBI-ISOL1 exch definefont pop /Courier findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /Courier-ISOL1 exch definefont pop /Courier-Oblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierI-ISOL1 exch definefont pop /Courier-Bold findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierB-ISOL1 exch definefont pop /Courier-BoldOblique findfont dup length dict begin {1 index /FID ne {def} {pop pop} ifelse }forall /Encoding ISOLatin1Encoding def currentdict end /CourierBI-ISOL1 exch definefont pop /TG {350 /Times-ISOL1 FS} bind def /TM {280 /Times-ISOL1 FS} bind def /TK {240 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TL {160 /Times-ISOL1 FS} bind def /TLL {100 /Times-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TIM {280 /TimesI-ISOL1 FS} bind def /TIK {240 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIL {160 /TimesI-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBM {280 /TimesB-ISOL1 FS} bind def /TBK {240 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBL {160 /TimesB-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def /TBIM {280 /TimesBI-ISOL1 FS} bind def /TBIK {240 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIL {160 /TimesBI-ISOL1 FS} bind def /SG {350 /Symbol FS} bind def /SM {280 /Symbol FS} bind def /SK {240 /Symbol FS} bind def /SS {200 /Symbol FS} bind def /SL {160 /Symbol FS} bind def %%EndProlog gsave %lanindL2.EPS START 20000505 /lanind 0 def /lantex [(G) (E) (S) (F) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanindf where {pop /lanind1 lanindf def /lanind2 lanindf def /lanindd laninddf def} {/lanind1 0 def /lanind2 0 def} ifelse /colormf where {pop /colorm1 colormf def /colorm2 colormf def /colormd colormdf def} {/colorm1 0 def} ifelse /deintpf where {pop /deintp1 deintpf def /deintP2 deintpf def /deintpd deintpdf def} {/deintp1 0 def} ifelse /xcolorf where {pop /xcolor1 xcolorf def /xcolor2 xcolorf def /xcolord xcolordf def} {/xcolor1 0 def} ifelse /xchartf where {pop /xchart1 xchartf def /xchart2 xchartf def /xchartd xchartdf def /xchartm xchart2f xchart1f sub 1 add def} {/xchart1 0 def /xchartm 1 def} ifelse /xchart3f where {pop /xchart3 xchart3f def} {/xchart3 0 def} ifelse /xchart4f where {pop /xchart4 xchart4f def} {/xchart4 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} if %colorm=0, deintp=0 colorm 0 eq deintp 1 eq and {/Txx (e) def} if %colorm=0, deintp=1 colorm 1 eq deintp 0 eq and {/Txx (dd) def} if %colorm=1, deintp=0 colorm 1 eq deintp 1 eq and {/Txx (de) def} if %colorm=1, deintp=1 xchart 0 eq {/Txx (-) def} if %always independent of intended output gsave %LANINDL2 END /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 /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def %calculation of transformation data /FARBE 33 array def /FARBE [(R) (m) ( 561_770) %00 (Y) (m) ( 520_770) %01 (G) (m) ( 470_570) %02 (C) (m) ( 380_561) %03 (B) (m) ( 380_520) %04 (M) (m) ( 570_470) %05 (G) (o) ( 520_570) %06 (R) (o) ( 570_780) %07 (N) (0) ( 380_770) %08 (W) (0) ( 380_770) %09 (W) (1) ( 380_770) %10 ] def %/FARBE [(R) (m) ( 565_770) %00 % (Y) (m) ( 495_770) %01 % (G) (m) ( 475_575) %02 % (C) (m) ( 380_565) %03 % (B) (m) ( 380_495) %04 % (M) (m) ( 575_475) %05 % (N) (0) ( 380_770) %06 % (W) (0) ( 380_770) %07 % (W) (1) ( 380_770) %08 % ] def /xshift 10 array def %max 6 device + 4 elementary /yshift 10 array def /colori 10 array def /RX0 800 array def %10x80 /RX0 [ %(%Ro 00 570_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Ym 01 520_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Gm 02 470_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Cm 03 380_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Bm 04 380_520) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%Mm 05 570_470) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%Go 06 520_570) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0000 0000 0000 0000 0000 0000 0000 0000 0500 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 0500 0000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0000 0000 0000 0000 0000 0000 0000 0000 0000 0000 %(%N0(r=0,001) 07 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 0001 0001 0001 0001 0001 0001 0001 0001 0001 0001 %(%W1(r=1,000) 08 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %(%W1(r=1,000) 09 380_770) %380 %385 %390 %395 %400 %405 %410 %415 %420 %425 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %430 %435 %440 %445 %450 %455 %460 %465 %470 %475 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %480 %485 %490 %495 %500 %505 %510 %515 %520 %525 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %530 %535 %540 %545 %550 %555 %560 %565 %570 %575 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %580 %585 %590 %595 %600 %605 %610 %615 %620 %625 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %630 %635 %640 %645 %650 %655 %660 %665 %670 %675 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %680 %685 %690 %695 %700 %705 %710 %715 %720 %725 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 %730 %735 %740 %745 %750 %755 %760 %765 %770 %775 1000 1000 1000 1000 1000 1000 1000 1000 1000 1000 ] def %************************************************** /proc_ALLi_def {%BEG proc_ALLi_def ij=ix-2 0 1 ij {/i exch def %i=0,ij kx 1 eq {Xxi i X1i i get put Yxi i Y1i i get put Zxi i Z1i i get put Axi i A1i i get put Bxi i B1i i get put L*xi i L*1i i get put a*xi i a*1i i get put b*xi i b*1i i get put AANxi i AAN1i i get put BANxi i BAN1i i get put CANxi i CAN1i i get put idxi i id1i i get put wdxi i wd1i i get put hABxi i hAB1i i get put h*abxi i h*ab1i i get put } if kx 2 eq {Xxi i X2i i get put Yxi i Y2i i get put Zxi i Z2i i get put Axi i A2i i get put Bxi i B2i i get put L*xi i L*2i i get put a*xi i a*2i i get put b*xi i b*2i i get put AANxi i AAN2i i get put BANxi i BAN2i i get put CANxi i CAN2i i get put idxi i id2i i get put wdxi i wd2i i get put hABxi i hAB2i i get put h*abxi i h*ab2i i get put } if kx 3 eq {Xxi i X3i i get put Yxi i Y3i i get put Zxi i Z3i i get put Axi i A3i i get put Bxi i B3i i get put L*xi i L*3i i get put a*xi i a*3i i get put b*xi i b*3i i get put AANxi i AAN3i i get put BANxi i BAN3i i get put CANxi i CAN3i i get put idxi i id3i i get put wdxi i wd3i i get put hABxi i hAB3i i get put h*abxi i h*ab3i i get put } if kx 4 eq {Xxi i X4i i get put Yxi i Y4i i get put Zxi i Z4i i get put Axi i A4i i get put Bxi i B4i i get put L*xi i L*4i i get put a*xi i a*4i i get put b*xi i b*4i i get put AANxi i AAN4i i get put BANxi i BAN4i i get put CANxi i CAN4i i get put idxi i id4i i get put wdxi i wd4i i get put hABxi i hAB4i i get put h*abxi i h*ab4i i get put } if } for %i=1,ij } bind def %END proc_ALLi_def %*********************************************************** /proc_ALLi_ALLin {%BEG proc_ALLi_ALLin %new order from front, new data amount ix=ij+2 hABxin 0 hABxi imin get 360 xpn 0 eq {add}{sub} ifelse put %351-360=-9 h*abxin 0 h*abxi imin get 360 xpn 0 eq {add}{sub} ifelse put wdxin 0 wdxi imin get xpn 0 eq {400 sub 769 add}{769 sub 400 add} ifelse put %769=700+564-495 Xxin 0 Xxi imin get put Yxin 0 Yxi imin get put Zxin 0 Zxi imin get put Axin 0 Axi imin get put Bxin 0 Bxi imin get put L*xin 0 L*xi imin get put a*xin 0 a*xi imin get put b*xin 0 b*xi imin get put AANxin 0 AANxi imin get put BANxin 0 BANxi imin get put CANxin 0 CANxi imin get put idxin 0 idxi imin get put imin1 1 ij {/i exch def %32_57 old, imin=31(h=38) imin1=32 /in i imin1 sub 1 add def %i=32_57-32+1=01_26 new hABxin in hABxi i get put %in=1,26=26 values h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for 0 1 imin {/i exch def %0-31 old /in ij imin sub i add 1 add def %in=57-31+i+1=26+i+1=26+31+1 hABxin in hABxi i get put h*abxin in h*abxi i get put wdxin in wdxi i get put Xxin in Xxi i get put Yxin in Yxi i get put Zxin in Zxi i get put Axin in Axi i get put Bxin in Bxi i get put L*xin in L*xi i get put a*xin in a*xi i get put b*xin in b*xi i get put AANxin in AANxi i get put BANxin in BANxi i get put CANxin in CANxi i get put idxin in idxi i get put } for hABxin ix hABxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put %2.4+360 h*abxin ix h*abxi imin1 get 360 xpn 0 eq {sub}{add} ifelse put wdxin ix wdxi imin1 get xpn 0 eq {769 sub 400 add}{400 sub 769 add} ifelse put %769=700+564-495 Xxin ix Xxi imin1 get put Yxin ix Yxi imin1 get put Zxin ix Zxi imin1 get put Axin ix Axi imin1 get put Bxin ix Bxi imin1 get put L*xin ix L*xi imin1 get put a*xin ix a*xi imin1 get put b*xin ix b*xi imin1 get put AANxin ix AANxi imin1 get put BANxin ix BANxi imin1 get put CANxin ix CANxi imin1 get put idxin ix idxi imin1 get put } bind def %END proc_ALLi_ALLin %******************************************************** /proc_hAB_min {%BEG proc_hAB_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 hABxi i get hABxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 hABxi i get hABxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (hABxi=) show hABxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (hABxi1=) show hABxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_hAB_min %******************************************************** /proc_h*ab_min {%BEG proc_h*ab_min 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 h*abxi i get h*abxi i 1 add get sub -100 le {/imin i def exit} if }%xpn=0 {%xpn=1 h*abxi i get h*abxi i 1 add get sub 100 ge {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (h*abxi=) show h*abxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (h*abxi1=) show h*abxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_h*ab_min %******************************************************** /proc_iwd_min {%BEG proc_iwd_min 1 1 ij {/i exch def %i=1,ij idxi i get -1 eq {wdxi i wdxi i get 495 sub 700 add put} if } for %i=1,ij 0 1 ij {/i exch def %i=0,ij xpn 0 eq {%xpn=0,1 idxi i get 0 gt idxi i 1 add get -1 eq and {/imin i def exit} if }%xpn=0 {%xpn=1 idxi i get -1 eq idxi i 1 add get 0 gt and {/imin i def exit} if } ifelse %xpn=0,1 } for %i=1,ij /imin1 imin 1 add def htext 1 eq {%htext=1 0100 2800 yshift add moveto (kx=) show kx cvishow (, imin=) show imin cvishow 1100 2800 yshift add moveto (iwdxi=) show idxi imin get cvishow (, ) show wdxi imin get cvsshow1 2100 2800 yshift add moveto (imin1=) show imin1 cvishow 3100 2800 yshift add moveto (iwdxi1=) show idxi imin1 get cvishow (, ) show wdxi imin1 get cvsshow1 } if %htext=1 } bind def %END proc_iwd_min %******************************************************** /proc_hAB_tab {%BEG proc_hAB_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show hABxin i get cvsshow1 } for %i=1,ix newpath 180 faktx mul 00 fakty mul 40 0 360 arc fill 180 faktx mul 20 fakty mul 40 0 360 arc fill 180 faktx mul 40 fakty mul 40 0 360 arc fill 0 faktx mul -20 fakty mul 40 0 360 arc fill 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_hAB_tab %******************************************************** /proc_h*ab_tab {%BEG proc_h*ab_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxi i get cvsshow1 } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 500 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show h*abxin i get cvsshow1 } for %i=1,ix %newpath %180 faktx mul 00 fakty mul 40 0 360 arc fill %180 faktx mul 20 fakty mul 40 0 360 arc fill %180 faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_h*ab_tab %******************************************************** /proc_iwd_tab {%BEG proc_iwd_tab /ymaxn 2600 yshift add def /ydelx ydel 1.5 div def 0 1 ij {/i exch def %i=1,ij /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxi i get cvishow (, ) show wdxi i get cvishow } for %i=1,ij /ymaxn 1200 yshift add def 0 1 ix {/i exch def %i=1,ix /i10 i 10 idiv def /ie i i 10 idiv 10 mul sub def /xn 100 ie 490 mul add def xn ymaxn i10 ydelx mul sub moveto i cvishow (,) show idxin i get cvishow (, ) show wdxin i get cvishow } for %i=1,ix %newpath %700 400 sub faktx mul 00 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 20 fakty mul 40 0 360 arc fill %700 400 sub faktx mul 40 fakty mul 40 0 360 arc fill % 0 faktx mul -20 fakty mul 40 0 360 arc fill % 0 faktx mul 20 fakty mul 40 0 360 arc fill } bind def %END proc_iwd_tab %*************************************************** /proc_hABw_XYZ_cur {%BEG proc_hABw_XYZ_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %X 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Xxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %Z 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Zxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_XYZ_cur %******************************************************** /proc_hABw_ABCY_cur {%BEG proc_hABw_ABCY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %A 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %B 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Bxin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %CAB 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse Yxin i get fakty mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_ABCY_cur %******************************************************** /proc_hABw_LabC*_cur {%BEG proc_hABw_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix hw 0 eq {hABxin i get faktx mul} {wdxin i get 400 sub faktx mul} ifelse L*xin i get fakty mul 3 mul 1200 sub %y-shift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_hABw_LabC*_cur %******************************************************** /proc_h*ab_LabC*_cur {%BEG proc_h*ab_LabC*_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul b*xin i get fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt fakty mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %L* 0 1 ix {/i exch def %i=0,ix h*abxin i get faktx mul L*xin i get fakty mul 3 mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_h*ab_LabC*_cur %******************************************************** /proc_wd_abcY_cur {%BEG proc_wd_abcY_cur ctext 1 eq {%ctext=1 1 0 0 setrgbcolor %a* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 1 setrgbcolor %b* 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul BANxin i get faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 0 0 setrgbcolor %C*ab 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul AANxin i get dup mul BANxin i get dup mul add 0.0001 add sqrt faktz mul i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix 0 1 0 setrgbcolor %Y 0 1 ix {/i exch def %i=0,ix wdxin i get 400 sub faktx mul Yxin i get fakty mul 1200 sub %yshift i 0 eq {moveto} if i 1 ge i ix le and {lineto} if i ix eq {stroke} if } for %i=0,ix } if %ctext=1 } bind def %END proc_wd_abcY_cur %*************************************************** /proc_hh*w_YLC_samCGY {%BEG proc_hh*w_YLC_samCGY 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Cm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 483 eq {/i ii def exit} if } for %i=ix } if %Cm j 1 eq %Gm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 520 eq {/i ii def exit} if } for %i=ix } if %Gm j 2 eq %Ym {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 570 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (C) show imshow 0 1 1 setrgbcolor} if %Cm j 1 eq {AnY 100 sub BnY 150 add moveto (G) show imshow 0 1 0 setrgbcolor} if %Gm j 2 eq {AnY 100 sub BnY 150 add moveto (Y) show imshow 1 1 0 setrgbcolor} if %Ym newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samCGY %******************************************************** /proc_hh*w_YLC_samRMB {%BEG proc_hh*w_YLC_samRMB 0 setgray 0 1 2 {/j exch def %j=0,2 /i 0 def %default j 0 eq %Rm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 589 eq {/i ii def exit} if } for %i=ix } if %Rm j 1 eq %Mm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 725 eq {/i ii def exit} if %725=700+520-495 } for %i=ix } if %Mm j 2 eq %Bm {0 1 ix {/ii exch def %i=0,ix wdxin ii get cvi 471 eq {/i ii def exit} if } for %i=ix } if %Ym /AnY xhh*w 0 eq {hABxin i get } if xhh*w 1 eq {h*abxin i get } if xhh*w 2 eq {wdxin i get 400 sub} if faktx mul def /BnY yYLC 0 eq {Yxin i get } if yYLC 1 eq {L*xin i get 3 mul} if %3 mul with AB and ab* yYLC 2 eq {Axin i get dup mul Bxin i get dup mul add 0.0001 add sqrt} if yYLC 3 eq {a*xin i get dup mul b*xin i get dup mul add 0.0001 add sqrt} if fakty mul yshift add def TBIS j 0 eq {AnY 100 sub BnY 150 add moveto (R) show imshow 1 0 0 setrgbcolor} if %Rm j 1 eq {AnY 100 sub BnY 150 add moveto (M) show imshow 1 0 1 setrgbcolor} if %Mm j 2 eq {AnY 100 sub BnY 150 add moveto (B) show imshow 0 0 1 setrgbcolor} if %Bm newpath AnY BnY 90 0 360 arc fill 0 setgray newpath AnY BnY 90 0 360 arc stroke } for %j } bind def %END proc_hh*w_YLC_samRMB %**************************************************** /xcolorl xcolor def %0 1 0 {/xcolorl exch def %xcolorl=0,0 xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 F2 i F10 i get put } for %i=0,79 } if %/KN 0 def %for KN=normalization 1 /KN 1 def %for KN=normalization 0,886 /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /xdel 1005 def %/ydel 393 def %/ydel 275 def /ydel 175 def /x0 050 def /x1 -150 def /TELi 8 array def /TELi [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /X1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1i 99 array def /Z1i 99 array def /hxy1i 99 array def /XAN1i 99 array def /YAN1i 99 array def /ZAN1i 99 array def /A1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1i 99 array def /CAB1i 99 array def /hAB1i 99 array def /AAN1i 99 array def /BAN1i 99 array def /CAN1i 99 array def /L*1i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1i 99 array def /b*1i 99 array def /C*ab1i 99 array def /h*ab1i 99 array def /a'1i 99 array def /b'1i 99 array def /c'1i 99 array def /i11i 99 array def /i21i 99 array def /id1i 99 array def /ic1i 99 array def /w11i 99 array def /w21i 99 array def /w1c1i 99 array def /w2c1i 99 array def /wd1i 99 array def /wc1i 99 array def /wdc1i 99 array def /wcc1i 99 array def /X1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y1in 99 array def /Z1in 99 array def /hxy1in 99 array def /XAN1in 99 array def /YAN1in 99 array def /ZAN1in 99 array def /A1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B1in 99 array def /CAB1in 99 array def /hAB1in 99 array def /AAN1in 99 array def /BAN1in 99 array def /CAN1in 99 array def /L*1in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*1in 99 array def /b*1in 99 array def /C*ab1in 99 array def /h*ab1in 99 array def /a'1in 99 array def /b'1in 99 array def /c'1in 99 array def /i11in 99 array def /i21in 99 array def /id1in 99 array def /ic1in 99 array def /w11in 99 array def /w21in 99 array def /w1c1in 99 array def /w2c1in 99 array def /wd1in 99 array def /wc1in 99 array def /wdc1in 99 array def /wcc1in 99 array def /X2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2i 99 array def /Z2i 99 array def /hxy2i 99 array def /XAN2i 99 array def /YAN2i 99 array def /ZAN2i 99 array def /A2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2i 99 array def /CAB2i 99 array def /hAB2i 99 array def /AAN2i 99 array def /BAN2i 99 array def /CAN2i 99 array def /L*2i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2i 99 array def /b*2i 99 array def /C*ab2i 99 array def /h*ab2i 99 array def /a'2i 99 array def /b'2i 99 array def /c'2i 99 array def /i12i 99 array def /i22i 99 array def /id2i 99 array def /ic2i 99 array def /w12i 99 array def /w22i 99 array def /w1c2i 99 array def /w2c2i 99 array def /wd2i 99 array def /wc2i 99 array def /wdc2i 99 array def /wcc2i 99 array def /X2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y2in 99 array def /Z2in 99 array def /hxy2in 99 array def /XAN2in 99 array def /YAN2in 99 array def /ZAN2in 99 array def /A2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B2in 99 array def /CAB2in 99 array def /hAB2in 99 array def /AAN2in 99 array def /BAN2in 99 array def /CAN2in 99 array def /L*2in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*2in 99 array def /b*2in 99 array def /C*ab2in 99 array def /h*ab2in 99 array def /a'2in 99 array def /b'2in 99 array def /c'2in 99 array def /i12in 99 array def /i22in 99 array def /id2in 99 array def /ic2in 99 array def /w12in 99 array def /w22in 99 array def /w1c2in 99 array def /w2c2in 99 array def /wd2in 99 array def /wc2in 99 array def /wdc2in 99 array def /wcc2in 99 array def /X3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3i 99 array def /Z3i 99 array def /hxy3i 99 array def /XAN3i 99 array def /YAN3i 99 array def /ZAN3i 99 array def /A3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3i 99 array def /CAB3i 99 array def /hAB3i 99 array def /AAN3i 99 array def /BAN3i 99 array def /CAN3i 99 array def /L*3i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3i 99 array def /b*3i 99 array def /C*ab3i 99 array def /h*ab3i 99 array def /a'3i 99 array def /b'3i 99 array def /c'3i 99 array def /i13i 99 array def /i23i 99 array def /id3i 99 array def /ic3i 99 array def /w13i 99 array def /w23i 99 array def /w1c3i 99 array def /w2c3i 99 array def /wd3i 99 array def /wc3i 99 array def /wdc3i 99 array def /wcc3i 99 array def /X3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y3in 99 array def /Z3in 99 array def /hxy3in 99 array def /XAN3in 99 array def /YAN3in 99 array def /ZAN3in 99 array def /A3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B3in 99 array def /CAB3in 99 array def /hAB3in 99 array def /AAN3in 99 array def /BAN3in 99 array def /CAN3in 99 array def /L*3in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*3in 99 array def /b*3in 99 array def /C*ab3in 99 array def /h*ab3in 99 array def /a'3in 99 array def /b'3in 99 array def /c'3in 99 array def /i13in 99 array def /i23in 99 array def /id3in 99 array def /ic3in 99 array def /w13in 99 array def /w23in 99 array def /w1c3in 99 array def /w2c3in 99 array def /wd3in 99 array def /wc3in 99 array def /wdc3in 99 array def /wcc3in 99 array def /X4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4i 99 array def /Z4i 99 array def /hxy4i 99 array def /XAN4i 99 array def /YAN4i 99 array def /ZAN4i 99 array def /A4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4i 99 array def /CAB4i 99 array def /hAB4i 99 array def /AAN4i 99 array def /BAN4i 99 array def /CAN4i 99 array def /L*4i 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4i 99 array def /b*4i 99 array def /C*ab4i 99 array def /h*ab4i 99 array def /a'4i 99 array def /b'4i 99 array def /c'4i 99 array def /i14i 99 array def /i24i 99 array def /id4i 99 array def /ic4i 99 array def /w14i 99 array def /w24i 99 array def /w1c4i 99 array def /w2c4i 99 array def /wd4i 99 array def /wc4i 99 array def /wdc4i 99 array def /wcc4i 99 array def /X4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Y4in 99 array def /Z4in 99 array def /hxy4in 99 array def /XAN4in 99 array def /YAN4in 99 array def /ZAN4in 99 array def /A4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /B4in 99 array def /CAB4in 99 array def /hAB4in 99 array def /AAN4in 99 array def /BAN4in 99 array def /CAN4in 99 array def /L*4in 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*4in 99 array def /b*4in 99 array def /C*ab4in 99 array def /h*ab4in 99 array def /a'4in 99 array def /b'4in 99 array def /c'4in 99 array def /i14in 99 array def /i24in 99 array def /id4in 99 array def /ic4in 99 array def /w14in 99 array def /w24in 99 array def /w1c4in 99 array def /w2c4in 99 array def /wd4in 99 array def /wc4in 99 array def /wdc4in 99 array def /wcc4in 99 array def %actual possible data (x=1,2,3,4) /Xxi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxi 99 array def /Zxi 99 array def /hxyxi 99 array def /XANxi 99 array def /YANxi 99 array def /ZANxi 99 array def /Axi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxi 99 array def /CABxi 99 array def /hABxi 99 array def /AANxi 99 array def /BANxi 99 array def /CANxi 99 array def /L*xi 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xi 99 array def /b*xi 99 array def /C*abxi 99 array def /h*abxi 99 array def /a'xi 99 array def /b'xi 99 array def /c'xi 99 array def /i1xi 99 array def /i2xi 99 array def /idxi 99 array def /icxi 99 array def /w1xi 99 array def /w2xi 99 array def /w1cxi 99 array def /w2cxi 99 array def /wdxi 99 array def /wcxi 99 array def /wdcxi 99 array def /wccxi 99 array def /Xxin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Yxin 99 array def /Zxin 99 array def /hxyxin 99 array def /XANxin 99 array def /YANxin 99 array def /ZANxin 99 array def /Axin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /Bxin 99 array def /CABxin 99 array def /hABxin 99 array def /AANxin 99 array def /BANxin 99 array def /CANxin 99 array def /L*xin 99 array def %max 99 colours or 6 device colour + 4 elementary colours /a*xin 99 array def /b*xin 99 array def /C*abxin 99 array def /h*abxin 99 array def /a'xin 99 array def /b'xin 99 array def /c'xin 99 array def /i1xin 99 array def /i2xin 99 array def /idxin 99 array def /icxin 99 array def /w1xin 99 array def /w2xin 99 array def /w1cxin 99 array def /w2cxin 99 array def /wdxin 99 array def /wcxin 99 array def /wdcxin 99 array def /wccxin 99 array def 0 1 98 {/i exch def wd3i i 0 put id3i i 0 put } for /FARBEda 79 array def /FARBEca 79 array def /FARBEd 79 array def /FARBEc 79 array def FARBEda 00 (Cm=380_561) put FARBEca 00 (Rm=561_770) put FARBEd 00 (C) put FARBEc 00 (R) put FARBEda 13 (Gm=470_570) put FARBEca 13 (Mm=570_470) put FARBEd 13 (G) put FARBEc 13 (M) put FARBEda 23 (Ym=520_770) put FARBEca 23 (Bm=380_520) put FARBEd 23 (Y) put FARBEc 23 (B) put FARBEda 18 (Ym=495_770) put FARBEca 18 (Bm=380_495) put FARBEd 18 (Y) put FARBEc 18 (B) put %/xchartl xchart def %0 1 7 {/xchartl exch def %xchartl=0,7 /iacol 23 def /xchart4 0 def 7 1 7 {/xchart4 exch def %xchart4=%0,7 /xchartl 0 def %D65 allways for part 0 and 1 gsave %5 /Times-ISOL1 FS /cvishow {cvi 6 string cvs show} def %75 85 moveto %lanind cvishow (-) show %colorm cvishow %deintp cvishow %xcolorl cvishow %xchart cvishow %pchart cvishow %colsep cvishow (-L) show pmetam cvishow 72 90 translate 0.010 MM dup scale 150 /Times-ISOL1 FS 100 -150 moveto (ggk51-8) show xchart 0 ge {(n) show} if (_) show xchart 1 add cvishow 20 setlinewidth 0 0 1 0 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath fill 0 0 0 1 setcmyk_olvcolor 0 0 moveto 5400 0 rlineto 0 4000 rlineto 5400 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 0 1 1 {/Icom exch def %Icom=0,1 only for part 1 Icom 0 eq {/xpos 100 def /xpos1 12100 def} {%/xpos 12100 def /xpos 100 def /xpos1 100 def} ifelse %/ymax 3700 def /ymax 3820 def TBS xpos 50 sub ymax ydel 0 mul sub moveto (CIE\255Daten von ) showde (CIE data of) showea TBIS ( Ostwald) show TBS (\255Farben von maximalem Buntwert) showde ( colours of maximum chromatic value) showea xpos 50 sub ymax ydel 1 mul sub moveto TBIS (Y) show TBL 0 -60 rmoveto (w) show xcolorl 1 eq {(,10) show} if 0 60 rmoveto TBS KN 0 eq {(=100) show}{(=88,6) show} ifelse TBS (, ) show FARBEda iacol get show TBS (, ) show FARBEca iacol get show ( for ) showea ( f\374r ) showde TELi xchartl get show (, and ) showea (, und ) showde TBIS (NCS) show TBS ( for C) showea ( f\374r C) showde %********************************************************* /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %********************************************************* /WEL1 120 array def %irregular or regular definition /WEL2 120 array def %irregular or regular definition %0 1 2 3 4 5 6 7 8 9 /WEL1 [405 435 450 460 465 470 475 480 485 490 495 500 510 520 530 540 545 550 555 560 ] def /WEL1 [405 410 415 420 425 430 435 440 445 450 455 460 465 470 475 480 485 490 495 500 505 510 515 520 525 530 535 540 545 550 555 560 565 570 575 580 585 590 595 600 605 610 615 620 625 630 635 640 645 650 655 660 665 670 675 680 685 690 695 700 ] def 0 1 57 {/k exch def %k=0,57 %wavelength 405..700nm /j WEL1 k get 400 sub 5 idiv def /FF1 FXD j get def %start at 405..700nm /FF2 FYD j get def /FF3 FZD j get def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0 i11i k INP put i21i k IPN put } { i12i k IPN put i22i k INP put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def /XIENP XIE def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def /XIEPN XIE def } if %kNP>=0 %********************************************************* Icom 0 eq {%Icom=0 INP 0 ge {%INP>=0 % xpos xdel 0 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow %INCLUDEs rounding failure w11i k DOWXIE1 0.03 add cvi put w1c1i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow w21i k DOWXIE2 0.03 add cvi put w2c1i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 1 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show w21i k DOWXIE1 0.03 add cvi put w2c1i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 }%Icom=0 {%Icom=1 INP 0 ge {%INP>=0 % xpos xdel 1 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 0.03 add cvishow w22i k DOWXIE1 0.03 add cvi put w2c2i k () put /DOWEL1 DOWXIE1 def /DOWEL1c () def } if %INP>=0 IPN 0 ge {%IPN>=0 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE2 0.03 add cvishow w12i k DOWXIE2 0.03 add cvi put w1c2i k () put /DOWEL2 DOWXIE2 def /DOWEL2c () def } if %IPN>=0 IPN 0 lt {%IPN=-1 % xpos xdel 0 mul add 400 add ymax ydel LPP mul sub moveto % DOWXIE1 cvishow (c) show w12i k DOWXIE1 0.03 add cvi put w1c2i k (c) put /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } if %IPN=-1 } ifelse %Icom=0,1 0 0 0 1 setcmyk_olvcolor %********************************************************* 0 1 79 {/i exch def %i=0,79 RA i 0 put } for %i=0,79 INP -1 eq {/i1 0 def} %380nm {/i1 INP 5 add def} ifelse %405..700nm IPN -1 eq {/i2 79 def} %770nm {/i2 IPN 5 add def} ifelse %405..700nm i2 i1 ge {%i1i2 i1 1 79 {/i exch def %i=i1,79 RA i 1 put } for %i=i1,79 0 1 i2 {/i exch def %i=0,i2 RA i 1 put } for %i=0,i2 } ifelse %i1>i2 %correction i2 i1 ge {%i1i2 RA i1 0.5 put RA i2 0.5 XIEPN 0.5 sub add put } ifelse %i1>i2 %*************************************************** /X 0 def /Y 0 def /Z 0 def 0 1 079 {/i exch def %i=0,79 /X X F2N 00 i add get RA i get mul add def /Y Y F2N 80 i add get RA i get mul add def /Z Z F2N 160 i add get RA i get mul add def } for %i=0,79 KN 1 eq {%KN=1 /faktn 0.8859 def /X X faktn mul def /Y Y faktn mul def /Z Z faktn mul def % /faktw 0.025 faktn div def %approximately 2,8% % /Xc XW X sub def %c=antichromatic % /Yc YW Y sub def % /Zc ZW Z sub def % /X X Xc faktw mul add faktn mul def % /Y Y Yc faktw mul add faktn mul def % /Z Z Zc faktw mul add faktn mul def } if %KN=1 /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def %************************************************* Icom 1 eq {%Icom=1 /X XW X sub def /Y YW Y sub def /Z ZW Z sub def /SUM X Y add Z add def /XAN X SUM 0.0001 add div def /YAN Y SUM 0.0001 add div def /ZAN Z SUM 0.0001 add div def } if %Icom=1 /hxy YAN YANW sub XAN XANW sub 0.0001 add atan def Icom 0 eq {%Icom=0,1 X1i k X put Y1i k Y put Z1i k Z put %hxy1i k hxy put XAN1i k XAN put YAN1i k YAN put ZAN1i k ZAN put }%Icom=0 {%Icom=1 X2i k X put Y2i k Y put Z2i k Z put %hxy2i k hxy put XAN2i k XAN put YAN2i k YAN put ZAN2i k ZAN put } ifelse %Icom=0,1 /AAN X Y 0.0001 add div def /BAN Z Y 0.0001 add div 0.4 mul neg def /CAN AAN AANW sub dup mul BAN BANW sub dup mul add 0.0001 add sqrt def /A AAN AANW sub Y mul def /B BAN BANW sub Y mul def /CAB A dup mul B dup mul add 0.0001 add sqrt def /hAB B A 0.0001 add atan def Icom 0 eq {%Icom=0,1 Y1i k Y put A1i k A put B1i k B put CAB1i k CAB put hAB1i k hAB put AAN1i k AAN put BAN1i k BAN put CAN1i k CAN put }%Icom=0 {%Icom=1 Y2i k Y put A2i k A put B2i k B put CAB2i k CAB put hAB2i k hAB put AAN2i k AAN put BAN2i k BAN put CAN2i k CAN put } ifelse %Icom=0,1 /D13 1 3 div def /D841_108 841 108 div def /D16_116 16 116 div def /D24_116 24 116 div 3 exp def X XW div D24_116 gt {/FXXN X XW div 0.0001 add D13 exp def} {/FXXN D841_108 X XW div mul D16_116 add def} ifelse Y YW div D24_116 gt {/FYYN Y YW div 0.0001 add D13 exp def} {/FYYN D841_108 Y YW div mul D16_116 add def} ifelse Z ZW div D24_116 gt {/FZZN Z ZW div 0.0001 add D13 exp def} {/FZZN D841_108 Z YW div mul D16_116 add def} ifelse /L* 116. FYYN mul 16. sub def /a* 500. FXXN FYYN sub mul def /b* 200. FYYN FZZN sub mul def /C*ab a* dup mul b* dup mul add 0.5 exp def /h*ab b* a* 0.000001 add atan def /a' X Y 0.0001 add div D13 exp 0.2191 mul def /b' Z Y 0.0001 add div D13 exp -0.08376 mul def /c' a' dup mul b' dup mul add 0.0001 add sqrt def Icom 0 eq {%Icom=0,1 L*1i k L* put a*1i k a* put b*1i k b* put C*ab1i k C*ab put h*ab1i k h*ab put a'1i k a' put b'1i k b' put c'1i k c' put }%Icom=0 {%Icom=1 L*2i k L* put a*2i k a* put b*2i k b* put C*ab2i k C*ab put h*ab2i k h*ab put a'2i k a' put b'2i k b' put c'2i k c' put } ifelse %Icom=0,1 %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 X def /FF2 Y def /FF3 Z def /U1 XW def /U2 YW def /U3 ZW def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP i def exit} if } for %i=1,60 0 1 60 {/i exch def %i=1,60 /TN FAD i get FXU1 mul FBD i get FXU2 mul add FCD i get FXU3 mul add neg def /TP FAD i 1 add get FXU1 mul FBD i 1 add get FXU2 mul add FCD i 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN i def exit} if } for %i=1,60 TM Icom 0 eq {%Icom=0,1 id1i k INP put ic1i k IPN put }%Icom=0 {%Icom=1 id2i k INP put ic2i k IPN put } ifelse %Icom=0,1 %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow Icom 0 eq {%Icom=0,1 wd1i k DOWXIE1 0.03 add cvi put wdc1i k () put }%Icom=0 {%Icom=1 wd2i k DOWXIE1 0.03 add cvi put wdc2i k () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wd1i k DOWXIE2 0.03 add cvi put wdc1i k (c) put }%Icom=0 {%Icom=1 wd2i k DOWXIE2 0.03 add cvi put wdc2i k (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 0.03 add cvishow Icom 0 eq {%Icom=0,1 wc1i k DOWXIE2 0.03 add cvi put wcc1i k () put }%Icom=0 {%Icom=1 wc2i k DOWXIE2 0.03 add cvi put wcc2i k () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 0.03 add cvishow (c) show Icom 0 eq {%Icom=0,1 wc1i k DOWXIE1 0.03 add cvi put wcc1i k (c) put }%Icom=0 {%Icom=1 wc2i k DOWXIE1 0.03 add cvi put wcc2i k (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 0 0 0 1 setcmyk_olvcolor } for %k=0,57 } for %Icom=0,1 only for part 1 %************************************************************* %INCLUDE File 'TK03'Y11-8N.EPS /TS {170 /Times-ISOL1 FS} bind def /TK {200 /Times-ISOL1 FS} bind def /TM {270 /Times-ISOL1 FS} bind def /TG {320 /Times-ISOL1 FS} bind def /TIS {170 /TimesI-ISOL1 FS} bind def /TIK {200 /TimesI-ISOL1 FS} bind def /TIM {270 /TimesI-ISOL1 FS} bind def /TIG {320 /TimesI-ISOL1 FS} bind def /TBS {170 /TimesB-ISOL1 FS} bind def /TBK {200 /TimesB-ISOL1 FS} bind def /TBM {270 /TimesB-ISOL1 FS} bind def /TBG {320 /TimesB-ISOL1 FS} bind def /TBIS {170 /TimesBI-ISOL1 FS} bind def /TBIK {200 /TimesBI-ISOL1 FS} bind def /TBIM {270 /TimesBI-ISOL1 FS} bind def /TBIG {320 /TimesBI-ISOL1 FS} bind def /CBKK {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 /TSS {170 /Symbol FS} bind def /TSK {200 /Symbol FS} bind def /TSM {270 /Symbol FS} bind def /TSG {320 /Symbol FS} bind def /F89 0.8859 def % achromatic (D65), (D50), (C00) colours /XLWD65100 95.04 def /YLWD65100 100.00 def /ZLWD65100 108.88 def /XLWD65089 95.04 F89 mul def /YLWD65089 100.00 F89 mul def /ZLWD65089 108.88 F89 mul def /XLWD50100 96.42 def /YLWD50100 100.00 def /ZLWD50100 82.51 def /XLWD50089 96.42 F89 mul def /YLWD50089 100.00 F89 mul def /ZLWD50089 82.51 F89 mul def /XLWC00100 94.94 def /YLWC00100 100.00 def /ZLWC00100 108.76 def /XLWC00089 94.94 F89 mul def /YLWC00089 100.00 F89 mul def /ZLWC00089 108.76 F89 mul def /XYZC00100 303 array def /LABC00100 303 array def /YABC00100 303 array def /XYZC00089 303 array def /LABC00089 303 array def /YABC00089 303 array def %'TK0X'NCS_0099_ALLCD.LIS %NCS HUE CIRCLE 80 STEPs FROM NCS_CIE.TXT FOR ILLUMINANT C %FROM SWEDISH STANDARD SS019104 (1998), ANGLE ORDER %EXTRACT OF FILE 'TK0X'NCS_CIE_04.LIS %ELEMENTARY CIRCLE R->Y->G->B->R /NCS_0099_ALLCD 909 array def %80x9 + 21x9 steps, XYZ, xy, Lab* /NCS_0099_ALLCD [%BEG NCS_0099_ALLCD D=DECENDING=ANGLE ORDER % X Y Z x y L* a* b* (0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 %calculated L*a*b* values of NCS seem very strange, XYZ seem ok. (0099-Y95R) 29.76 13.21 0.35 0.6869 0.3049 43.08 159.10 101.25 (0099-Y90R) 32.26 15.00 0.00 0.6826 0.3174 45.63 156.61 115.28 (0099-Y85R) 34.42 16.88 0.00 0.6709 0.3291 48.11 151.48 123.16 (0099-Y80R) 36.29 18.80 0.02 0.6585 0.3411 50.45 144.92 130.31 (0099-Y75R) 38.16 20.74 0.09 0.6470 0.3516 52.66 138.87 136.31 (0099-Y70R) 40.00 22.70 0.00 0.6380 0.3620 54.76 133.09 144.62 (0099-Y65R) 41.70 24.67 0.00 0.6283 0.3717 56.75 126.98 151.10 (0099-Y60R) 43.23 26.70 0.00 0.6182 0.3818 58.70 119.97 157.45 (0099-Y55R) 44.64 28.85 0.05 0.6070 0.3923 60.65 111.95 162.93 (0099-Y50R) 46.17 31.20 0.07 0.5963 0.4029 62.68 103.79 169.37 (0099-Y45R) 48.06 33.87 0.07 0.5861 0.4130 64.86 96.02 176.49 (0099-Y40R) 50.43 37.00 0.05 0.5765 0.4230 67.28 88.51 184.89 (0099-Y35R) 53.27 40.69 0.09 0.5664 0.4326 69.96 80.76 192.97 (0099-Y30R) 56.32 44.80 0.08 0.5565 0.4427 72.76 72.43 202.58 (0099-Y25R) 59.37 49.31 0.12 0.5457 0.4532 75.64 62.90 211.48 (0099-Y20R) 63.00 54.80 0.08 0.5344 0.4649 78.93 52.07 223.06 (0099-Y15R) 67.28 61.55 0.17 0.5216 0.4771 82.67 39.54 234.08 (0099-Y10R) 70.67 68.00 0.31 0.5085 0.4893 86.01 25.93 243.03 (0099-Y05R) 71.81 72.44 0.50 0.4961 0.5004 88.18 12.38 247.27 (0099-Y00R) 70.77 74.50 0.70 0.4848 0.5104 89.16 -0.16 247.59 (0099-G95Y) 68.01 74.35 0.83 0.4750 0.5193 89.09 -11.22 245.52 (0099-G90Y) 64.67 73.10 0.84 0.4666 0.5274 88.50 -20.72 243.37 (0099-G85Y) 61.65 71.78 0.91 0.4589 0.5343 87.86 -28.94 240.26 (0099-G80Y) 58.80 70.30 0.83 0.4525 0.5411 87.14 -36.12 239.03 (0099-G75Y) 55.79 68.37 0.59 0.4472 0.5480 86.19 -42.49 239.21 (0099-G70Y) 52.61 66.00 0.57 0.4414 0.5538 85.00 -48.20 235.57 (0099-G65Y) 49.23 63.24 0.58 0.4355 0.5594 83.57 -53.65 230.55 (0099-G60Y) 45.54 60.00 0.65 0.4288 0.5650 81.84 -59.08 223.73 (0099-G55Y) 41.45 56.24 0.52 0.4220 0.5726 79.75 -64.94 218.67 (0099-G50Y) 37.13 52.20 0.42 0.4137 0.5816 77.40 -71.59 212.40 (0099-G45Y) 32.82 48.21 0.41 0.4030 0.5920 74.96 -79.51 204.41 (0099-G40Y) 28.62 44.50 0.37 0.3894 0.6056 72.56 -89.52 197.11 (0099-G35Y) 24.60 41.26 0.25 0.3722 0.6241 70.36 -102.50 191.72 (0099-G30Y) 20.89 38.50 0.32 0.3498 0.6449 68.39 -118.15 184.03 (0099-G25Y) 17.45 36.19 0.62 0.3216 0.6669 66.66 -136.75 173.57 (0099-G20Y) 13.89 34.30 0.61 0.2846 0.7030 65.20 -163.20 169.00 (0099-G15Y) 10.03 32.77 0.58 0.2313 0.7553 63.97 -202.12 165.30 (0099-G10Y) 6.69 31.50 2.15 0.1659 0.7808 62.93 -133.71 82.03 (0099-G05Y) 4.63 30.42 6.00 0.1128 0.7411 62.01 -153.65 58.41 (0099-G00Y) 3.71 29.50 11.65 0.0827 0.6575 61.22 -163.22 38.18 (0099-B95G) 3.73 28.75 18.43 0.0732 0.5647 60.56 -160.11 21.36 (0099-B90G) 4.59 28.20 24.53 0.0801 0.4919 60.07 -145.79 9.45 (0099-B85G) 5.24 27.88 28.51 0.0850 0.4524 59.78 -136.36 2.71 (0099-B80G) 5.41 27.70 31.32 0.0840 0.4299 59.62 -133.58 -1.65 (0099-B75G) 5.69 27.58 34.02 0.0846 0.4099 59.51 -129.82 -5.53 (0099-B70G) 6.20 27.50 36.72 0.0880 0.3905 59.43 -123.92 -9.16 (0099-B65G) 6.63 27.46 39.53 0.0900 0.3730 59.40 -119.19 -12.68 (0099-B60G) 7.10 27.40 42.36 0.0924 0.3565 59.34 -114.13 -16.10 (0099-B55G) 7.53 27.27 45.26 0.0940 0.3407 59.22 -109.51 -19.56 (0099-B50G) 7.95 27.00 48.06 0.0958 0.3252 58.97 -104.51 -23.02 (0099-B45G) 8.36 26.57 50.74 0.0975 0.3102 58.57 -99.11 -26.48 (0099-B40G) 8.75 26.00 53.31 0.0994 0.2952 58.04 -93.34 -29.99 (0099-B35G) 9.08 25.35 56.11 0.1003 0.2800 57.41 -87.85 -33.77 (0099-B30G) 9.43 24.60 59.00 0.1014 0.2644 56.68 -81.80 -37.74 (0099-B25G) 9.82 23.75 62.04 0.1027 0.2484 55.84 -75.05 -41.96 (0099-B20G) 10.33 22.80 65.04 0.1052 0.2323 54.87 -66.88 -46.26 (0099-B15G) 10.86 21.78 68.63 0.1072 0.2151 53.79 -58.23 -51.15 (0099-B10G) 11.52 20.70 72.73 0.1098 0.1972 52.62 -48.33 -56.52 (0099-B05G) 12.33 19.54 77.38 0.1129 0.1789 51.31 -37.03 -62.42 (0099-B00G) 13.30 18.30 82.68 0.1164 0.1601 49.86 -24.30 -68.92 (0099-R95B) 14.42 16.98 89.40 0.1194 0.1406 48.23 -10.19 -76.53 (0099-R90B) 15.91 15.70 96.79 0.1239 0.1223 46.58 5.84 -84.42 (0099-R85B) 17.79 14.58 102.91 0.1315 0.1078 45.05 22.85 -91.01 (0099-R80B) 19.96 13.60 106.75 0.1422 0.0969 43.65 40.05 -95.84 (0099-R75B) 22.17 12.71 106.96 0.1563 0.0896 42.32 56.38 -98.26 (0099-R70B) 24.54 11.90 106.15 0.1721 0.0835 41.06 72.44 -99.94 (0099-R65B) 27.40 11.17 105.72 0.1899 0.0774 39.87 89.50 -101.73 (0099-R60B) 30.76 10.50 102.12 0.2145 0.0732 38.73 107.40 -101.42 (0099-R55B) 33.65 9.87 91.81 0.2486 0.0729 37.61 122.64 -96.52 (0099-R50B) 33.49 9.30 73.19 0.2888 0.0802 36.56 126.63 -84.59 (0099-R45B) 30.17 8.83 52.30 0.3305 0.0967 35.65 118.44 -67.57 (0099-R40B) 26.93 8.40 36.38 0.3755 0.1171 34.80 109.42 -51.20 (0099-R35B) 24.21 8.00 24.48 0.4271 0.1411 33.98 101.53 -35.43 (0099-R30B) 22.28 7.80 16.38 0.4796 0.1679 33.56 94.68 -20.92 (0099-R25B) 21.64 7.95 11.54 0.5262 0.1933 33.88 90.34 -8.64 (0099-R20B) 21.86 8.30 8.35 0.5676 0.2156 34.60 88.22 2.27 (0099-R15B) 22.34 8.70 6.17 0.6003 0.2337 35.40 87.04 11.78 (0099-R10B) 23.12 9.30 4.22 0.6310 0.2538 36.56 85.59 22.91 (0099-R05B) 24.79 10.27 2.67 0.6571 0.2722 38.32 85.33 35.54 %(0099-R00B) 27.17 11.60 1.39 0.6765 0.2889 40.57 85.51 50.80 (9900-W99N) 0.74 0.78 0.85 0.3127 0.3290 7.05 0.00 0.00 (9500-W95N) 2.40 2.53 2.75 0.3127 0.3290 18.05 0.00 0.00 (9000-W90N) 4.18 4.40 4.79 0.3127 0.3290 24.95 0.00 0.00 (8500-W85N) 6.09 6.41 6.98 0.3127 0.3290 30.42 0.00 0.00 (8000-W80N) 8.14 8.57 9.33 0.3127 0.3290 35.14 0.00 0.00 (7500-W75N) 10.36 10.90 11.86 0.3127 0.3290 39.41 0.00 0.00 (7000-W70N) 12.75 13.42 14.61 0.3127 0.3290 43.38 0.00 0.00 (6500-W65N) 15.35 16.15 17.58 0.3127 0.3290 47.17 0.00 0.00 (6000-W60N) 18.18 19.13 20.83 0.3127 0.3290 50.84 0.00 0.00 (5500-W55N) 21.28 22.39 24.37 0.3127 0.3290 54.43 0.00 0.00 (5000-W50N) 24.68 25.96 28.27 0.3127 0.3290 58.00 0.00 0.00 (4500-W45N) 28.43 29.91 32.57 0.3127 0.3290 61.58 0.00 0.00 (4000-W40N) 32.59 34.29 37.33 0.3127 0.3290 65.19 0.00 0.00 (3500-W35N) 37.23 39.17 42.65 0.3127 0.3290 68.87 0.00 0.00 (3000-W30N) 42.44 44.65 48.61 0.3127 0.3290 72.66 0.00 0.00 (2500-W25N) 48.32 50.84 55.36 0.3127 0.3290 76.58 0.00 0.00 (2000-W20N) 55.04 57.91 63.05 0.3127 0.3290 80.69 0.00 0.00 (1500-W15N) 62.76 66.03 71.89 0.3127 0.3290 85.01 0.00 0.00 (1000-W10N) 71.74 75.48 82.18 0.3127 0.3290 89.62 0.00 0.00 (0500-W05N) 82.31 86.60 94.29 0.3127 0.3290 94.57 0.00 0.00 (0000-W00N) 94.94 99.89 108.76 0.3127 0.3290 99.96 0.00 0.00 ] def %END NCS_0099_ALLCD /DecodeXYZ* {dup 6 29 div ge {dup dup mul mul} {4 29 div sub 108 841 div mul} ifelse} bind def /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 7 string cvs show} def /cvishowb {cvi 6 string cvs show ( ) show} def /cvsshow1b {10 mul cvi 0.1 mul 7 string cvs show ( ) show} def /cvsshow2b {100 mul cvi 0.01 mul 7 string cvs show ( ) show} def /cvsshow3b {1000 mul cvi 0.001 mul 7 string cvs show ( ) show} def /cvishowr {0.5 add cvi 6 string cvs show} def /cvsshow1r {0.05 add 10 mul cvi 0.1 mul 7 string cvs show} def /cvsshow2r {0.005 add 100 mul cvi 0.01 mul 7 string cvs show} def /cvsshow3r {0.0005 add 1000 mul cvi 0.001 mul 7 string cvs show} def /cvi100 {100 mul cvi /xi exch def xi 0 lt {/vorz -1 def} {/vorz 1 def} ifelse /xia xi abs def vorz -1 eq {(\255) show} {(0) show} ifelse xia 0 ge xia 9 le {(0000) show} if xia 10 ge xia 99 le and {(000) show} if xia 100 ge xia 999 le and {(00) show} if xia 1000 ge xia 9999 le and {(0) show} if xia cvishow } bind def /cvi1000 {1000 mul cvi /xi exch def xi 0 ge xi 9 le {(000) show} if xi 10 ge xi 99 le and {(00) show} if xi 100 ge xi 999 le and {(0) show} if xi cvishow } bind def /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 {setcmykcolor rec fill} bind def /colrecst %x y width heigth c m y k {setcmykcolor rec stroke} bind def /SD65 80 array def %380 bis 775 mit deltalambda=05 /SD50 80 array def %380 bis 775 mit deltalambda=05 /SP40 80 array def %380 bis 775 mit deltalambda=05 /SA00 80 array def %380 bis 775 mit deltalambda=05 /SE00 80 array def %380 bis 775 mit deltalambda=05 /SC00 80 array def %380 bis 775 mit deltalambda=05 /SP00 80 array def %380 bis 775 mit deltalambda=05 /SQ00 80 array def %380 bis 775 mit deltalambda=05 /SDAK 80 array def %380 bis 775 mit deltalambda=05 /RA 80 array def %380 bis 770 nm /F2 240 array def %3 x 80 Daten fuer Bereich 380 bis 770nm /F2N 240 array def %normiert auf Y=100 fuer D65 und 10nm %C %C LITERATURQUELLEN LICHTARTEN %C SA,SC,SD65, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.1, SEITE 81 %C SD55,SD75, CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 1.1.4, SEITE 85 %C LINEAR INTERPOLIERT VON 5 ZU 5NM %C SG,SP,SXE, DIN 5033, BLATT 7 ,SEITE 8-9 %C AUSGABE 1966 /SD65 %80 data 5 nm [50.0 52.3 54.6 68.7 82.8 87.1 91.5 92.5 93.4 90.1 86.7 95.8 104.9 110.9 117.0 117.4 117.8 116.3 114.9 115.4 115.9 112.4 108.8 109.1 109.4 108.6 107.8 106.3 104.8 106.2 107.7 106.0 104.4 104.2 104.0 102.0 100.0 98.2 96.3 96.1 95.8 92.2 88.7 89.3 90.0 89.8 89.6 88.6 87.7 85.5 83.3 83.5 83.7 81.9 80.0 80.1 80.2 81.2 82.3 80.3 78.3 74.0 69.7 70.7 71.6 73.0 74.3 68.0 61.6 65.7 69.9 72.5 75.1 69.3 63.6 55.0 46.4 56.6 66.8 65.1] def /SD50 %80 data 5 nm CIE 15.3, Seite 30; aus JE540-1N.PS [24.5 27.2 29.9 39.6 49.3 52.9 56.5 58.3 60.0 58.9 57.8 66.3 74.8 81.0 87.2 88.9 90.6 91.0 91.4 93.2 95.1 93.5 92.0 93.8 95.7 96.2 96.6 96.8 97.1 99.6 102.1 101.4 100.8 101.5 102.3 101.2 100.0 98.9 97.7 98.3 98.9 96.2 93.5 95.6 97.7 98.5 99.3 99.2 99.0 97.4 95.7 97.3 98.9 97.3 95.7 96.9 98.2 100.6 103.0 101.1 99.1 93.3 87.4 89.5 91.6 92.2 92.9 84.9 76.9 81.7 86.5 89.5 92.6 85.4 78.2 68.0 57.7 70.3 82.9 0.0] def %0.0 not used /SA00 %80 data 5 nm CIE 15.3 Seite 30; aus JE540-1N.PS [9.80 10.90 12.09 13.35 14.71 16.15 17.68 19.29 20.99 22.79 24.67 26.64 28.70 30.85 33.09 35.41 37.81 40.30 42.87 45.52 48.24 51.04 53.91 56.85 59.86 62.93 66.06 69.25 72.50 75.79 79.13 82.52 85.95 89.41 92.91 96.44 100.00 103.58 107.18 110.80 114.44 118.08 121.73 125.39 129.04 132.70 136.35 139.99 143.62 147.24 150.84 154.42 157.98 161.52 165.03 168.51 171.96 175.38 178.77 182.12 185.43 188.70 191.93 195.12 198.26 201.36 204.41 207.41 210.36 213.27 216.12 218.92 221.67 224.36 227.00 229.59 232.12 234.59 237.01 239.37 0.0] def %0.0 not used % AUS BILDPLA.FOR aus vrbam/wrpos:KRPROG.FOR, 5987-6023 5.10.92 %C PROGRAMM ZUR BERECHNUNG DER RELATIVEN SPEKTRALEN STRAHLUNGSVERTEI- %C LUNG EINES HOHLRAUMSTRAHLERS ALS FUNKTION DER WELLENLAENGE LAMDA %C BEI GEGEBENER TEMPERATUR T %C VERWENDETE VARIABLE %C T TEMPERATUR %C C2 PLANCKSCHE KONSTANTE (=1.4388 CM K (1967)) %C LAMDA(I) WELLENLAENGE %C S(I) STRAHLUNGSVERTEILUNG DES HOHLRAUMSTRAHLERS %C %C LITERATUR OFFIZIELLE EMPFEHLUNGEN DER CIE,DEUTSCHE VERSION, %C CA. 1969, SEITE 21 UND TABELLE 1.1.1 %C %SDP4 80 array def %380 bis 775 mit deltalambda=05 % DO 50 I=1,54 % 50 S(I)=100. % 1*(560./FLOAT(LAMDA(I)))**5 % 2*(EXP(C2/(560.*10.**(-7)*T))-1.) % 3/(EXP(C2/(FLOAT(LAMDA(I))*10.**(-7)*T))-1.) %new CIE 15.3:2004, Eq. (3.1) page 2 %S(I) = [100{560/lambda}**5] [exp{(c2*10**7)/(TNC*560 )} - 1] % /[exp{(c2*10**7)/(TNC*lambda)} - 1] % exp = e {...} = 2.71 {...} %/TNC 2848 def %NLA /TNC 4000 def /EE 2.718281 def %e=mac pocket calculator /C2 1.4350000 10 7 exp mul def /lamd 80 array def 0 1 79 {%i=0,79 /i exch def /lambda 380 i 5 mul add def lamd i lambda put /E1 560 lambda div 5 exp def /E4 C2 TNC 560 mul div def /E5 C2 TNC lambda mul div def /E6 EE E4 exp def /E7 EE E5 exp def SP40 i E1 100 mul E6 1 sub E7 1 sub div mul put } for %i=0,79 /xex 10 2 exp def /yex EE 2 exp def /SE00 %80 data 5 nm [100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0 100.0] def %0.0 not used /SC00 %80 data 5 nm [ 33.00 39.92 47.40 55.17 63.30 71.81 80.60 89.53 98.10 105.80 112.40 117.75 121.50 123.45 124.00 123.60 123.10 123.30 123.80 124.09 123.90 122.92 120.70 116.90 112.10 106.98 102.30 98.81 96.90 96.78 98.00 99.94 102.10 103.95 105.20 105.67 105.30 104.11 102.30 100.15 97.80 95.43 93.20 91.22 89.70 88.83 88.40 88.19 88.10 88.06 88.00 87.86 87.80 87.99 88.20 88.20 87.90 87.22 86.30 85.30 84.00 82.21 80.20 78.24 76.30 74.36 72.40 70.40 68.30 66.30 64.40 62.80 61.50 60.20 59.20 58.50 58.10 58.00 58.20 58.50 ] def %0.0 not used 0 1 79 {/i exch def %i=0,79 /lamda 380 i 5 mul add def SP00 i SE00 i get lamda 560 div mul put SQ00 i SE00 i get 1120 lamda sub 560 div mul put } for %i=0,79 %C LITERATURQUELLEN SPEKTRALWERTE %C F2 CIE-DOKUMENT NR.15 FARBMESSUNG, 1971 %C TABELLE 2.1, SEITE 93-102 /F2 %3x80 data [.001368 .002236 .004243 .007650 .01431 .02319 .04351 .07763 .1344 .2148 .2839 .3285 .3483 .3481 .3362 .3187 .2908 .2511 .1954 .1421 .09564 .05795 .03201 .01470 .0049 .0024 .0093 .0291 .06327 .1096 .1655 .2257 .2904 .3597 .4334 .5121 .5945 .6784 .7621 .8425 .9163 .9786 1.0263 1.0567 1.0622 1.0456 1.0026 .9384 .8544 .7514 .6424 .5419 .4479 .3608 .2835 .2187 .1649 .1212 .0874 .0636 .04677 .03290 .02270 .01584 .01136 .00811 .00579 .004109 .002899 .002049 .001440 .0009999 .0006901 .000476 .0003323 .0002348 .0001662 .0001174 .00008308 .00005871 .000039 .000064 .00012 .000217 .000396 .00064 .00121 .00218 .004 .0073 .0116 .01684 .023 .0298 .0380 .048 .06 .0739 .09098 .1126 .139 .1693 .208 .2586 .323 .4073 .503 .6082 .71 .7932 .862 .9149 .954 .9803 .995 1.0 .995 .9786 .952 .9154 .870 .8163 .757 .6949 .631 .5668 .503 .4412 .381 .321 .265 .217 .175 .1382 .107 .0816 .061 .04458 .032 .0232 .017 .01192 .00821 .005723 .004102 .002929 .002091 .001484 .001047 .00074 .00052 .0003611 .0002492 .0001719 .00012 .0000848 .00006 .0000424 .00003 .0000212 .00645 .01055 .02005 .03621 .06785 .1102 .2074 .3713 .6456 1.0391 1.3856 1.623 1.7471 1.7826 1.7721 1.7441 1.6692 1.5281 1.2876 1.0419 .8130 .6162 .4652 .3533 .2720 .2123 .1582 .1117 .07825 .05725 .04216 .02984 .0203 .0134 .00875 .00575 .0039 .00275 .0021 .0018 .00165 .0014 .0011 .0010 .0008 .0006 .00034 .00024 .00019 .0001 .00005 .00003 .00002 .00001 % 26*0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 %26 ] def /F10 %3x80 data [.00016 .0006624 .002362 .007242 .01911 .0434 .08474 .1406 .2045 .2647 .3147 .3577 .3837 .3867 .3707 .343 .3023 .2541 .1956 .1323 .08051 .04107 .01617 .005132 .003816 .01544 .03746 .07136 .1177 .173 .2365 .3042 .3768 .4516 .5298 .6161 .7052 .7938 .8787 .9512 1.0142 1.0743 1.1185 1.1343 1.124 1.0891 1.0305 .9507 .8563 .7549 .6475 .5351 .4316 .3437 .2683 .2043 .1526 .1122 .08126 .05793 .04085 .02862 .019941 .01384 .0100 .006605 .004552 .003145 .002175 .001506 .001045 .0007274 .0005083 .0003564 .000251 .0001777 .0001264 .00009015 .00006453 .00004634 .00001736 .00007156 .0002534 .0007685 .002004 .004509 .008756 .01446 .02139 .0295 .03868 .0496 .06208 .0747 .08946 .1063 .1282 .1528 .1852 .2199 .2536 .2977 .3391 .3954 .4608 .5314 .6067 .6857 .7618 .8233 .8752 .9238 .962 .9822 .9918 .9991 .9973 .9824 .9555 .9152 .8689 .8256 .7774 .7203 .6583 .5939 .528 .4618 .3981 .3395 .2835 .2282 .1798 .1402 .1076 .08119 .06028 .0441 .0318 .0226 .0159 .01113 .007749 .0053751 .0037177 .002565 .001768 .001222 .0008462 .0005864 .0004074 .000284 .0001987 .0001395 .00009843 .00006982 .00004974 .00003554 .00002549 .00001834 .0007048 .002928 .01048 .03234 .08601 .1971 .3894 .6568 .9725 1.2825 1.5535 1.7985 1.9673 2.0273 1.9948 1.9007 1.7454 1.5549 1.3176 1.0302 .7721 .5701 .4152 .3024 .2185 .1592 .112 .08225 .06071 .04305 .03045 .02058 .01368 .007918 .003988 .001091 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %10 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %20 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %30 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 0.0 %40 0.0 0.0 0.0 0.0 %44 ] def 0 1 100 {/i exch def %i=0,1,100 /i30 i 9 mul 1 add def /i31 i30 1 add def /i32 i30 2 add def /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def XYZC00100 j30 NCS_0099_ALLCD i30 get put XYZC00100 j31 NCS_0099_ALLCD i31 get put XYZC00100 j32 NCS_0099_ALLCD i32 get put /XQ XYZC00100 j30 get XLWC00100 div def /YQ XYZC00100 j31 get YLWC00100 div def /ZQ XYZC00100 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00100 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00100 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00100 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put XYZC00089 j30 NCS_0099_ALLCD i30 get F89 mul put XYZC00089 j31 NCS_0099_ALLCD i31 get F89 mul put XYZC00089 j32 NCS_0099_ALLCD i32 get F89 mul put /XQ XYZC00089 j30 get XLWC00100 div def /YQ XYZC00089 j31 get YLWC00100 div def /ZQ XYZC00089 j32 get ZLWC00100 div def XQ 0 lt {/XQ 0.00000001 def} if YQ 0 lt {/YQ 0.00000001 def} if ZQ 0 lt {/ZQ 0.00000001 def} if LABC00089 j30 YQ 0.008856 lt {903.3 YQ mul} {YQ 0.33333333 exp 116 mul 16 sub} ifelse put LABC00089 j31 XQ 0.008856 lt {7.787 XQ mul 16 116 div add} {XQ 0.33333333 exp} ifelse YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse sub 500 mul put LABC00089 j32 YQ 0.008856 lt {7.787 YQ mul 16 116 div add} {YQ 0.33333333 exp} ifelse ZQ 0.008856 lt {7.787 ZQ mul 16 116 div add} {ZQ 0.33333333 exp} ifelse sub 200 mul put } for %i=0,1,100 TK /ymax 16600 def /idy 206 def /xcolorl xcolor def %0 1 1 {/xcolorl exch def %xcolorl=0,1 %xcolorl 1 eq {0 1 79 {/i exch def %i=0,79 % F2 i F10 i get put % } for %i=0,79 % } if /YKSUM 0 def %For CIE Illuminant E 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM F2 80 i add get add def } for %i=0,1,79 /F2N 240 array def 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add F2 00 i add get YKSUM div 100 mul put F2N 80 i add F2 80 i add get YKSUM div 100 mul put F2N 160 i add F2 160 i add get YKSUM div 100 mul put } for %i=0,1,79 /FXN 80 array def %FXN 0 = F2N imax /FYN 80 array def /FZN 80 array def %defines FXN, FYN, FZN 0 to 79 0 1 79 {/i exch def %i=0,79 FXN i F2N 000 i add get put FYN i F2N 080 i add get put FZN i F2N 160 i add get put } for %i=0,79 %special wavelength range with complementary colours for E? /FXD 63 array def /FYD 63 array def /FZD 63 array def /DOW 63 array def 00 1 60 {/i exch def %i=0,60 %range 400..700nm FXD i FXN 005 i add get put FYD i FYN 005 i add get put FZD i FZN 005 i add get put DOW i 400 i 5 mul add put %range 400 to 700 } for %i=0,60 %for interpolation FXD 61 FXD 60 get put FYD 61 FYD 60 get put FZD 61 FZD 60 get put FXD 62 FXD 60 get put FYD 62 FYD 60 get put FZD 62 FZD 60 get put /FAD 63 array def /FBD 63 array def /FCD 63 array def /proc_ABC_KNP_FWERTiX {%BEG proc_ABC_KNP_FWERT %input FAD,FBD,FCD, KNP %output FWERTiX/Y/Z (i=1,4) kNP 1 ge {/FWERT1X FAD kNP 1 sub get def /FWERT1Y FBD kNP 1 sub get def /FWERT1Z FCD kNP 1 sub get def} {/FWERT1X FAD 0 get def %again 400nm for i=0 /FWERT1Y FBD 0 get def /FWERT1Z FCD 0 get def} ifelse /FWERT2X FAD kNP get def /FWERT2Y FBD kNP get def /FWERT2Z FCD kNP get def /FWERT3X FAD kNP 1 add get def /FWERT3Y FBD kNP 1 add get def /FWERT3Z FCD kNP 1 add get def /FWERT4X FAD kNP 2 add get def /FWERT4Y FBD kNP 2 add get def /FWERT4Z FCD kNP 2 add get def } bind def %END proc_ABC_KNP_FWERTiX %********************************************************* /proc_XIE_TN1 {%BEG proc_XIE_TN1 %input XIE, FWERTiX/Y/Z (i=1,4) %output TN1 /A1N XIE 1 XIE sub mul XIE 2 sub mul 6 div def /A2N XIE 1 add XIE 1 sub mul XIE 2 sub mul 0.5 mul def /A3N XIE 1 add XIE mul 2 XIE sub mul 0.5 mul def /A4N XIE 1 add XIE mul XIE 1 sub mul 6 div def /FNX A1N FWERT1X mul A2N FWERT2X mul add A3N FWERT3X mul add A4N FWERT4X mul add def /FNY A1N FWERT1Y mul A2N FWERT2Y mul add A3N FWERT3Y mul add A4N FWERT4Y mul add def /FNZ A1N FWERT1Z mul A2N FWERT2Z mul add A3N FWERT3Z mul add A4N FWERT4Z mul add def /TNX FNX FXU1 mul FNY FXU2 mul add FNZ FXU3 mul add def } bind def %END proc_XIE_TN1 %/xcharts xchart def %0 1 1 {/xcharts exch def %BEG xcharts=0,1 %for 80 and 21 steps %xcharts 0 eq {/IM0 00 def /IM1 079 def} if %xcharts 1 eq {/IM0 80 def /IM1 100 def} if /IM0 00 def /IM1 079 def /xchartl 5 def %for CIE illuminant C %gsave %Start-transformation %1 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath fill %0 dup dup setrgbcolor %0 0 moveto 25000 0 rlineto 0 17000 rlineto % 25000 neg 0 rlineto closepath stroke %calculation of XW,YW,ZW for illuminant D65, D50, ... 0 1 79 {/i exch def %i=0,79 SDAK i xchartl 0 eq {SD65 i get} if xchartl 1 eq {SD50 i get} if xchartl 2 eq {SP40 i get} if xchartl 3 eq {SA00 i get} if xchartl 4 eq {SE00 i get} if xchartl 5 eq {SC00 i get} if xchartl 6 eq {SP00 i get} if xchartl 7 eq {SQ00 i get} if put } for %i=0,79 /YKSUM 0 def 0 1 79 {/i exch def %i=0,1,79 /YKSUM YKSUM SDAK i get F2 80 i add get mul add def } for %i=0,1,79 0 1 79 {/i exch def %i=0,1,79 F2N 00 i add SDAK i get F2 00 i add get mul YKSUM div 100 mul put F2N 80 i add SDAK i get F2 80 i add get mul YKSUM div 100 mul put F2N 160 i add SDAK i get F2 160 i add get mul YKSUM div 100 mul put } for %i=0,1,79 %XW,YW,ZW for white /XW 0 def /YW 0 def /ZW 0 def 0 1 079 {/i exch def %i=0,79 /XW XW F2N 00 i add get add def /YW YW F2N 80 i add get add def /ZW ZW F2N 160 i add get add def } for %i=0,79 /SUMW XW YW add ZW add def %for D65, D50, P40, A00, E00 /XANW XW SUMW div def /YANW YW SUMW div def /ZANW ZW SUMW div def /AANW XW YW 0.0001 add div def /BANW ZW YW 0.0001 add div 0.4 mul neg def 0 1 62 {/i exch def %i=0,62 FAD i FXD i get put FBD i FYD i get put FCD i FZD i get put } for %i=0,62 /ix0 100 def /ix1 ix0 1300 add def /ixd 600 def /iymax 16550 def /idy 206 def /xtext 0 def xtext 1 eq {%xtext=1 TBIK ix0 iymax idy add 50 add moveto (Cod.) show ix1 ixd 0 mul add iymax idy add 50 add moveto TBK (i) show ix1 ixd 1 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 1 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z, x, y) show TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 6 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 6 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBIK (, a', b', c') show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 14 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 14 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBIK (, a, b, c) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 22 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 22 mul add iymax idy add 50 add moveto TBK ([) show TBIK (i) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TBIK (i) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (d) show 0 90 rmoveto TBK TBK (, ) show TSK (l) show TBS 0 -90 rmoveto (c) show 0 90 rmoveto TBK TBK (]) show TBS 0 -90 rmoveto (100) show 0 90 rmoveto TBK ix1 ixd 26 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 26 mul add iymax idy add 50 add moveto TBK ([) show TBIK (X, Y, Z) show TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 29 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 29 mul add iymax idy add 50 add moveto TBK ([) show TBIK (L*, a*, b*, C*) show TBS -80 -90 rmoveto (ab) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (ab) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK ix1 ixd 34 mul add 030 sub 0 moveto 0 17000 rlineto stroke ix1 ixd 34 mul add iymax idy add 50 add moveto TBK ([) show TBIK (Y, A, B, C) show TBS -80 -90 rmoveto (AB) show 0 90 rmoveto TBIK (, h) show TBS 0 -90 rmoveto (AB) show 0 90 rmoveto TBIK TBK (]) show TBS 0 -90 rmoveto (89) show 0 90 rmoveto TBK } if %xtext=1 /D13 1 3 div def /a2C00 1 XLWC00100 0.0001 add div D13 exp def /b2C00 1 ZLWC00100 0.0001 add div D13 exp neg def TK %20000 15000 moveto a2C00 cvsshow3r (,) b2C00 cvsshow3r /aWC00100 XLWC00100 YLWC00100 0.0001 add div def /bWC00100 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def /aWC00089 XLWC00100 YLWC00100 0.0001 add div def /bWC00089 ZLWC00100 YLWC00100 0.0001 add div 0.4 mul neg def %20000 14000 moveto aWC00100 cvsshow3r (,) bWC00100 cvsshow3r /a'WC00100 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00100 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def /a'WC00089 XLWC00100 YLWC00100 0.0001 add div D13 exp a2C00 mul def /b'WC00089 ZLWC00100 YLWC00100 0.0001 add div D13 exp b2C00 mul def %20000 13000 moveto a'WC00100 cvsshow3r (,) b'WC00100 cvsshow3r %xcharts 1 eq {/iymax iymax 80 idy mul add def} if IM0 1 IM1 {/i exch def %i=0,IM1 /i30 i 9 mul def %ix0 ixd 0 mul add iymax i idy mul sub moveto %NCS_0099_ALLCD i30 get show %ix1 ixd 0 mul add iymax i idy mul sub moveto %i 9 le {(0) show} if i cvishow /j30 i 3 mul def /j31 j30 1 add def /j32 j30 2 add def /XC00100 XYZC00100 j30 get def /YC00100 XYZC00100 j31 get def /ZC00100 XYZC00100 j32 get def /SUM XC00100 YC00100 add ZC00100 add def /xC00100 XC00100 SUM 0.0001 add div def /yC00100 YC00100 SUM 0.0001 add div def %ix1 ixd 1 mul add iymax i idy mul sub moveto XC00100 cvsshow1r %ix1 ixd 2 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 3 mul add iymax i idy mul sub moveto ZC00100 cvsshow1r %ix1 ixd 4 mul add iymax i idy mul sub moveto xC00100 cvsshow3r %ix1 ixd 5 mul add iymax i idy mul sub moveto yC00100 cvsshow3r X3i i XC00100 put Y3i i YC00100 put Z3i i ZC00100 put /a'C00100 XC00100 YC00100 0.0001 add div D13 exp a2C00 mul def /b'C00100 ZC00100 YC00100 0.0001 add div D13 exp b2C00 mul def /c'C00100 a'C00100 a'WC00100 sub dup mul b'C00100 b'WC00100 sub dup mul add 0.0001 add sqrt def /L*C00100 LABC00100 j30 get def /a*C00100 LABC00100 j31 get def /b*C00100 LABC00100 j32 get def /C*C00100 a*C00100 dup mul b*C00100 dup mul add 0.0001 add sqrt def /h*C00100 b*C00100 a*C00100 0.0001 add atan def %ix1 ixd 06 mul add iymax i idy mul sub moveto L*C00100 cvsshow1r %ix1 ixd 07 mul add iymax i idy mul sub moveto a*C00100 cvsshow1r %ix1 ixd 08 mul add iymax i idy mul sub moveto b*C00100 cvsshow1r %ix1 ixd 09 mul add iymax i idy mul sub moveto C*C00100 cvsshow1r %ix1 ixd 10 mul add iymax i idy mul sub moveto h*C00100 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00100 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00100 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00100 cvsshow3r L*3i i L*C00100 put a*3i i a*C00100 put b*3i i b*C00100 put C*ab3i i C*C00100 put h*ab3i i h*C00100 put /aC00100 XC00100 YC00100 0.0001 add div def /bC00100 ZC00100 YC00100 0.0001 add div 0.4 mul neg def /cC00100 aC00100 aWC00100 sub dup mul bC00100 bWC00100 sub dup mul add 0.0001 add sqrt def /AC00100 XC00100 YC00100 0.0001 add div XLWC00100 YLWC00100 0.0001 add div sub YC00100 mul def /BC00100 ZC00100 YC00100 0.0001 add div ZLWC00100 YLWC00100 0.0001 add div sub YC00100 mul 0.4 mul neg def /CC00100 AC00100 dup mul BC00100 dup mul add 0.0001 add sqrt def /hC00100 BC00100 AC00100 0.0001 add atan def %ix1 ixd 14 mul add iymax i idy mul sub moveto YC00100 cvsshow1r %ix1 ixd 15 mul add iymax i idy mul sub moveto AC00100 cvsshow1r %ix1 ixd 16 mul add iymax i idy mul sub moveto BC00100 cvsshow1r %ix1 ixd 17 mul add iymax i idy mul sub moveto CC00100 cvsshow1r %ix1 ixd 18 mul add iymax i idy mul sub moveto hC00100 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00100 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00100 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00100 cvsshow3r A3i i AC00100 put B3i i BC00100 put CAB3i i CC00100 put hAB3i i hC00100 put AAN3i i aC00100 put BAN3i i bC00100 put CAN3i i cC00100 put %********************************************************* %calculation of lamdad and lambdac for X, Y, Z /FF1 XC00100 def /FF2 YC00100 def /FF3 ZC00100 def /U1 XLWC00100 def /U2 YLWC00100 def /U3 ZLWC00100 def /FXU1 FF2 U3 mul FF3 U2 mul sub def /FXU2 FF3 U1 mul FF1 U3 mul sub def /FXU3 FF1 U2 mul FF2 U1 mul sub def /INP -1 def /IPN -1 def %assumption jump from TN to TP from negativ to positiv 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add def TN 0 le TP 0 gt and {/INP j def exit} if } for %j=1,60 0 1 60 {/j exch def %j=1,60 /TN FAD j get FXU1 mul FBD j get FXU2 mul add FCD j get FXU3 mul add neg def /TP FAD j 1 add get FXU1 mul FBD j 1 add get FXU2 mul add FCD j 1 add get FXU3 mul add neg def TN 0 le TP 0 gt and {/IPN j def exit} if } for %j=1,60 /Icom 0 def %Icom=0 only for part 2 TM Icom 0 eq {%Icom=0,1 id3i i INP put ic3i i IPN put }%Icom=0 {%Icom=1 id4i i INP put ic4i i IPN put } ifelse %Icom=0,1 TLL %ix1 ixd 22 mul add iymax i idy mul sub moveto INP cvishow %ix1 ixd 23 mul add iymax i idy mul sub moveto IPN cvishow %********************************************************* /kNP INP def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE1 DOW INP get DOW INP 1 add get DOW INP get sub XIE mul add def } if %kNP>=0 %********************************************************* /kNP IPN def kNP 0 ge {%kNP>=0 proc_ABC_KNP_FWERTiX %input FAD,KNP, output FWERTiXYZ (i=1,4) /XIE1 0 def %start values TN=0 for XIE1, TP>0 for XIE2 /XIE2 1 def /FXU1 FXU1 neg def /FXU2 FXU2 neg def /FXU3 FXU3 neg def 0 1 9 {/mk exch def %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def proc_XIE_TN1 %input XIE, ouput TN1 TNX 0 le {/XIE1 XIE def /TN1 TNX def} {/XIE2 XIE def /TP1 TNX def} ifelse } for %mk=0,9 /XIE XIE1 XIE2 add 0.5 mul def /DOWXIE2 DOW IPN get DOW IPN 1 add get DOW IPN get sub XIE mul add def } if %kNP>=0 %********************************************************* %0 1 1 0 setcmyk_olvcolor INP 0 ge {%INP>=0,-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow Icom 0 eq {%Icom=0,1 wd3i i DOWXIE1 0.03 add cvi put wdc3i i () put }%Icom=0 {%Icom=1 wd4i i DOWXIE1 0.03 add cvi put wdc4i i () put } ifelse %Icom=0,1 /DOWEL1 DOWXIE1 def /DOWEL1c () def }%INP>=0 {%INP=-1 % ix1 ixd 24 mul add iymax i idy mul sub moveto % xpos x1 add xdel 9 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow (c) show Icom 0 eq {%Icom=0,1 wd3i i DOWXIE2 0.03 add cvi put wdc3i i (c) put }%Icom=0 {%Icom=1 wd4i i DOWXIE2 0.03 add cvi put wdc4i i (c) put } ifelse %Icom=0,1 /DOWEL1 DOWXIE2 def /DOWEL1c (c) def } ifelse %INP>=0,-1 %1 0 1 0 setcmyk_olvcolor IPN 0 ge {%IPN>=0,-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE2 cvishow Icom 0 eq {%Icom=0,1 wc3i i DOWXIE2 0.03 add cvi put wcc3i i () put }%Icom=0 {%Icom=1 wc4i i DOWXIE2 0.03 add cvi put wcc4i i () put } ifelse %Icom=0,1 /DOWEL2 DOWXIE2 def /DOWEL2c () def }%IPN>=0 {%IPN=-1 % ix1 ixd 25 mul add iymax i idy mul sub moveto % xpos x1 add xdel 10 mul add 400 add ymax ydel LP mul sub moveto % DOWXIE1 cvishow (c) show Icom 0 eq {%Icom=0,1 wc3i i DOWXIE1 0.03 add cvi put wcc3i i (c) put }%Icom=0 {%Icom=1 wc4i i DOWXIE1 0.03 add cvi put wcc4i i (c) put } ifelse %Icom=0,1 /DOWEL2 DOWXIE1 def /DOWEL2c (c) def } ifelse %IPN>=0,-1 %********************************************************************** /XC00089 XYZC00089 j30 get def /YC00089 XYZC00089 j31 get def /ZC00089 XYZC00089 j32 get def %ix1 ixd 26 mul add iymax i idy mul sub moveto XC00089 cvsshow1r %ix1 ixd 27 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 28 mul add iymax i idy mul sub moveto ZC00089 cvsshow1r X4i i XC00089 put Y4i i YC00089 put Z4i i ZC00089 put /a'C00089 XC00089 YC00089 0.0001 add div D13 exp a2C00 mul def /b'C00089 ZC00089 YC00089 0.0001 add div D13 exp b2C00 mul def /c'C00089 a'C00089 a'WC00089 sub dup mul b'C00089 b'WC00089 sub dup mul add 0.0001 add sqrt def /L*C00089 LABC00089 j30 get def /a*C00089 LABC00089 j31 get def /b*C00089 LABC00089 j32 get def /C*C00089 a*C00089 dup mul b*C00089 dup mul add 0.0001 add sqrt def /h*C00089 b*C00089 a*C00089 0.0001 add atan def %ix1 ixd 29 mul add iymax i idy mul sub moveto L*C00089 cvsshow1r %ix1 ixd 30 mul add iymax i idy mul sub moveto a*C00089 cvsshow1r %ix1 ixd 31 mul add iymax i idy mul sub moveto b*C00089 cvsshow1r %ix1 ixd 32 mul add iymax i idy mul sub moveto C*C00089 cvsshow1r %ix1 ixd 33 mul add iymax i idy mul sub moveto h*C00089 cvsshow1r %ix1 ixd 11 mul add iymax i idy mul sub moveto a'C00089 cvsshow3r %ix1 ixd 12 mul add iymax i idy mul sub moveto b'C00089 cvsshow3r %ix1 ixd 13 mul add iymax i idy mul sub moveto c'C00089 cvsshow3r L*4i i L*C00089 put a*4i i a*C00089 put b*4i i b*C00089 put C*ab4i i C*C00089 put h*ab4i i h*C00089 put /aC00089 XC00089 YC00089 0.0001 add div def /bC00089 ZC00089 YC00089 0.0001 add div 0.4 mul neg def /cC00089 aC00089 aWC00089 sub dup mul bC00089 bWC00089 sub dup mul add 0.0001 add sqrt def /AC00089 XC00089 YC00089 0.0001 add div XLWC00089 YLWC00089 0.0001 add div sub YC00089 mul def /BC00089 ZC00089 YC00089 0.0001 add div ZLWC00089 YLWC00089 0.0001 add div sub YC00089 mul 0.4 mul neg def /CC00089 AC00089 dup mul BC00089 dup mul add 0.0001 add sqrt def /hC00089 BC00089 AC00089 0.0001 add atan def %ix1 ixd 34 mul add iymax i idy mul sub moveto YC00089 cvsshow1r %ix1 ixd 35 mul add iymax i idy mul sub moveto AC00089 cvsshow1r %ix1 ixd 36 mul add iymax i idy mul sub moveto BC00089 cvsshow1r %ix1 ixd 37 mul add iymax i idy mul sub moveto CC00089 cvsshow1r %ix1 ixd 38 mul add iymax i idy mul sub moveto hC00089 cvsshow1r %ix1 ixd 19 mul add iymax i idy mul sub moveto aC00089 cvsshow3r %ix1 ixd 20 mul add iymax i idy mul sub moveto bC00089 cvsshow3r %ix1 ixd 21 mul add iymax i idy mul sub moveto cC00089 cvsshow3r A4i i AC00089 put B4i i BC00089 put CAB4i i CC00089 put hAB4i i hC00089 put AAN4i i aC00089 put BAN4i i bC00089 put CAN4i i cC00089 put } for %i=IM0,IM1 %End %Icom=0 only for part 2 %************************************************************* /imshow {0 -50 rmoveto TBL (m) show 0 50 rmoveto TBIS} def /ioshow {0 -50 rmoveto TBL (o) show 0 50 rmoveto TBIS} def /idshow {0 -50 rmoveto TBL (d) show 0 50 rmoveto TBIS} def /ieshow {0 -50 rmoveto TBL (e) show 0 50 rmoveto TBIS} def %************************************************************* %xchart4=0-0 %STOP0-0 %BEG X,Y,Z = f(hAB) xchart4 0 eq {%xchart4=0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke % 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [( 0) ( 20) ( 40) ( 60) ( 80) (100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1800 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP0-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP0-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP0-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(hAB) %STOP0-4 %************************************************************* %xchart4=1-0 %STOP1-0 %BEG A,B,CAB = f(hAB) xchart4 1 eq {%xchart4=1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS (und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP1-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP1-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP1-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(hAB) %STOP1-4 %************************************************************* %xchart4=2-0 %STOP2-0 %BEG L*,a*,b*,C*ab = f(hAB) xchart4 2 eq {%xchart4=2 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt moveto TBIS (h) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP2-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %/faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP2-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 0 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP2-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_hAB_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=2-4 %END L*,a*,b*,C*ab = f(hAB) %STOP2-4 %************************************************************* %xchart4=3-0 %STOP3-0 %BEG L*,a*,b*,C*ab = f(h*ab) xchart4 3 eq {%xchart4=3-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 400 12 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 400 12 mul 0 rlineto stroke %cero line 400 12 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700) (400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 1200 mul add} def /ixl { 000 i 1200 mul add} def % ixt -250 moveto txl i get exec show ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 200 sub iytt moveto TBIS (h*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto %SL (l) show %0 -30 rmoveto TL (d) show 0 30 rmoveto TS %!y-Achse: 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyte {-100 i 0600 mul add} def /iytY { 100 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyte moveto tye i get show 0 1 0 setrgbcolor -350 iytY moveto tyY i get show 0 setgray -75 iyl moveto 150 0 rlineto stroke } for /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %******************************************************************* %STOP3-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP3-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 0 def %positiv data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_h*ab_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_h*ab_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 1 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP3-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 1 def %negativ data order /hw 0 def %hue angle scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours /faktx 40 3 div def %scale hue angle %faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_hAB_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_h*ab_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=3-4 %END L*,a*,b*,C*ab = f(h*ab) %STOP3-4 %************************************************************* %xchart4=4-0 %STOP4-0 %BEG X,Y,Z = f(wd) xchart4 4 eq {%xchart4=4-1 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( 0)( 20)( 40) ( 60) ( 80)(100)] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke % ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyY i get show -75 iyl moveto 150 0 rlineto stroke } for %no axis right /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (Normfarbwerte) showde (CIE tristimulus values) showea TBIS 1 0 0 setrgbcolor ( X) show 0 setgray (,) show 0 1 0 setrgbcolor ( Y) show 0 setgray (,) show 0 0 1 setrgbcolor ( Z) show 0 setgray ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %***************************************************** %STOP4-1 380 280 0000 add translate %shift of cero point by 0000: no shift /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift 0000 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP4-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 proc_ALLi_def } if %dtext=1 /yshift -1200 def proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift 0000 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP4-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift 0000 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift 0000 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_XYZ_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1000, no shift } if %xchart4=0 %END X,Y,Z = f(wd) %STOP4-4 %************************************************************* %xchart4=5-0 %STOP5-0 %BEG A,B,CAB = f(wd) xchart4 5 eq {%xchart4=5 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyA [(-40) (-20) ( 0) ( 20) ( 40) ( 60)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tyA i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -320 3000 120 add moveto (A) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (B) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-60 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 300 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (tristimulus value) showea (Normfarbwert) showde TBIS 0 1 0 setrgbcolor ( Y) show TBIS 0 setgray (, RG\255) showde (, RG ) showea TBIS (, YB\255) showde (, YB) showea TBS ( und radiale) showde (, radial) showea TBS ( Buntwerte) showde ( chromatic values) showea TBIS 1 0 0 setrgbcolor ( A) show 0 setgray (,) show 0 0 1 setrgbcolor ( B) show 0 setgray (, C) show 0 -30 rmoveto TBL (AB) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %************************************************* %STOP5-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP5-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP5-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_ABCY_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=1 %END A,B,CAB = f(wd) %STOP5-4 %************************************************************* %xchart4=6-0 %STOP6-0 %BEG L*,a*,b*,C*ab = f(wd) xchart4 6 eq {%xchart4=6-0 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 000 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tya* [(-120) (-60) ( 0) ( 60) (120) (180)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tya* i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a*) show 10 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b*) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 250 sub 3000 250 add moveto (L*) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS 0 setgray (CIELAB\255Helligkeit) showde (CIELAB lightness) showea TBIS 0 1 0 setrgbcolor ( L*) show 0 setgray TBS ( und radiale Buntheit) showde ( and radial chroma) showea TBIS 1 0 0 setrgbcolor ( a*) show 0 setgray (,) show 0 0 1 setrgbcolor ( b*) show 0 setgray (, C*) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%KN=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %KN=0,1 380 neg 280 neg translate %****************************************************** %STOP6-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP6-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours /faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 1 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP6-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength %/fakty 90 3 div def %scale XYZ, ABC /fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %not used dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_hABw_LabC*_cur } if %ctext=1 380 neg 280 1200 add neg translate %shift of cero point by 1200 } if %xchart4=6-4 %END L*,a*,b*,C*ab = f(wd) %STOP6-4 %************************************************************* %xchart4=7-0 %STOP7-0 %BEG Y/100, a, b, cab = f(wd) xchart4 7 eq {%xchart4=7 380 280 translate 30 setlinewidth 0 setgray 0 0 moveto 1200 3.72 mul 100 add 0 rlineto stroke 0 0 moveto 0 3000 250 add rlineto stroke 0 1200 moveto 1200 3.72 mul 300 sub 0 rlineto stroke %cero line 1200 3.72 mul 150 add 0 moveto -100 50 rlineto 0 -100 rlineto closepath fill 0 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill TBL /txl [ (400) (500) (600) (700;495c) (567c;400)] def /txw [ ( 0) ( 90) (180) (270) (360)] def /txc [() () () (494c,E) (561c,E)] def /tye [(-10) ( -5) ( 0) ( 5) ( 10) ( 15)] def /tyY [( ) ( 20) ( 40) ( 60) ( 80) (100) ] def %!x-Achse: 100 Einheiten = 1200 Skalen-Einheiten 0 1 4 {/i exch def /ixt {-150 i 2 le {i} if i 3 eq {3 0.10 sub} if i 4 eq {3.72 0.15 sub} if 1200 mul add} def /ixl { 000 i 4 lt {i}{3.72} ifelse 1200 mul add} def ixt -250 moveto txl i get exec show % ixt -250 moveto txw i get exec show % ixt 200 sub 100 moveto txc i get show ixl 75 moveto 0 -150 rlineto stroke ixl 75 1200 add moveto 0 -150 rlineto stroke } for /ixtt 4 1200 mul def /iytt 150 def ixtt 150 sub iytt 200 sub moveto %TBIS (h) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto SS (l) show 0 -30 rmoveto TBL (d) show 0 30 rmoveto TS %!y-Achse (left): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def -350 iyt moveto tye i get show -75 iyl moveto 150 0 rlineto stroke } for TBIS %coordinate name left 1 0 0 setrgbcolor -340 3000 120 add moveto (a) show 20 0 rmoveto %0 setgray (, ) show 0 0 1 setrgbcolor (b) show %!y-Achse (right): 100 S-Einheiten = 0600 Skalen-Einheiten TBL 0 1 0 setrgbcolor 0 1 5 {/i exch def /iyt {-50 i 0600 mul add} def /iyl {000 i 0600 mul add} def 1200 4.07 mul -350 add iyt moveto tyY i get show 1200 4.07 mul -75 add iyl moveto 150 0 rlineto stroke } for TBIS 1200 4.07 mul 200 sub 3000 250 add moveto (Y) show %special (right) 1200 4.07 mul 0 moveto 0 3000 250 add rlineto stroke 1200 4.07 mul 3000 300 add moveto -50 -100 rlineto 100 0 rlineto closepath fill 0 setgray /ixtt 0 def /iytt 5.3 600 mul def ixtt 150 add iytt 80 sub moveto TBS (Normfarbwert) showde (CIE tristimulus value) showea TBIS 0 1 0 setrgbcolor ( Y) show 0 setgray TBS ( und Farbarten) showde ( and chromaticities) showea TBIS 1 0 0 setrgbcolor ( a) show 0 setgray (,) show 0 0 1 setrgbcolor ( b) show 0 setgray (, c) show 0 -30 rmoveto TBL (ab) show 0 30 rmoveto TBS ixtt 150 add iytt 80 sub ydel sub moveto TBS (im Bereich) showde (in the range) showea TBIS ( Y) show TBS KN 0 eq {%KN=0,1 (=0 bis 100) showde (=0 to 100) showea }%K=0 {%K=1 (=0,0 bis 88,6) showde (=0,0 to 88,6) showea } ifelse %K=0,1 380 neg 280 neg translate %******************************************************** %STOP7-1 380 280 1200 add translate %shift of cero point by 1200 /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 1 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 1 1 0 setrgbcolor 0 setlinewidth 0 -1200 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto 400 12 mul 200 add neg 0 rlineto closepath clip 30 setlinewidth ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samCGY } if %stext=1 %************************************************************* %STOP7-2 [100] 100 setdash /imin 0 def /ij 57 def /i0 58 def /ix 59 def TLL /kx 2 def /xpn 1 def %negativ data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 0 def %c=curve /stext 1 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 %1 1 0 setrgbcolor %0 setlinewidth % 0 0 moveto 400 12 mul 200 add 0 rlineto 0 3250 rlineto % 400 12 mul 200 add neg 0 rlineto closepath clip %30 setlinewidth ctext 1 eq {%ctext=1 /yshift -0000 def proc_wd_abcY_cur } if %ctext=1 stext 1 eq {%stext=1 /yshift -1200 def /xhh*w 2 def /yYLC 0 def proc_hh*w_YLC_samRMB } if %stext=1 %************************************************************ %STOP7-3 [100] 100 setdash /imin 0 def /ij 79 def /i0 80 def /ix 81 def TLL /kx 3 def /xpn 0 def %positiv data order /hw 1 def %wavelength scale /dtext 1 def %d=definition /htext 0 def %h=hue /ttext 0 def %t=table /ctext 1 def %c=curve /stext 0 def %s=sample colours %/faktx 40 3 div def %scale hue angle /faktx 36 3 div def %scale wavelength /fakty 90 3 div def %scale XYZ, ABC, Y, L* %/fakty 30 3 div def %scale Lab* /faktz 90 3 div 4 mul def %%used for a,b,c dtext 1 eq {%dtext=1 /yshift -1200 def proc_ALLi_def } if %dtext=1 proc_iwd_min %allways with imin if htext=1 proc_ALLi_ALLin %allways ttext 1 eq {%ttext=1 /yshift -1200 def proc_iwd_tab } if %ttext=1 ctext 1 eq {%ctext=1 /yshift 0000 def proc_wd_abcY_cur } if %ctext=1 380 neg 280 0000 add neg translate %shift of cero point by 1200 } if %xchart4=7-4 %END a,b,c,Y = f(fw) %STOP7-4 %*************************************************************** showpage grestore } for %xchart4=0,7 %} for %xchartl=0,7 %} for %xcolorl=0,0 %%Trailer %%EndDocument EndEPSF grestore gsave BeginEPSF 219 MM 080 MM add 008 MM translate %80 MM Breite von TestStreifen 10 /Times-ISOL1 FS 53 MM 1 MM moveto () show 1 1 scale -77 21 MM sub -91 translate %%BeginDocument: Bild 29 Teststreifen Ueberlaenge %line 509 %%EndDocument EndEPSF grestore gsave BeginEPSF -0.0 MM -0.0 MM translate %xy-Verschiebung Rechteckrahmen nach innen% %%BeginDocument: Bild 30 %Rechteckrahmen %line 519 %!PS-Adobe-3.0 EPSF-3.0 Frame arround with Internet text DG02 20070101 %%BoundingBox: 0 0 598 845 %%EndProlog gsave /lanind 1 def /lantex [(G) (E) (S) (N) (I) (J) (M)] def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind eq {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind eq {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind eq {show} {pop} ifelse} bind def /showea {1 lanind le {show} {pop} ifelse} bind def /lanind1 01 def /lanind2 01 def /lanindd 01 def /colorm1 00 def /colorm2 00 def /colormd 01 def /deintp1 00 def /deintp2 00 def /deintpd 01 def /xcolor1 00 def /xcolor2 00 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 1 def gsave 0 setgray 1.0 1.0 scale 0.0 MM -1.0 MM translate %page shift upwards 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 /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 %special /10TIN_10 {10TIN 0 -2 rmoveto xcolor 1 eq {(10) show} if 0 2 rmoveto} def /10TINK10 {10TIN 0 -2 rmoveto xcolor 1 eq {(,10) show} if 0 2 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 [(P65) (P60) (P55) (P50) (P45) (P40) (P35) (P30)] def %7 illumin. /TELi1 [(D65) (D50) (P40) (A00) (E00) (C00) (P00) (Q00)] def %7 illumin. /xchart8 0 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 0 setgray 12TIN 61 MM 13.5 MM moveto (TUB\255Pr\374fvorlage ggk5; ) showde (TUB\255test chart ggk5; ) showen (gr\341fico TUB\255ggk5; ) showes (TUB\255test graphique ggk5; ) showfr (grafico TUB\255ggk5; ) showit (TUB\255test chart ggk5; ) showjp /xchart40 0 def %allways /xchart41 0 def %0:%case1 xchart40 0 eq {%xchart40=0 12TII (Ostwald) show 12TIN (\255Farben) showde ( colours) showea 12TII (, Y) show 10TIN 0 -3 rmoveto (m) show 0 3 rmoveto 12TIN (=520_770 und Lichtart C ) showde (=520_770, and Illuminant C ) showen } if %xchart40=0 12TIN 61 MM 09.5 MM moveto xchart41 0 eq {%xchart41=0 12TII (NCS) show 12TIN (\255Daten nach ) showde ( data according to ) showen (SS019104:1998. ) show 12TII (XYZ, YABCABh, CIELAB, ) show 12SN (l) show 10TIN 0 -3 rmoveto (d) show 0 3 rmoveto 12TIN ( data for illuminant C) showea (\255Daten f\374r Lichtart C) showde %TELi xchart get show } if %xchart41=0 62 MM 198.5 MM moveto 12RN tfbs (http://farbe.li.tu-berlin.de/ggk5/ggk5l) 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 (start output) showen (comience salida) showes (sortie de production) showfr (cominciare l'uscita) showit (start output) showjp } if 62 MM 194 MM moveto (Siehe separate Bilder dieser Seite: ) showde (see separate images of this page: ) showen (vea archivos semejantes: ) showes (voir des fichiers similaires: ) showfr (vedere dei file simili: ) showit (see similar files: ) showjp 12RN tfbs (http://farbe.li.tu-berlin.de/ggk5/ggk5.htm) show tfn 12TN 16 MM 185 MM moveto -90 rotate (Siehe \344hnliche Dateien der ganzen Serie: ) showde (see similar files of the whole serie: ) showen (vea archivos semejantes: ) showes (voir des fichiers similaires de serie: ) showfr (vedere dei file simili: ) showit (see similar files: ) showjp 12RN tfbs (http://farbe.li.tu-berlin.de/ggks.htm) show tfn 12TN 90 rotate 12 MM 185 MM moveto -90 rotate (Technische Information: ) showde (technical information: ) showen (informaci\363n t\351cnica: ) showes (informations techniques: ) showfr (informazioni tecniche: ) showit (technical information: ) showjp 12RN tfbs (http://farbe.li.tu-berlin.de) show tfn 12TN ( oder ) showde ( or ) showen ( o ) showes ( ou ) showfr ( o ) showit ( or ) showjp 12RN tfbs (http://color.li.tu-berlin.de) show tfn 12TN 90 rotate 281 MM 185 MM moveto -90 rotate (TUB\255Registrierung: 20240201\255ggk5/ggk5l) showde (TUB registration: 20240201\255ggk5/ggk5l) showen (TUB matr\355cula: 20240201\255ggk5/ggk5l) showes (TUB enregistrement: 20240201\255ggk5/ggk5l) showfr (TUB iscrizione: 20240201\255ggk5/ggk5l) showit (TUB registration: 20240201\255ggk5/ggk5l) showjp (0) show % LSC$ show LEX$ show 90 rotate 281 MM 74 MM moveto -90 rotate (TUB\255Material: Code=rha4ta) showde (TUB material: code=rha4ta) showen (TUB material: code=rha4ta) showes (TUB mat\351riel: code=rha4ta) showfr (TUB materiale: code=rha4ta) showit (TUB material: code=rha4ta) showjp 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 ( application for evaluation and measurement ) showen ( aplicaci\363n para la medida ) showes ( application pour la mesure ) showfr ( la domanda per la misura ) showit ( application for measurement ) showjp (von Display\255 oder Druck\255Ausgabe) showde (of display or print output) showen (de display output) showes (de sortie sur \350cran) showfr (di stampa di display) showit (of display output) showjp 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