Annotation of Examples/AppKit/BackspaceViews/Bezier/BezierWraps.psw, revision 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.