%!PS-Adobe-3.0 EPSF-3.0 XE070-8N %%BoundingBox: 70 85 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: http://130.149.60.45/~farbmetrik/SE25/) /Author (compare K. Richter "Computergrafik ...": ISBN 3-8007-1775-1) /Subject (goto: http://www.ps.bam.de or http://130.149.60.45/~farbmetrik) /Keywords (image reproduction, colour devices, colour vision) /Creator (klaus.richter@mac.com) /CreationDate (D:2015120112000) /ModDate (D:2015120112000) /DOCINFO pdfmark08 [ /View [ /FitB ] /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 /TV {160 /Times-ISOL1 FS} bind def /TS {200 /Times-ISOL1 FS} bind def /TK {250 /Times-ISOL1 FS} bind def /TM {300 /Times-ISOL1 FS} bind def /TG {350 /Times-ISOL1 FS} bind def /TIV {160 /TimesI-ISOL1 FS} bind def /TIS {200 /TimesI-ISOL1 FS} bind def /TIK {250 /TimesI-ISOL1 FS} bind def /TIM {300 /TimesI-ISOL1 FS} bind def /TIG {350 /TimesI-ISOL1 FS} bind def /TBV {160 /TimesB-ISOL1 FS} bind def /TBS {200 /TimesB-ISOL1 FS} bind def /TBK {250 /TimesB-ISOL1 FS} bind def /TBM {300 /TimesB-ISOL1 FS} bind def /TBG {350 /TimesB-ISOL1 FS} bind def /TBIV {160 /TimesBI-ISOL1 FS} bind def /TBIS {200 /TimesBI-ISOL1 FS} bind def /TBIK {250 /TimesBI-ISOL1 FS} bind def /TBIM {300 /TimesBI-ISOL1 FS} bind def /TBIG {350 /TimesBI-ISOL1 FS} bind def %%EndProlog gsave /nshow {TS show} bind def /kshow {TIS show} bind def /bshow {TBS show} bind def /jshow {TBIS show} bind def /ibshown {TBS -50 -50 rmoveto show 0 50 rmoveto TBS} bind def /ibshow0 {TBS -00 -50 rmoveto show 0 50 rmoveto TBS} bind def /ishown {TS -50 -50 rmoveto show 0 50 rmoveto TS } bind def /ishow0 {TS -00 -50 rmoveto show 0 50 rmoveto TS } bind def %40% kleiner /ns4 {250 /Times-ISOL1 FS show TK} bind def /ks4 {250 /TimesI-ISOL1 FS show TK} bind def /bs4 {250 /TimesB-ISOL1 FS show TK} bind def /js4 {250 /TimesBI-ISOL1 FS show TK} bind def /ss4 {250 /Symbol FS show TK} bind def /is4 {200 /Times-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /es4 {200 /Times-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ib4 {200 /TimesB-ISOL1 FS 0 -60 rmoveto show 0 60 rmoveto TK} bind def /eb4 {200 /TimesB-ISOL1 FS 0 130 rmoveto show 0 -130 rmoveto TK} bind def /ip4 {200 /Times-ISOL1 FS 30 30 rmoveto (\267) show 30 -30 rmoveto TK} bind def %60% kleiner /ns6 {200 /Times-ISOL1 FS show TS} bind def /ks6 {200 /TimesI-ISOL1 FS show TS} bind def /bs6 {200 /TimesB-ISOL1 FS show TS} bind def /js6 {200 /TimesBI-ISOL1 FS show TS} bind def /ss6 {200 /Symbol FS show TS} bind def /is6 {160 /Times-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /es6 {160 /Times-ISOL1 FS 0 100 rmoveto show 0 -100 rmoveto TS} bind def /ib6 {160 /TimesB-ISOL1 FS 0 -50 rmoveto show 0 50 rmoveto TS} bind def /eb6 {160 /TimesB-ISOL1 FS 0 100 rmoveto show 0 -100 rmoveto TS} bind def /ip6 {160 /Times-ISOL1 FS 24 24 rmoveto (\267) show 24 -24 rmoveto TS} bind /cvishow {cvi 6 string cvs show} def /cvsshow1 {10 mul cvi 0.1 mul 9 string cvs show} def /cvsshow2 {100 mul cvi 0.01 mul 9 string cvs show} def /cvsshow3 {1000 mul cvi 0.001 mul 9 string cvs show} def /cvsshow4 {10000 mul cvi 0.0001 mul 9 string cvs show} def %%EndProlog gsave /lanind 0 def /showde {0 lanind eq {show} {pop} ifelse} bind def /showen {1 lanind le {show} {pop} ifelse} bind def /showes {2 lanind eq {show} {pop} ifelse} bind def /showfr {3 lanind le {show} {pop} ifelse} bind def /showit {4 lanind eq {show} {pop} ifelse} bind def /showjp {5 lanind le {show} {pop} ifelse} bind def /lanindg where {pop /lanind1 lanindg def /lanind2 lanindg def} {/lanind1 1 def /lanind2 1 def} ifelse /colormg where {pop /colorm1 colormg def /colorm2 colormg def} {/colorm1 0 def /colorm2 0 def} ifelse /xcolorg where {pop /xcolor1 xcolorg def /xcolor2 xcolorg def} {/xcolor1 0 def /xcolor2 0 def} ifelse /xchartg where {pop /xchart1 xchartg def /xchart2 xchartg def} {/xchart1 0 def /xchart2 0 def} ifelse /lanind lanind1 def %lanind1 1 lanind2 {/lanind exch def %output showpage /colorm colorm1 def %colorm1 1 colorm2 {/colorm exch def %output showpage /xcolor xcolor1 def %xcolor1 1 xcolor2 {/xcolor exch def %output showpage /xchart xchart1 def %xchart1 1 xchart2 {/xchart exch def %output showpage /GSS$ where {pop /LSS$ GSS$ def} {/LSS$ (1) def} ifelse /GSC$ where {pop /LSC$ GSC$ def} {/LSC$ (N) def} ifelse /GSX$ where {pop /LSX$ GSX$ def} {/LSX$ (0) def} ifelse /GSY$ where {pop /LSY$ GSY$ def} {/LSY$ (0) def} ifelse /GEX$ where {pop /LEX$ GEX$ def} {/LEX$ (P.PS./PDF) def} ifelse /GEY$ where {pop /LEY$ GEY$ def} {/LEY$ (P.DAT) def} ifelse /IMES where {pop %/IMES IMES def } {/IMES 0 def} ifelse gsave 72 90 translate 0.01 MM dup scale 150 /Times-ISOL1 FS 0 setgray 300 -150 moveto (XE070-8N) show /ytit 400 def /yhoe 4000 def /yhoet yhoe ytit sub def /xwide 5333 def /ishow {-50 -100 rmoveto 200 /Times-ISOL1 FS show 0 100 rmoveto TM} bind def 15 setlinewidth 0.0 0.0 0.0 0.0 setcmykcolor 0 0 moveto xwide 0 rlineto 0 yhoe rlineto xwide neg 0 rlineto closepath fill 0.0 0.0 0.0 1.0 setcmykcolor 0 0 moveto xwide 0 rlineto 0 yhoe rlineto xwide neg 0 rlineto closepath stroke /yt 300 def %y-Zeilenabstand for text /yd 400 def %y-Zeilenabstand for formula %Spalten %/S1 100 def %/S2 1500 def %/S3 2300 def %/S4 5900 def %/S5 7700 def %/S6 8500 def %/yz 400 def %/yu5 7600 def %/yu4 7100 def %/yu3 5800 def %/yu2 5800 def %/yu1 5800 def %max 2800 sample pairs with 10 data per line = minimum 28000 data /WData0 28000 array def /WData0 [ %LCD_datasets_0080_RL=Richter_L.txt 20151001 from DARI_RICHDG05.FOR/TXT %Data series: 1:BDJ, 2:GDV, 3:RDC, 4:TDM, 5:ANY, 6:WDS, 7:QPS, 8:OPN %Source: BAM RESEARCH REPORT 115 (1985), Tables 4.40;1 to 12, and 4.50;1 %Reference White, Sample 1, Sample 2, Vis.Dif. %X0 Y0 Z0 X1 Y1 Z1 X2 Y2 Z2 dV %BDJ 90.384 100.000 87.549 14.496 16.680 24.816 14.490 16.550 22.193 4.200 90.384 100.000 87.549 14.490 16.550 22.193 14.838 16.910 20.719 4.200 90.384 100.000 87.549 14.838 16.910 20.719 15.256 17.230 19.885 4.200 90.384 100.000 87.549 15.256 17.230 19.885 15.433 17.340 18.911 4.200 90.384 100.000 87.549 15.433 17.340 18.911 15.482 17.170 15.851 4.200 90.384 100.000 87.549 15.482 17.170 15.851 14.820 16.070 10.915 10.800 90.384 100.000 87.549 14.820 16.070 10.915 15.700 16.680 6.988 10.800 90.384 100.000 87.549 15.700 16.680 6.988 16.529 17.350 4.840 10.800 90.384 100.000 87.549 16.529 17.350 4.840 16.742 17.470 3.882 10.800 90.384 100.000 87.549 16.742 17.470 3.882 16.917 17.840 1.437 10.800 %RDC 90.384 100.000 87.549 26.926 15.730 3.419 24.318 15.620 5.482 20.000 90.384 100.000 87.549 24.318 15.620 5.482 23.174 15.650 6.499 20.000 90.384 100.000 87.549 23.174 15.650 6.499 19.868 16.450 10.629 20.000 90.384 100.000 87.549 19.868 16.450 10.629 17.420 16.620 13.002 20.000 90.384 100.000 87.549 17.420 16.620 13.002 15.344 16.630 14.806 20.000 90.384 100.000 87.549 15.344 16.630 14.806 12.981 15.770 14.897 8.200 90.384 100.000 87.549 12.981 15.770 14.897 11.973 16.000 15.612 8.200 90.384 100.000 87.549 11.973 16.000 15.612 10.719 17.940 18.664 8.200 90.384 100.000 87.549 10.719 17.940 18.664 9.639 17.720 18.871 8.200 90.384 100.000 87.549 9.639 17.720 18.871 8.291 18.120 19.932 8.200 %GDM 90.384 100.000 87.549 6.419 17.030 4.019 7.923 16.730 6.067 14.300 90.384 100.000 87.549 7.923 16.730 6.067 9.556 16.630 8.202 14.300 90.384 100.000 87.549 9.556 16.630 8.202 11.933 16.790 11.187 14.300 90.384 100.000 87.549 11.933 16.790 11.187 13.881 16.710 13.673 14.300 90.384 100.000 87.549 13.881 16.710 13.673 14.531 16.190 14.617 14.300 90.384 100.000 87.549 14.531 16.190 14.617 14.680 14.850 15.253 11.300 90.384 100.000 87.549 14.680 14.850 15.253 15.255 14.470 16.182 11.300 90.384 100.000 87.549 15.255 14.470 16.182 16.569 14.270 18.081 11.300 90.384 100.000 87.549 16.569 14.270 18.081 17.436 14.170 19.273 11.300 90.384 100.000 87.549 17.436 14.170 19.273 18.144 13.820 20.385 11.300 %TDP 90.384 100.000 87.549 5.179 14.220 16.997 7.348 14.600 16.342 10.000 90.384 100.000 87.549 7.348 14.600 16.342 8.533 14.910 16.117 10.000 90.384 100.000 87.549 8.533 14.910 16.117 11.397 15.810 15.801 10.000 90.384 100.000 87.549 11.397 15.810 15.801 13.288 16.480 15.707 10.000 90.384 100.000 87.549 13.288 16.480 15.707 14.571 16.040 14.458 10.000 90.384 100.000 87.549 14.571 16.040 14.458 20.726 15.610 15.766 22.200 90.384 100.000 87.549 20.726 15.610 15.766 24.030 15.670 16.748 22.200 90.384 100.000 87.549 24.030 15.670 16.748 28.914 15.990 18.448 22.200 90.384 100.000 87.549 28.914 15.990 18.448 31.544 16.260 19.497 22.200 90.384 100.000 87.549 31.544 16.260 19.497 36.354 16.650 21.492 22.200 %ANY 90.384 100.000 87.549 7.881 6.220 25.068 7.320 6.310 19.809 11.500 90.384 100.000 87.549 7.320 6.310 19.809 7.011 6.560 15.689 11.500 90.384 100.000 87.549 7.011 6.560 15.689 6.607 6.730 11.171 11.500 90.384 100.000 87.549 6.607 6.730 11.171 6.345 6.790 8.551 11.500 90.384 100.000 87.549 6.345 6.790 8.551 6.085 6.740 6.548 11.500 90.384 100.000 87.549 6.085 6.740 6.548 5.933 6.610 4.760 7.500 90.384 100.000 87.549 5.933 6.610 4.760 5.891 6.390 3.308 7.500 90.384 100.000 87.549 5.891 6.390 3.308 6.112 6.460 2.060 7.500 90.384 100.000 87.549 6.112 6.460 2.060 6.221 6.500 1.574 7.500 90.384 100.000 87.549 6.221 6.500 1.574 6.287 6.460 0.788 7.500 %WDS 90.384 100.000 87.549 25.352 28.210 27.642 22.904 25.500 25.125 5.000 90.384 100.000 87.549 22.904 25.500 25.125 20.345 22.730 22.448 5.000 90.384 100.000 87.549 20.345 22.730 22.448 19.304 21.510 21.498 5.000 90.384 100.000 87.549 19.304 21.510 21.498 18.158 20.250 20.356 5.000 90.384 100.000 87.549 18.158 20.250 20.356 15.325 17.100 17.444 5.000 90.384 100.000 87.549 15.325 17.100 17.444 11.119 12.410 12.939 16.700 90.384 100.000 87.549 11.119 12.410 12.939 7.797 8.710 9.201 16.700 90.384 100.000 87.549 7.797 8.710 9.201 4.664 5.210 5.504 16.700 90.384 100.000 87.549 4.664 5.210 5.504 2.722 3.040 3.134 16.700 90.384 100.000 87.549 2.722 3.040 3.134 1.055 1.170 1.110 16.700 %QPS 95.189 100.000 44.160 171.786 180.570 80.354 108.797 114.940 52.960 22.500 95.189 100.000 44.160 108.797 114.940 52.960 64.045 67.880 31.957 22.500 95.189 100.000 44.160 64.045 67.880 31.957 37.389 39.530 18.656 22.500 95.189 100.000 44.160 37.389 39.530 18.656 29.611 31.250 14.658 22.500 95.189 100.000 44.160 29.611 31.250 14.658 18.750 19.690 9.017 22.500 95.189 100.000 44.160 18.750 19.690 9.017 15.534 16.270 7.335 6.200 95.189 100.000 44.160 15.534 16.270 7.335 12.738 13.300 5.879 6.200 95.189 100.000 44.160 12.738 13.300 5.879 9.637 10.010 4.289 6.200 95.189 100.000 44.160 9.637 10.010 4.289 7.559 7.810 3.235 6.200 95.189 100.000 44.160 7.559 7.810 3.235 5.594 5.740 2.274 6.200 %OPN 95.189 100.000 44.160 33.983 35.700 16.612 29.454 31.070 14.633 6.000 95.189 100.000 44.160 29.454 31.070 14.633 26.344 27.820 13.213 6.000 95.189 100.000 44.160 26.344 27.820 13.213 23.799 25.160 12.079 6.000 95.189 100.000 44.160 23.799 25.160 12.079 20.450 21.650 10.538 6.000 95.189 100.000 44.160 20.450 21.650 10.538 18.479 19.580 9.592 6.000 95.189 100.000 44.160 18.479 19.580 9.592 13.904 14.750 7.339 14.400 95.189 100.000 44.160 13.904 14.750 7.339 9.991 10.610 5.315 14.400 95.189 100.000 44.160 9.991 10.610 5.315 5.318 5.640 2.791 14.400 95.189 100.000 44.160 5.318 5.640 2.791 3.111 3.290 1.578 14.400 95.189 100.000 44.160 3.111 3.290 1.578 1.244 1.300 0.570 14.400 ] def /CODT 32 array def /CODT [%BEG CODT (B-Z) (Z-Y) (G-Z) (Z-V) (R-Z) (Z-C) (T-Z) (Z-M) (Bd-D) (D-Yd) (W-Z) (Z-N) (Wq-P) (P-Nq) (Wo-P) (P-No) (B-Z) (Z-Y) (G-Z) (Z-V) (R-Z) (Z-C) (T-Z) (Z-M) (Bd-D) (D-Yd) (W-Z) (Z-N) (Wq-P) (P-Nq) (Wo-P) (P-No) ] def %END CODT /D13 1 3 div def /D841_108 841 108 div def /D4_29 4 29 div def /D6_29 6 29 div 3 exp def /proc_coldiff {%BEG procedure proc_coldiff PROC_COLDIFF_WK58.PS 150529 %calculates CIE colour data and differences for 10 colour spaces %BEG CIELAB/CIELCH /FL 0.000001 def X0 XW div D6_29 gt {/FXXN0 X0 XW div 0.0001 add D13 exp def} {/FXXN0 D841_108 X0 XW div mul D4_29 add def} ifelse Y0 YW div D6_29 gt {/FYYN0 Y0 YW div 0.0001 add D13 exp def} {/FYYN0 D841_108 Y0 YW div mul D4_29 add def} ifelse Z0 ZW div D6_29 gt {/FZZN0 Z0 ZW div 0.0001 add D13 exp def} {/FZZN0 D841_108 Z0 ZW div mul D4_29 add def} ifelse /CIEL*0 116. FYYN0 mul 16. sub def /CIEa*0 500. FXXN0 FYYN0 sub mul def /CIEb*0 200. FYYN0 FZZN0 sub mul def /CIEC*ab0 CIEa*0 dup mul CIEb*0 dup mul add 0.0001 add sqrt def /CIEhab0 CIEb*0 CIEa*0 0.0001 add atan def X1 XW div D6_29 gt {/FXXN1 X1 XW div 0.0001 add D13 exp def} {/FXXN1 D841_108 X1 XW div mul D4_29 add def} ifelse Y1 YW div D6_29 gt {/FYYN1 Y1 YW div 0.0001 add D13 exp def} {/FYYN1 D841_108 Y1 YW div mul D4_29 add def} ifelse Z1 ZW div D6_29 gt {/FZZN1 Z1 ZW div 0.0001 add D13 exp def} {/FZZN1 D841_108 Z1 ZW div mul D4_29 add def} ifelse /CIEL*1 116. FYYN1 mul 16. sub def /CIEa*1 500. FXXN1 FYYN1 sub mul def /CIEb*1 200. FYYN1 FZZN1 sub mul def /CIEC*ab1 CIEa*1 dup mul CIEb*1 dup mul add 0.0001 add sqrt def /CIEhab1 CIEb*1 CIEa*1 0.0001 add atan def %mixed terms with *0 sn *1: /d_CIEL* CIEL*1 CIEL*0 sub def /d_CIEa* CIEa*1 CIEa*0 sub def /d_CIEb* CIEb*1 CIEb*0 sub def d_CIELABi i d_CIEL* dup mul d_CIEa* dup mul add d_CIEb* dup mul add 0.00000001 add sqrt put /a_CIELAB 1.26 def /b_CIELAB 0.55 def d_CIELABmi i d_CIELABi i get b_CIELAB exp a_CIELAB mul put /d_CIEh CIEhab1 CIEhab0 sub def %see CIEDE2000 page 4 CIEC*ab1 CIEC*ab0 mul 0 eq {/d_CIEh 0 def} if %CIEC*ab1 x CIEC*ab0 =0 CIEC*ab1 CIEC*ab0 mul 0 ne d_CIEh 180 gt and {/d_CIEh d_CIEh 360 sub def} if CIEC*ab1 CIEC*ab0 mul 0 ne d_CIEh -180 lt and {/d_CIEh d_CIEh 360 add def} if /d_CIEL CIEL*1 CIEL*0 sub def /d_CIECab CIEC*ab1 CIEC*ab0 sub def /d_CIEHab CIEC*ab1 CIEC*ab0 mul 0.000001 add sqrt 2 mul d_CIEh 0.5 mul sin mul def d_CIELCHi i d_CIEL dup mul d_CIECab dup mul add d_CIEHab dup mul add 0.000001 add sqrt put %alternative: %for 2 an 10 degree observer, see Richter (1996) %a'=0,2191 b'=-0,08376 a'10=0,2193, b'10=-0,08417 %a'2 and a'10 used for both 12 and 190 degree observer %BEG LABD65_1976=C76 /S76L 1 def /S76A 1 def /S76B 1 def /K76L 1 def /K76A 1 def /K76B 1 def /AS2 0.2191 def /BS2 -0.08376 def %C76a'=AS2*(x/y)**(1/3) %C76b'=BS2*(z/y)**(1/3) %C76L*=L*CIE %C76a*=500*[C76a'-C76a'n]*Y**(1/3) %C76b*=500*[C76b'-C76b'n]*Y**(1/3) /C76a'0 X0 Y0 FL add div 0.3333 exp AS2 mul def /C76a'1 X1 Y1 FL add div 0.3333 exp AS2 mul def /C76a'n XW YW FL add div 0.3333 exp AS2 mul def /C76b'0 Z0 Y0 FL add div 0.3333 exp BS2 mul def /C76b'1 Z1 Y1 FL add div 0.3333 exp BS2 mul def /C76b'n ZW YW FL add div 0.3333 exp BS2 mul def /C76a*0 C76a'0 C76a'n sub 500 mul Y0 1 3 div exp mul def /C76a*1 C76a'1 C76a'n sub 500 mul Y1 1 3 div exp mul def /C76b*0 C76b'0 C76b'n sub 500 mul Y0 1 3 div exp mul def /C76b*1 C76b'1 C76b'n sub 500 mul Y1 1 3 div exp mul def %name d_CIELCHi instead of d_LABD65i 1976 d_CIELCHi i CIEL*1 CIEL*0 sub K76L div S76L div dup mul C76a*1 C76a*0 sub K76A div S76A div dup mul add C76b*1 C76b*0 sub K76B div S76B div dup mul add 0.00000001 add sqrt put %END LABD65_1976=C76 /a_CIELCH 1.26 def /b_CIELCH 0.55 def d_CIELCHmi i d_CIELCHi i get b_CIELCH exp a_CIELCH mul put %BEG CIELAB/CIELCH %BEG CIE94 /S94L 1 def /S94C 1 0.045 CIEC*ab0 mul add def /S94H 1 0.015 CIEC*ab0 mul add def /K94L 1 def /K94C 1 def /K94H 1 def /LC94*0 CIEL*0 K94L div S94L div def /LC94*1 CIEL*1 K94L div S94L div def /CC94*ab0 CIEC*ab0 K94C div S94C div def /CC94*ab1 CIEC*ab1 K94C div S94C div def d_C94LCHi i CIEL*1 CIEL*0 sub K94L div S94L div dup mul CIEC*ab1 CIEC*ab0 sub K94C div S94C div dup mul add d_CIEHab K94H div S94H div dup mul add 0.00000001 add sqrt put /a_C94LCH 1.41 def /b_C94LCH 0.70 def d_C94LCHmi i d_C94LCHi i get b_C94LCH exp a_C94LCH mul put %END CIE94 %BEG CMC(l:c=1:1) %special mean m of two samples for SCML, SCMC, TCMC /CIEL*0m CIEL*0 CIEL*1 add 0.5 mul def /CMCC0S CIEC*ab0 def /CMCC1S CIEC*ab1 def /CIEC*ab0m CMCC0S CMCC1S add 0.5 mul def CIEC*ab0 0 eq {/CMCh0S 0 def} {/CMCh0S CIEb*0 CIEa*0 0.0001 add atan def } ifelse CIEC*ab1 0 eq {/CMCh1S 0 def} {/CMCh1S CIEb*1 CIEa*1 0.0001 add atan def } ifelse %beg special EQUATION (11) TO (14) /d_CMChS0 CMCh1S CMCh0S sub def %see CIEDE2000 page 4 CMCC1S CMCC0S mul 0 eq {/d_CMChS 0 def} if %CIEC*ab1 x CIEC*ab0 =0 CMCC1S CMCC0S mul 0 ne d_CMChS0 abs 180 le and {/d_CMChSm d_CMChS0 def} if CMCC1S CMCC0S mul 0 ne d_CMChS0 180 gt and {/d_CMChSm d_CMChS0 360 sub def} if CMCC1S CMCC0S mul 0 ne d_CMChS0 -180 lt and {/d_CMChSm d_CMChS0 360 add def} if %end special EQUATION (11) TO (14) %beg special EQUATION (23) TO (26) /a_CMChsm CMCh0S CMCh1S add 0.5 mul def /m_CMCCSm CMCC0S CMCC1S mul def d_CMChSm abs 180 le m_CMCCSm 0 ne and {/CMChSqm a_CMChsm def} if d_CMChSm abs 180 gt a_CMChsm 360 le and m_CMCCSm 0 ne and {/CMChSqm CMCh0S CMCh1S add 360 add 0.5 mul def} if d_CMChSm abs 180 gt a_CMChsm 360 ge and m_CMCCSm 0 ne and {/CMChSqm CMCh0S CMCh1S add 360 sub 0.5 mul def} if m_CMCCSm 0 eq {/CMChSqm CMCh0S CMCh1S add def } if %end special EQUATION (23) TO (26) CIEL*0m 16 lt {/SCMLm 0.511 def} {/SCMLm 0.040975 CIEL*0m mul 0.01765 CIEL*0m mul 1 add div def } ifelse /SCMCm 0.0638 CIEC*ab0m mul 0.0131 CIEC*ab0m mul 1 add div 0.638 add def %beg special /FCMCm CIEC*ab0m dup mul dup mul CIEC*ab0m dup mul dup mul 1900 add div sqrt def CMChSqm 164 lt CMChSqm 345 gt or {/TCMCm CMChSqm 35 add cos 0.4 mul abs 0.36 add def} {/TCMCm CMChSqm 168 add cos 0.2 mul abs 0.56 add def} ifelse %end special /SCMHm TCMCm FCMCm mul 1 add FCMCm sub SCMCm mul def /KCML 1 def %=l /KCMC 1 def %=c /KCMH 1 def %1 /CMCL*0m CIEL*0 KCML div SCMLm div def /CMCL*1m CIEL*1 KCML div SCMLm div def /CMCC*ab0m CIEC*ab0 KCMC div SCMCm div def /CMCC*ab1m CIEC*ab1 KCMC div SCMCm div def d_CMCLCHi i CIEL*1 CIEL*0 sub KCML div SCMLm div dup mul CIEC*ab1 CIEC*ab0 sub KCMC div SCMCm div dup mul add d_CIEHab KCMH div SCMHm div dup mul add 0.00000001 add sqrt put /a_CMCLCH 1.34 def /b_CMCLCH 0.66 def d_CMCLCHmi i d_CMCLCHi i get b_CMCLCH exp a_CMCLCH mul put %END CMC(m:l:c=m:1:1)=CMC %BEG CM2(m:l:c=m:1:2)=CM2 /KM2L 1 def %=l /KM2C 2 def %=c /KM2H 1 def %1 /CM2L*0 CIEL*0 KM2L div SCMLm div def /CM2L*1 CIEL*1 KM2L div SCMLm div def /CM2C*ab0 CIEC*ab0 KM2C div SCMCm div def /CM2C*ab1 CIEC*ab1 KM2C div SCMCm div def d_CM2LCHi i CIEL*1 CIEL*0 sub KM2L div SCMLm div dup mul CIEC*ab1 CIEC*ab0 sub KM2C div SCMCm div dup mul add d_CIEHab KM2H div SCMHm div dup mul add 0.00000001 add sqrt put %END CM2(m:l:c=m:1:2)=CM2 %BEG CIEDE2000=C00 %beg special equation (7) /CIEC*ab CIEC*ab0 CIEC*ab1 add 0.5 mul def /DEG 1 CIEC*ab 7 exp CIEC*ab 7 exp 25 7 exp add div 0.000001 add sqrt sub 0.5 mul def %end special equation (7) %beg special EQUATION (1) TO (6) %0 /C00L0S CIEL*0 def /C00a0S 1 DEG add CIEa*0 mul def /C00b0S CIEb*0 def /C00C0S C00a0S dup mul C00b0S dup mul add 0.000001 add sqrt def C00C0S 0 eq {/C00h0S 0 def} {/C00h0S C00b0S C00a0S 0.0001 add atan def } ifelse %1 /C00L1S CIEL*1 def /C00a1S 1 DEG add CIEa*1 mul def /C00b1S CIEb*1 def /C00C1S C00a1S dup mul C00b1S dup mul add 0.000001 add sqrt def C00C1S 0 eq {/C00h1S 0 def} {/C00h1S C00b1S C00a1S 0.0001 add atan def } ifelse %end special EQUATION (1) TO (6) %beg special EQUATION (11) TO (14) /d_C00hS0 C00h1S C00h0S sub def %see CIEDE2000 page 4 C00C1S C00C0S mul 0 eq {/d_C00hS 0 def} if %CIEC*ab1 x CIEC*ab0 =0 C00C1S C00C0S mul 0 ne d_C00hS0 abs 180 le and {/d_C00hS d_C00hS0 def} if C00C1S C00C0S mul 0 ne d_C00hS0 180 gt and {/d_C00hS d_C00hS0 360 sub def} if C00C1S C00C0S mul 0 ne d_C00hS0 -180 lt and {/d_C00hS d_C00hS0 360 add def} if %end special EQUATION (11) TO (14) %beg special EQUATION (8) TO (10) /d_C00LS C00L1S C00L0S sub def /d_C00aS C00a1S C00a0S sub def /d_C00bS C00b1S C00b0S sub def /d_C00CS C00C1S C00C0S sub def /d_C00HS C00C0S C00C1S mul 0.000001 add sqrt 2 mul d_C00hS 0.5 mul sin mul def %end special EQUATION (8) TO (10) %beg special EQUATION (23) TO (26) /a_C00hs C00h0S C00h1S add 0.5 mul def /m_C00CS C00C0S C00C1S mul def d_C00hS abs 180 le m_C00CS 0 ne and {/C00hSq a_C00hs def} if d_C00hS abs 180 gt a_C00hs 360 le and m_C00CS 0 ne and {/C00hSq C00h0S C00h1S add 360 add 0.5 mul def} if d_C00hS abs 180 gt a_C00hs 360 ge and m_C00CS 0 ne and {/C00hSq C00h0S C00h1S add 360 sub 0.5 mul def} if m_C00CS 0 eq {/C00hSq C00h0S C00h1S add def } if %end special EQUATION (23) TO (26) %beg special EQUATIONS (16) TO (22) /C00LSq C00L0S C00L1S add 0.5 mul def /C00CSq C00C0S C00C1S add 0.5 mul def /C00SL C00LSq 50 sub dup mul 0.015 mul C00LSq 50 sub dup mul 20 add sqrt div 1 add def /C00SC 0.045 C00CSq mul 1 add def %beg special T, RT, d_D, RC /C00T C00hSq 30 sub cos -0.17 mul C00hSq 2 mul cos 0.24 mul add C00hSq 3 mul 6 add cos 0.32 mul add C00hSq 4 mul 63 sub cos 0.20 mul sub 1 add def /C00SH 0.015 C00CSq mul C00T mul 1 add def /C00RC C00CSq 7 exp C00CSq 7 exp 25 7 exp add 0.000001 add div 0.000001 add sqrt 2 mul def /expDT C00hSq 275 sub 25 div dup mul def /econst 2.718281 def /C00DT 30 econst expDT neg exp mul def /C00RT C00DT 2 mul sin neg C00RC mul def %end special T, RT, d_D, RC %end special EQUATIONS (16) TO (22) %beg special EQUATION (15) /C00KL 1.0 def /C00KC 1.0 def /C00KH 1.0 def /d_C00LSN d_C00LS C00KL div C00SL div def /d_C00CSN d_C00CS C00KC div C00SC div def /d_C00HSN d_C00HS C00KH div C00SH div def d_C00LCHi i d_C00LSN dup mul d_C00CSN dup mul add d_C00HSN dup mul add d_C00CSN d_C00HSN mul C00RT mul add 0.000001 add sqrt put /a_C00LCH 1.43 def /b_C00LCH 0.70 def d_C00LCHmi i d_C00LCHi i get b_C00LCH exp a_C00LCH mul put %end special EQUATION (15) %END CIEDE2000=C00 %BEG LABJND=C85 /Yq Y0 Y1 add 0.5 mul def /d_Y Y1 Y0 sub def /a085 X0 Y0 0.000001 add div def /b085 Z0 Y0 0.000001 add div 0.4 mul neg def /a185 X1 Y1 0.000001 add div def /b185 Z1 Y1 0.000001 add div 0.4 mul neg def /an85 XW YW 0.000001 add div def /bn85 ZW YW 0.000001 add div 0.4 mul neg def /d_a085 a085 an85 sub def /d_b085 b085 bn85 sub def /d_a185 a185 an85 sub def /d_b185 b185 bn85 sub def /a0"85 d_a085 d_a085 abs 0.5 mul 1 add div an85 add def /b0"85 d_b085 d_b085 abs 0.5 mul 1 add div bn85 add def /a1"85 d_a185 d_a185 abs 0.5 mul 1 add div an85 add def /b1"85 d_b185 d_b185 abs 0.5 mul 1 add div bn85 add def /d_Y Y1 Y0 sub def /d_a"85 a1"85 a0"85 sub def /d_b"85 b1"85 b0"85 sub def /s85 0.0170 def /q85 0.0058 def /g85 1.0000 def %not used /a0085 1.0 def /b0085 1.8 def /Y0085 1.5 def d_C85LCHi i d_Y dup mul a0085 d_a"85 mul Yq mul dup mul add b0085 d_b"85 mul Yq mul dup mul add 0.000001 add sqrt Y0085 mul q85 Yq mul s85 add div put /a_C85LCH 1.17 def /b_C85LCH 0.35 def d_C85LCHmi i d_C85LCHi i get b_C85LCH exp a_C85LCH mul put %END LABJND=C85 %BEG LABHNU_1977=C77 /S77L 1 def /S77A 1 def /S77B 1 def /K77L 1 def /K77A 1 def /K77B 1 def %C77a'=(x/y+1/6)**(1/3)/4 %C77b'=-(z/y+1/6)**(1/3)/12 %C77L*=L*CIE %C77a*=500*[C77a'-C77a'n]*Y**(1/3) %C77b*=500*[C77b'-C77b'n]*Y**(1/3) /C77a'0 X0 Y0 FL add div 1 6 div add 0.3333 exp 4 div def /C77a'1 X1 Y1 FL add div 1 6 div add 0.3333 exp 4 div def /C77a'n XW YW FL add div 1 6 div add 0.3333 exp 4 div def /C77b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C77b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C77b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C77a*0 C77a'0 C77a'n sub 500 mul Y0 1 3 div exp mul def /C77a*1 C77a'1 C77a'n sub 500 mul Y1 1 3 div exp mul def /C77b*0 C77b'0 C77b'n sub 500 mul Y0 1 3 div exp mul def /C77b*1 C77b'1 C77b'n sub 500 mul Y1 1 3 div exp mul def d_C77LCHi i CIEL*1 CIEL*0 sub K77L div S77L div dup mul C77a*1 C77a*0 sub K77A div S77A div dup mul add C77b*1 C77b*0 sub K77B div S77B div dup mul add 0.00000001 add sqrt put %END LABHNU_1977=C77 %BEG LABHNU1=C78 /S78L 1 def /S78A 1 def /S78B 1 def /K78L 1 def /K78A 1 def /K78B 1 def %C78a'=(x/y+1)/15 %C78b'=-(z/y+1/6)**(1/3)/12 %C78L*=L*CIE %C78a*=500*[C78a'-C78a'n]*Y**(1/3) %C78b*=500*[C78b'-C78b'n]*Y**(1/3) /C78a'0 X0 Y0 FL add div 1 add 15 div def /C78a'1 X1 Y1 FL add div 1 add 15 div def /C78a'n XW YW FL add div 1 add 15 div def /C78b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C78b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C78b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C78a*0 C78a'0 C78a'n sub 500 mul Y0 1 3 div exp mul def /C78a*1 C78a'1 C78a'n sub 500 mul Y0 1 3 div exp mul def /C78b*0 C78b'0 C78b'n sub 500 mul Y0 1 3 div exp mul def /C78b*1 C78b'1 C78b'n sub 500 mul Y0 1 3 div exp mul def d_C78LCHi i CIEL*1 CIEL*0 sub K78L div S78L div dup mul C78a*1 C78a*0 sub K78A div S78A div dup mul add C78b*1 C78b*0 sub K78B div S78B div dup mul add 0.00000001 add sqrt put %END LABHNU1_1978-C78 %BEG LABHNU2_1979=C79 /S79L 1 def /S79A 1 def /S79B 1 def /K79L 1 def /K79A 1 def /K79B 1 def %C79a'=(x/y+1/6)**(2/3)/15 %C79b'=-(z/y+1/6)**(1/3)/12 %C79L*=L*CIE %C79a*=500*[C79a'-C79a'n]*Y**(1/3) %C79b*=500*[C79b'-C79b'n]*Y**(1/3) /C79a'0 X0 Y0 FL add div 1 6 div add 0.6667 exp 15 div def /C79a'1 X1 Y1 FL add div 1 6 div add 0.6667 exp 15 div def /C79a'n XW YW FL add div 1 6 div add 0.6667 exp 15 div def /C79b'0 Z0 Y0 FL add div 1 6 div add 0.3333 exp 12 div neg def /C79b'1 Z1 Y1 FL add div 1 6 div add 0.3333 exp 12 div neg def /C79b'n ZW YW FL add div 1 6 div add 0.3333 exp 12 div neg def /C79a*0 C79a'0 C79a'n sub 500 mul Y0 1 3 div exp mul def /C79a*1 C79a'1 C79a'n sub 500 mul Y1 1 3 div exp mul def /C79b*0 C79b'0 C79b'n sub 500 mul Y0 1 3 div exp mul def /C79b*1 C79b'1 C79b'n sub 500 mul Y1 1 3 div exp mul def d_C79LCHi i CIEL*1 CIEL*0 sub K79L div S79L div dup mul C79a*1 C79a*0 sub K79A div S79A div dup mul add C79b*1 C79b*0 sub K79B div S79B div dup mul add 0.00000001 add sqrt put %END LABHNU2_1979=C79 } bind def %END procedure proc_coldiff %************************************************************* /d_CIELABi 2800 array def /d_CIELCHi 2800 array def /d_C94LCHi 2800 array def /d_CMCLCHi 2800 array def /d_CM2LCHi 2800 array def /d_C00LCHi 2800 array def /d_C85LCHi 2800 array def /d_C77LCHi 2800 array def /d_C78LCHi 2800 array def /d_C79LCHi 2800 array def /d_CIELABmi 2800 array def /d_CIELCHmi 2800 array def /d_C94LCHmi 2800 array def /d_CMCLCHmi 2800 array def /d_CM2LCHmi 2800 array def /d_C00LCHmi 2800 array def /d_C85LCHmi 2800 array def /d_C77LCHmi 2800 array def /d_C78LCHmi 2800 array def /d_C79LCHmi 2800 array def %calculated data: CIELAB01ai, 2800 x 10 dat = 28000 /WXYZR01Vai 28000 array def %CIEXYZ /CIELAB01ai 28000 array def %CIELAB /C00LAB01ai 28000 array def %CIE DE2000 /d_CIELAB0i 2800 array def %CIELAB /d_CIELCH0i 2800 array def %CIELCH /d_C94LCH0i 2800 array def %CIE94 /d_CMCLCH0i 2800 array def %CMC /d_C00LCH0i 2800 array def %CIEDE2000 /d_C85LCH0i 2800 array def %LABJND 1985 /iimp 080 def /iim iimp 1 sub def %STOP0 0 1 iim {/i exch def %i=0,iim /i10 i 10 mul def %save data in array 0 1 09 {/j exch def %j=0,09 WXYZR01Vai i10 j add WData0 i10 j add get put } for %j=0,09 } for %i=0,iim %STOPA 0 1 iim {/i exch def %i=0,iim /i10 i 10 mul def /XW WData0 i10 0 add get def /YW WData0 i10 1 add get def /ZW WData0 i10 2 add get def /X0 WData0 i10 3 add get def /Y0 WData0 i10 4 add get def /Z0 WData0 i10 5 add get def /X1 WData0 i10 6 add get def /Y1 WData0 i10 7 add get def /Z1 WData0 i10 8 add get def proc_coldiff CIELAB01ai i10 0 add CIEL*0 put CIELAB01ai i10 1 add CIEa*0 put CIELAB01ai i10 2 add CIEb*0 put CIELAB01ai i10 3 add CIEC*ab0 put CIELAB01ai i10 4 add CIEhab0 put CIELAB01ai i10 5 add CIEL*1 put CIELAB01ai i10 6 add CIEa*1 put CIELAB01ai i10 7 add CIEb*1 put CIELAB01ai i10 8 add CIEC*ab1 put CIELAB01ai i10 9 add CIEhab1 put } for %i=0,iim %%STOP1 %HUE CIRCLE /xd 1550 def /yd 5000 def /xp 1550 def /yp 5000 def 0 setgray TBK 100 yhoe 300 sub moveto (CIELAB Buntheit) showde (CIELAB chroma) showen TBIK ( C*) show (ab) ib4 TBK ( von BAM\2556stufigen) showde ( of BAM 6 step) showen 100 yhoe 600 sub moveto (visuell normierten gleichabst\344ndige Farbreihen) showde (visual normalized equidistant colour series) showen /xt2 0500 def /yt2 -2670 def xt2 yt2 translate /xfact 15 def /yfact 15 def 20 setlinewidth /xp0 xp 0400 add def /yp0 yp 1000 sub def /xpN xp0 1000 sub def /ypN yp0 1000 sub def xp0 2250 sub yp0 0 sub moveto 5000 0 rlineto stroke %horizontal axis xp0 0000 add yp0 1250 sub moveto 0 3000 rlineto stroke %vertical axis /xsfact 69.11 50. div def xp0 1500 xsfact mul sub yp0 70 sub moveto 0 140 rlineto stroke %vertical marks xp0 0750 xsfact mul sub yp0 70 sub moveto 0 140 rlineto stroke xp0 0750 xsfact mul add yp0 70 sub moveto 0 140 rlineto stroke xp0 1500 xsfact mul add yp0 70 sub moveto 0 140 rlineto stroke TS xp0 1650 xsfact mul sub yp0 300 sub moveto (-20) show %horizontal scale xp0 900 xsfact mul sub yp0 300 sub moveto (-10) show xp0 0650 xsfact mul add yp0 300 sub moveto (10) show xp0 1400 xsfact mul add yp0 300 sub moveto (20) show xp0 70 sub yp0 1500 add moveto 140 0 rlineto stroke %horizontal marks xp0 70 sub yp0 0750 add moveto 140 0 rlineto stroke xp0 70 sub yp0 0750 sub moveto 140 0 rlineto stroke xp0 400 sub yp0 1500 add moveto (100) show %vertical scale xp0 300 sub yp0 0700 add moveto (50) show xp0 400 sub yp0 0900 sub moveto (-50) show xp0 0100 add yp0 1650 add moveto TBIK (C*ab) show xp0 2400 add yp0 300 sub moveto TBIK (V*) show /colse1 1000 array def %min 96 colours x 6 /colse1 [%BEG colse1 %(B-Z-Y) (4) 6 step Serie 1 001 0.00 0.00 1.00 ( B) (4) 002 0.10 0.10 0.90 ( a) (4) 003 0.20 0.20 0.80 ( b) (4) 004 0.30 0.30 0.70 ( c) (4) 005 0.40 0.40 0.60 ( d) (4) 006 0.50 0.50 0.50 ( Z) (4) 007 0.50 0.50 0.50 ( Z) (4) 008 0.60 0.60 0.40 ( a) (4) 009 0.70 0.70 0.30 ( b) (4) 010 0.80 0.80 0.20 ( c) (4) 011 0.90 0.90 0.10 ( d) (4) 012 1.00 1.00 0.00 ( Y) (4) %R-Z-C 013 1.00 0.00 0.00 ( R) (4) 014 0.90 0.10 0.10 ( a) (4) 015 0.90 0.20 0.20 ( b) (4) 016 0.70 0.30 0.30 ( c) (4) 017 0.60 0.40 0.40 ( d) (4) 018 0.50 0.50 0.50 ( Z) (4) 019 0.50 0.50 0.50 ( Z) (4) 020 0.40 0.60 0.60 ( a) (4) 021 0.30 0.70 0.70 ( b) (4) 022 0.20 0.80 0.80 ( c) (4) 023 0.10 0.90 0.90 ( d) (4) 024 0.00 1.00 1.00 ( C) (4) %G-Z-M 025 0.00 1.00 0.00 ( G) (4) 026 0.10 0.90 0.10 ( a) (4) 027 0.20 0.80 0.20 ( b) (4) 028 0.30 0.70 0.30 ( c) (4) 029 0.40 0.60 0.40 ( d) (4) 030 0.50 0.50 0.50 ( Z) (4) 031 0.50 0.50 0.50 ( Z) (4) 032 0.60 0.40 0.60 ( a) (4) 033 0.70 0.30 0.70 ( b) (4) 034 0.80 0.20 0.80 ( c) (4) 035 0.90 0.10 0.90 ( d) (4) 036 1.00 0.00 1.00 ( M) (4) %T-Z-P 037 0.00 1.00 0.25 ( T) (4) 038 0.10 0.90 0.30 ( a) (4) 039 0.20 0.80 0.35 ( b) (4) 040 0.30 0.70 0.40 ( c) (4) 041 0.40 0.60 0.45 ( d) (4) 042 0.50 0.50 0.50 ( Z) (4) 043 0.50 0.50 0.50 ( Z) (4) 044 0.60 0.45 0.60 ( a) (4) 045 0.70 0.40 0.70 ( b) (4) 046 0.80 0.35 0.80 ( c) (4) 047 0.90 0.30 0.90 ( d) (4) 048 1.00 0.25 1.00 ( P) (4) ] def %END colse1 30 setlinewidth /ix -1 def /xiTfak -10.0 def /xiPfak 22.4 def /xiT 6 array def /xiP 6 array def % 0 1 2 3 4 5 /xiT [-1.0 -0.8 -0.6 -0.4 -0.2 0.00] def /xiP [ 0.0 0.448 0.896 1.344 1.792 2.24] def /C*abT CIELAB01ai 30 10 mul 3 add get def /C*abP CIELAB01ai 39 10 mul 8 add get def /C*abTi 6 array def 0 1 5 {/i exch def %i=0,5 %creates 6 data!!! C*abTi i CIELAB01ai 30 i add 10 mul 3 add get put } for %i=0,5 /C*abPi 6 array def 0 1 5 {/i exch def %i=0,5 C*abPi i CIELAB01ai 34 i add 10 mul 8 add get put } for %i=0,5 %STOP2 TK /ix 36 def %ix(T)=37-1, %ix(Z)=42-1,43-1 %ix(P)=48-1 20 setlinewidth 0 0 0 setrgbcolor /xiT0 -1.0 C*abT mul xfact mul def /yiT0 50.0 yfact mul def [40] 40 setdash xp0 yp0 moveto xiT0 xp0 add yiT0 yp0 add lineto stroke [ ] 0 setdash TV xiT0 xp0 add 180 sub yiT0 yp0 add 050 sub moveto (50) show xiT0 xp0 add 180 sub 0 yp0 add 050 add moveto (10) show /xiP0 1.0 C*abP mul xfact mul def /yiP0 0 def xiP0 xp0 add 050 add 880 add %why 880? 0 yp0 add 050 add moveto (22,4) show TS 0 1 05 {/i exch def %i=0,5 /xi00 xiT i get C*abT mul xfact mul def /yi00 C*abTi i get abs yfact mul def xi00 xp0 add yi00 yp0 add moveto xi00 xp0 add 0 yp0 add lineto stroke newpath xi00 xp0 add 100 sub yi00 yp0 add 100 add moveto C*abTi i get 2 le {0} {C*abTi i get} ifelse cvishow } for %i=0,5 0 1 05 {/i exch def %i=0,5 newpath /ix ix 1 add def /i6 ix 6 mul def /r colse1 i6 1 add get def /g colse1 i6 2 add get def /b colse1 i6 3 add get def r g b setrgbcolor /xi xiT i get C*abT mul xfact mul def /yi C*abTi i get abs yfact mul def xi xp0 add yi yp0 add 50 0 360 arc fill } for %i=0,5 0 0 0 setrgbcolor TS 0 1 05 {/i exch def %i=0,5 /xi00 xiP i get C*abT mul xfact mul def /yi00 C*abPi i get abs yfact mul def xi00 xp0 add yi00 yp0 add moveto xi00 xp0 add 0 yp0 add lineto stroke newpath xi00 xp0 add 100 sub yi00 yp0 add 100 add moveto C*abPi i get 2 le {0} {C*abPi i get} ifelse cvishow } for %i=0,5 /ix 41 def 0 1 05 {/i exch def %i=0,5 newpath /ix ix 1 add def /i6 ix 6 mul def /r colse1 i6 1 add get def /g colse1 i6 2 add get def /b colse1 i6 3 add get def r g b setrgbcolor /xi xiP i get C*abT mul xfact mul def /yi C*abPi i get abs yfact mul def xi xp0 add yi yp0 add 50 0 360 arc fill } for %i=0,5 %STOP3 xt2 neg yt2 neg translate /ioutk 0 def ioutk 1 eq {%iout=1 0 0 0 setrgbcolor 0 1 05 {/i exch def %i=0,5 newpath /xi0 xiT i get C*abT mul def /yi0 C*abTi i get abs def 100 3200 i 200 mul sub moveto i cvishow (, ) show xi0 cvsshow2 (, ) show yi0 cvsshow2 (, ) show C*abPi i get cvsshow2 (, ) show newpath /xi1 xiP i get C*abT mul def /yi1 C*abPi i get abs def 100 1600 i 200 mul sub moveto i cvishow (, ) show xi1 cvsshow2 (, ) show yi1 cvsshow2 (, ) show C*abTi i get cvsshow2 (, ) show } for %i=0,5 } if %ioutk=1 showpage grestore %%Trailer