From 500caaeda74dd9c660279036293f4b2997cf0b03 Mon Sep 17 00:00:00 2001 From: Dimitri Sokolyuk Date: Sat, 9 Sep 2017 09:42:37 +0200 Subject: Add vendor --- vendor/github.com/llgcode/ps/samples/vasarely.ps | 588 +++++++++++++++++++++++ 1 file changed, 588 insertions(+) create mode 100644 vendor/github.com/llgcode/ps/samples/vasarely.ps (limited to 'vendor/github.com/llgcode/ps/samples/vasarely.ps') diff --git a/vendor/github.com/llgcode/ps/samples/vasarely.ps b/vendor/github.com/llgcode/ps/samples/vasarely.ps new file mode 100644 index 0000000..bb058a6 --- /dev/null +++ b/vendor/github.com/llgcode/ps/samples/vasarely.ps @@ -0,0 +1,588 @@ +%! +% vasarely +% Elizabeth D. Zwicky +% zwicky@sgi.com +/vasarelysave save def % prevent residual side effects +% +% Inspired by Vasarely's experiments with tilting circles and squares +% (for instance "Tlinko" and "Betelgeuse" + +%% circles +/part { circle } def /nnrand false def +%% squares +% /part { ngon } def /nn 4 def /nnrand false def +%% random polygons +% /part { ngon } def /nnrand true def +%% random stars (not my favorite on this program) +% /part { nstar } def /nnrand true def + +%% tilt the base shape a random amount? +/twist false def +% /twist true def + + +/rainbow false def +%% To make rainbows +% /rainbow true def +%% Set this to 1 to go through a full range of colors +/rainrange .25 def + +% number of different designs per page +/inheight 2 def +/inwidth 2 def +% number of repeats in a design +/xtimes 10 def +/ytimes 16 def + +%% This sets the relationship between the two hues: comptwo is maximum contrast +/colorway {comptwo} def +%% monochrome comptwo harmtwo harmfour freecolor compthree closeharm +%% origcolor + +%% This sets the brightness and saturation of the colors; vivid makes +%% them both bright +/colorfam {vivid} def +%% vivid jewel intense medium pastel free orig contrast +%% medjewel medvivid vivpastel medpastel + + +%% Only experts below this point! + +10 srand +/seed rand def + +/starcompensate false def +/constroke 1 def + + + +/circle { + /radius radius 1.33 mul def + currentpoint /herey exch def /herex exch def + herex herey radius 0 360 arc +} def + +/ngon{ % polygon of n sides, n determined by nn + nside 2 div radius rmoveto + nn cvi { + nside neg 0 rlineto + 360 360 nn div sub neg rotate + } repeat + closepath +} def + +/nstar{ % star of n points, n determined by nstarslider + /radius radius 1.33 mul def + currentpoint /herey exch def /herex exch def + 0 radius rmoveto + 90 nstarangle 2 div add neg rotate + nn cvi {nstarside 0 rlineto + 180 180 nstarangle 2 mul sub sub neg rotate + nstarside 0 rlineto + 180 180 360 nn div sub nstarangle 2 mul sub sub rotate + } repeat + 90 nstarangle 2 div add rotate + closepath +} def + +/nstarangle {180 360 nn div sub 3 div} def +/nstarside { + 2 + radius + 1 + 180 nn div + sin + div + div + mul + nstarangle sin + mul + 180 + nstarangle 2 mul + sub + sin + div +} def + +/nside { + 2 + radius + 360 nn div 2 div tan + mul + mul +} def + + +/tan { /alpha exch def + alpha sin + 1 alpha sin dup mul sub sqrt + div +} def + + +/pastel { + /backbright high def + /backsat medlow def + /fillbright high def + /fillsat medlow def + /eobright high def + /eosat medlow def + constroke 0 eq { + /strokebright high def + /strokesat medlow def + } + { + /strokebright low def + /strokesat high def + } ifelse +} def + +/jewel { + /fillbright med def + /fillsat high def + /backbright med def + /backsat high def + /eobright med def + /eosat high def + constroke 0 eq { + /strokebright medlow def + /strokesat high def + } + { + /strokebright high def + /strokesat medlow def + } ifelse +} def + +/vivid { + /fillsat 1 def + /fillbright high def + /eosat 1 def + /eobright high def + /backsat 1 def + /backbright high def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def + +/free { + /fillsat anyrand def + /fillbright anyrand def + /eosat anyrand def + /eobright anyrand def + /backsat anyrand def + /backbright anyrand def + /strokesat anyrand def + /strokebright anyrand def +} def + +/contrast { + /sat medhigh def + /bright rand 2 mod 0 eq {medhigh} {medlow} ifelse def + /backsat sat def + /backbright bright def + /eosat sat def + /eobright 1 bright sub def + /fillsat sat def + /fillbright bright def + /strokebright rand 2 mod def + /strokesat rand 2 mod def + +} def +/medium { + /backsat med def + /backbright med def + /eosat med def + /eobright med def + /fillsat med def + /fillbright med def + /strokebright med def + /strokesat med def + +} def +/intense { + /backsat high def + /backbright med def + /eosat high def + /eobright high def + /fillsat high def + /fillbright med def + /strokebright high def + /strokesat high def + +} def +/orig { + /backsat rand 99 mod 55 add 100 div def + /backbright rand 99 mod 35 add 100 div def + /eosat rand 77 mod 22 add 100 div def + /eobright 90 rand 75 mod sub 15 add 100 div def + /fillsat 100 rand 90 mod sub 100 div def + /fillbright 100 rand 45 mod sub 20 add 100 div def + /strokebright 100 rand 55 mod sub 100 div def + /strokesat 100 rand 85 mod sub 100 div def + +} def + +/medjewel { + /alt rand 2 mod def + /backsat alt 0 eq {high} { med} ifelse def + /fillsat alt 0 eq {med} {high} ifelse def + /eosat alt 0 eq {high} {med} ifelse def + /backbright med def + /fillbright med def + /eobright med def + constroke 0 eq { + /strokebright medlow def + /strokesat high def + } + { + /strokebright high def + /strokesat medlow def + } ifelse +} def + +/medvivid { + /alt rand 2 mod def + /backsat alt 0 eq {1} { med} ifelse def + /fillsat alt 0 eq {med} {1} ifelse def + /eosat alt 0 eq {1} {med} ifelse def + /backbright alt 0 eq {high} {med} ifelse def + /eobright alt 0 eq {high} {med} ifelse def + /fillbright alt 0 eq {med} {high} ifelse def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def +/vivpastel { + /backlight rand 2 mod def + /backsat backlight 0 eq {medlow} {1} ifelse def + /eosat backlight 0 eq {medlow} {1} ifelse def + /fillsat backlight 0 eq {1} {medlow} ifelse def + /fillbright high def + /backbright high def + /eobright high def + constroke 0 eq { + /strokesat 1 def + /strokebright high def + } + { + /strokesat high def + /strokebright medlow def + } ifelse +} def + +/medpastel { + /alt rand 2 mod def + /backsat alt 0 eq {medlow} {med} ifelse def + /eosat alt 0 eq {medlow} {med} ifelse def + /fillsat alt 0 eq {med} {medlow} ifelse def + /fillbright alt 0 eq { high } {med} ifelse def + /backbright alt 0 eq {med} { high } ifelse def + /eobright alt 0 eq {med} { high } ifelse def + constroke 0 eq { + /strokebright high def + /strokesat medlow def + } + { + /strokebright low def + /strokesat high def + } ifelse +} def + +/maxcon { + rand 2 mod 1 eq { + /backsat 0 def + /backbright 0 def + /eosat 0 def + /eobright 0 def + /fillsat 0 def + /fillbright 1 def + /strokebright 1 def + /strokesat 0 def + } + { + /backsat 0 def + /backbright 1 def + /eosat 0 def + /eobright 1 def + /fillsat 0 def + /fillbright 0 def + /strokebright 0 def + /strokesat 0 def + } + ifelse +} def + +/monochrome { + /fillhue hue closevary def + /strokehue hue closevary def + /eohue hue closevary def + /backhue hue def +} def + +/blackandwhite { + /fillhue 1 def + /eohue 0 def + /backhue 0 def + /strokehue 1 def +} def + + +/freecolor { + /fillhue anyrand def + /strokehue anyrand def + /eohue anyrand def + /backhue anyrand def +} def + +/purple { + /fillhue rand 15 mod 80 add 100 div def + /backhue rand 15 mod 80 add 100 div def + /strokehue rand 15 mod 80 add 100 div def + /eohue rand 15 mod 80 add 100 div def + /backhue rand 15 mod 80 add 100 div def +} def + +/comptwo { + /fillhue hue closevary def + /strokehue hue .5 add dup 1 gt {1 sub} if def + /backhue strokehue def + /eohue strokehue closevary def +} def + +/compthree { + /backhue hue def + /strokehue hue 1 3 div add dup 1 gt {1 sub} if closevary def + /fillhue strokehue closevary def + /eohue hue 1 3 div sub dup 1 lt { 1 add} if closevary def +} def + +/origcolor { + /backhue hue def + /strokehue + hue 1000 mul cvi 3 mod dup 1 eq + {hue closevary} + {2 eq + {rand 999 mod 1000 div} + {hue .5 add dup 1 gt {1 sub} if } + ifelse + } + ifelse def + /fillhue hue 1000 mul cvi 3 mod dup 1 eq + {hue closevary} + {2 eq + {rand 999 mod 1000 div} + {hue .5 add dup 1 gt {1 sub} if } + ifelse + } + ifelse + def + /eohue hue 1000 mul cvi 2 mod 1 eq + {hue closevary} + {rand 999 mod 1000 div} + ifelse def +} def + +/harmtwo { + /fillhue hue closevary def + /backhue hue def + /strokehue hue .2 add dup 1 gt {1 sub} if closevary def + /eohue strokehue closevary def +} def + +/harmfour { + /fillhue hue closevary def + /backhue hue .1 add dup 1 gt {1 sub} if def + /strokehue hue .2 add dup 1 gt {1 sub} if closevary def + /eohue hue .1 sub dup 1 lt {1 add} if closevary def +} def + +/closeharm { + /fillhue hue def + /backhue hue .05 add dup 1 gt {1 sub} if closevary def + /strokehue hue .1 add dup 1 gt {1 sub} if closevary def + /eohue hue .05 sub dup 0 lt {1 add} if closevary def +} def + + +/high {100 rand 25 mod sub 100 div } def +/med { rand 33 mod 33 add 100 div } def +/medhigh {100 rand 50 mod sub 100 div } def +/medlow {rand 50 mod 100 div } def +/low { rand 25 mod 100 div} def +/anyrand { rand 100 mod 100 div } def +/closevary {rand 70 mod rand 100 mod sub 1000 div add} def + +%rainbow +% {/colorfill {fillhue 1 1 sethsbcolor fill} def} + /colorfill {fillhue fillsat fillbright sethsbcolor fill } def +%ifelse +/colorstroke {strokehue strokesat strokebright sethsbcolor stroke } def +/eocolorfill {eohue eosat eobright sethsbcolor eofill } def +/backfill{ backhue backsat backbright sethsbcolor fill } def + +/xstep { xrange xtimes 1 sub div x 1 sub mul } def +/ystep { yrange ytimes 1 sub div y 1 sub mul} def + +/functionarray [ + {sin abs} + {sin } + {cos } + {cos abs} + {sin dup mul } + {cos dup mul } + {sin abs sqrt } + {cos abs sqrt } +] def + +/range { /top exch def /bottom exch def /number exch def +% number is between -1 and 1 + /rangesize top bottom sub def + number 1 add 2 div + % number is now between 0 and 1 + rangesize mul + bottom add + } def + +/drawone { + /radius + width height lt {width 3 div} {height 3 div} ifelse + def + seed srand + 0 0 moveto + /origmatrix [ 0 0 0 0 0 0 ] currentmatrix def + [ % xstep function ystep function2 add 0.4 1.3 range + 1 + ystep function xstep function add -0.25 0.25 range + ystep function3 xstep function2 add -0.5 0.5 range +% xstep function4 ystep function mul 0.4 1.3 range + 1 + 0 + 0 + ] + concat + twist {twistdeg rotate} if + part colorfill + origmatrix setmatrix + rainbow + {/fillhue fillhue rainrange xtimes ytimes mul div add dup 1 gt {1 sub} if def} + if + +} def + +/notdrawone { + seed srand + twist {/twistdeg rand 360 mod def} if + nnrand {/nn rand 6 mod 3 add def} if + /x1 rand width 3 div cvi mod width 8 div add def + /y1 rand height 3 div cvi mod height 8 div add def + rand 3 mod dup 1 eq + {pop /x2 rand width 2 div cvi mod def + /y2 rand height 2 div cvi mod def} + { 2 eq + {/x2 y1 def /y2 x1 def} + {/x2 y1 width mul height div def /y2 x1 height mul width div def} + ifelse + } + ifelse + /radius width height gt {width} {height} ifelse 2.5 div def + /stripe rand width 10 div cvi mod 2 add def + starcompensate { /stripe stripe 2 mul def /radius radius 10 nn div mul def } if + /i 1 def + /repeats radius stripe div cvi 1 add def + /nnincr 1 def + repeats { + colorvary {colorfam colorway} if + /i i 1 add def + /radius radius stripe sub def + + } repeat +} def + + +/page { + clippath pathbbox /ury exch def /urx exch def /lly exch def /llx exch +def +/pagewidth urx llx sub 36 72 mul min def +/pageheight ury lly sub 36 72 mul min def +0 0 moveto + llx lly translate + /outerwidth + pagewidth inwidth div + def + /outerheight + pageheight inheight div + def + /width + outerwidth xtimes div + def + /height + outerheight ytimes div + def + + + + /size + width height gt {width} {height} ifelse + def + inwidth { + inheight { + + /seed rand def + /hue rand 999 mod 1000 div def + colorway colorfam + /x 1 def /y 1 def + nnrand {/nn rand 6 mod 3 add def} if + /twistdeg rand 360 mod def + + /function functionarray rand functionarray length mod get def + /function2 functionarray rand functionarray length mod get def + /function3 functionarray rand functionarray length mod get def + /function4 functionarray rand functionarray length mod get def + +/xrange [ 90 180 270 360 180 360 ] rand 6 mod get def +/yrange [ 90 180 270 360 180 360 ] rand 6 mod get def + initclip + newpath + 0 0 moveto + outerwidth 0 rlineto + 0 outerheight rlineto + outerwidth neg 0 rlineto + backfill + + xtimes { + ytimes{ + /y y 1 add def + width 2 div height 2 div translate + drawone + width 2 div neg height 2 div neg translate + 0 height translate + } repeat + + /y 1 def + /x x 1 add def + width height ytimes mul neg translate + + } repeat + + width xtimes mul neg outerheight translate + } repeat + outerwidth outerheight inheight mul neg translate + } repeat + + } def + +page showpage +clear cleardictstack +vasarelysave restore -- cgit v1.2.3