diff options
author | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
---|---|---|
committer | Norbert Preining <norbert@preining.info> | 2019-09-02 13:46:59 +0900 |
commit | e0c6872cf40896c7be36b11dcc744620f10adf1d (patch) | |
tree | 60335e10d2f4354b0674ec22d7b53f0f8abee672 /graphics/pstricks/contrib/pstricks-add/dvips |
Initial commit
Diffstat (limited to 'graphics/pstricks/contrib/pstricks-add/dvips')
-rw-r--r-- | graphics/pstricks/contrib/pstricks-add/dvips/pstricks-add.pro | 193 |
1 files changed, 193 insertions, 0 deletions
diff --git a/graphics/pstricks/contrib/pstricks-add/dvips/pstricks-add.pro b/graphics/pstricks/contrib/pstricks-add/dvips/pstricks-add.pro new file mode 100644 index 0000000000..e30317ca78 --- /dev/null +++ b/graphics/pstricks/contrib/pstricks-add/dvips/pstricks-add.pro @@ -0,0 +1,193 @@ +%% $Id: pstricks-add.pro 37 2014-07-22 13:52:12Z herbert $ +%% +% PostScript prologue for pstricks-add.tex. +% +% Version 0.23, 2009/12/17 +% +/tx@addDict 410 dict def tx@addDict begin +%% +realtime srand % set random generator +% +%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% +/GTriangle { + gsave + /mtrx CM def + /colorA ED /colorB ED /colorC ED % save the colors + /yA ED /xA ED % save the origin + xA yA translate + rotate % \psk@gangle + /yB ED /xB ED /yC ED /xC ED % save other coordinates + /ds [ % save data in a array + 0 0 0 colorA aload pop % fd x y xr xg xb + 0 xB xA sub yB yA sub colorB aload pop + 0 xC xA sub yC yA sub colorC aload pop +% 1 xC xB add yB colorA aload pop % for use with 4 points ABCD + ] def + newpath + << + /ShadingType 4 % single Gouraud + /ColorSpace [ /DeviceRGB ] + /DataSource ds + >> + shfill + closepath + mtrx + setmatrix grestore} def +% +/RGBtoCMYK { % on stack r g b -> C M Y K + 3 dict begin + /Blue ED /Green ED /Red ED + 1 Red sub % Cyan + 1 Green sub % Magenta + 1 Blue sub % Yellow + 0 % Black + end +} def +% +/CMYKtoGRAY { % on stack c m y k -> gray + exch 0.11 mul add + exch 0.59 mul add + exch 0.3 mul add + dup 1 gt { pop 1 } if + neg 1 add +} def +% +/RGBtoGRAY { % on stack r g b -> gray + 0.11 mul + exch 0.59 mul add + exch 0.3 mul add +} def +% +/HSBtoGRAY { + 6 dict begin + /b exch def + /s exch def 6 mul dup cvi dup + /i exch def sub + /f exch def + /F [[0 1 f sub 1][f 0 1][1 0 1 f sub][1 f 0][1 f sub 1 0][0 1 f][0 1 1]] def + F i get { s mul neg 1 add b mul} forall + 0.11 mul + exch 0.59 mul add + exch 0.3 mul add + end +} def +% +%% convertisseur longueur d'onde ->R,G,B Manuel Luque +%% lambda max=780 nanometres +%% lambda min=380 nanometres +%% adaptation de : +%% http://www.physics.sfasu.edu/astro/color.html +%% www.efg2.com/lab +% +/Gamma 0.8 def +/calculateRGB { + lambda 379 le {/Red 0 def /Green 0 def /Blue 0 def} if + lambda 781 ge {/Red 0 def /Green 0 def /Blue 0 def} if + lambda 380 ge {lambda 439 le { + /R {lambda 440 sub neg 440 380 sub div} def + /Red R factor mul Gamma exp def + /G 0 def + /Green G factor mul Gamma exp def + /B 1 def + /Blue B factor mul Gamma exp def} if + } if + lambda 440 ge { lambda 489 le { + /G {lambda 440 sub 490 440 sub div} def + /Green G factor mul Gamma exp def + /R 0 def /Red 0 def + /B 1 def + /Blue B factor mul Gamma exp def } if + } if + lambda 490 ge {lambda 509 le { + /B {lambda 510 sub neg 510 490 sub div} def + /Blue B factor mul Gamma exp def + /R 0 def /Red 0 def + /G 1 def + /Green G factor mul Gamma exp def } if + } if + lambda 510 ge {lambda 579 le { + /R {lambda 510 sub 580 510 sub div } def + /Red R factor mul Gamma exp def + /Blue 0 def + /G 1 def + /Green G factor mul Gamma exp def } if + } if + lambda 580 ge {lambda 644 le { + /G {lambda 645 sub neg 645 580 sub div } def + /Green G factor mul Gamma exp def + /Blue 0 def + /R 1 def + /Red R factor mul Gamma exp def } if + } if + lambda 645 ge { lambda 780 le { + /Red 1 factor mul Gamma exp def + /Blue 0 def + /Green 0 def } if + } if +} def +% +/factor { + lambda 380 ge {lambda 419 le { 0.3 0.7 lambda 380 sub mul 420 380 sub div add} if } if + lambda 420 ge {lambda 700 le { 1 } if } if + lambda 701 ge {lambda 780 le { 0.3 0.7 780 lambda sub mul 780 700 sub div add} if } if +} def +% +/wavelengthToRGB { % the wavelength in nm must be on top of the stack + cvi /lambda exch def % no floating point here + calculateRGB +} def % now the colors are saved in Red Green Blue +% +/wavelengthToGRAY { % the wavelength in nm must be on top of the stack + cvi /lambda exch def % no floating point here + calculateRGB + Red Green Blue RGBtoGRAY +} def % now the gray color is on the stack +% +/wavelengthToCMYK { % the wavelength in nm must be on top of the stack + cvi /lambda exch def % no floating point here + gsave + calculateRGB Red Green Blue RGBtoCMYK + /Black ED /Yellow ED /Magenta ED /Cyan ED + grestore +} def % now the colors are saved in Cyan Magenta Yellow Black +% +/axfill { + 8 dict begin + /xw exch def /nl exch def + /C1 exch def /y1 exch def/x1 exch def + /C0 exch def /y0 exch def/x0 exch def + << /ShadingType 2 + /ColorSpace /DeviceRGB + /Coords [ x0 y0 x1 y1 ] + /EmulatorHints [ xw 2 div dup ] + /Function << + /FunctionType 2 + /Domain [0 1] + /C0 C0 + /C1 C1 + /N 1 + >> + >> shfill + end +} bind def +% +%/amplHand {.8} def +%/dtHand 2 def +/varHand { rand sin amplHand mul add } def +/MovetoByHand { moveto } def +%/MovetoByHand { /y0 ED /x0 ED x0 y0 moveto } def +/LinetoByHand { 4 dict begin + /y1 ED /x1 ED + currentpoint /y0 ED /x0 ED + x0 x1 sub dup mul y0 y1 sub dup mul add sqrt /dEnd ED + 0 dtHand dEnd { dup + x1 x0 sub mul dEnd div x0 add varHand exch + y1 y0 sub mul dEnd div y0 add varHand lineto + } for +% /x0 x1 def /y0 y1 def + end +} def +% +end +% +% END pstricks-add.pro |