Annotation of Examples/AppKit/BackspaceViews/Bezier/BezierWraps.psw, revision 1.1.1.1

1.1       root        1: /* ------------ These wraps are all for bezier ---------------- */
                      2: /* This bezier hack was mostly written by mike dixon.  -s              */
                      3: 
                      4: defineps PSWbezierCreate()
                      5: 
                      6:        128 array /myArray exch def
                      7:        
                      8:        /h 0 def        %starting hue
                      9: 
                     10:        /setnewcolor    %tweak the hue
                     11:        {
                     12:                h 1 50 div add
                     13:                dup 1 gt { 1.0 sub } if
                     14:                dup /h exch def
                     15:                1 1 sethsbcolor
                     16:        } def
                     17: 
                     18: 
                     19:        /adj { % dx
                     20:         rand 50000000 idiv add dup 0 le {-5}{5} ifelse add }
                     21:        bind def % dx'
                     22: 
                     23:        /upd { %  dx x max
                     24:             yield exch 2 index add 2 copy le  % dx max x' over?
                     25:            { 1 index sub sub exch neg adj neg exch }
                     26:           { exch pop dup 0 lt { neg exch adj exch } if }
                     27:           ifelse }
                     28:        bind def % dx' x'
                     29: 
                     30:        /xtr { % dxa xa dya ya dxb xb dyb yb ...
                     31:               14 index 13 index 12 index 11 index 10 index 9 index 8 index 7 index }
                     32:        bind def % dxa xa dya ya dxb xb dyb yb ... xa ya xb yb ...
                     33: 
                     34:        /updl { % dxa xa dya ya dxb xb dyb yb ...
                     35:             xtr 24 8 roll
                     36:            4 { ht upd 16 2 roll wd upd 16 2 roll } repeat
                     37:                   % xa ya xb yb ... dxa' xa' dya' ya' dxb' xb' dyb' yb' ...
                     38:                        setnewcolor xtr moveto curveto stroke
                     39:           }
                     40:        bind def
                     41: 
                     42:        /updlNoDraw {
                     43:             xtr 24 8 roll
                     44:            4 { ht upd 16 2 roll wd upd 16 2 roll } repeat
                     45:                        xtr 8 { pop } repeat
                     46:           }
                     47:        bind def
                     48: 
                     49: endps
                     50: 
                     51: defineps PSWbezierInit(float width, height)
                     52: 
                     53:        /wd width def
                     54:        /ht height def
                     55: 
                     56:        1 1 2 1 3 1 4 1      5 1 6 1 7 1 8 1
                     57:        14 { updlNoDraw } repeat
                     58:        myArray astore pop
                     59:        
                     60: endps
                     61: 
                     62: defineps PSWbezierOneStep()
                     63: 
                     64: myArray aload pop
                     65: 128 -8 roll 0 setgray moveto curveto stroke updl
                     66: myArray astore pop
                     67: 
                     68: endps

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.