summaryrefslogtreecommitdiff
path: root/graphics/pstricks/contrib/pstricks-add/dvips
diff options
context:
space:
mode:
authorNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
committerNorbert Preining <norbert@preining.info>2019-09-02 13:46:59 +0900
commite0c6872cf40896c7be36b11dcc744620f10adf1d (patch)
tree60335e10d2f4354b0674ec22d7b53f0f8abee672 /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.pro193
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