Functional PostScript Examples
This program draw various arcs and their bounding boxes.
It demonstrates the use of the arc and bounding-box procedures.
[PostScript Output]
(define arc-bounding-box
(with-attrib ((:line-width 0.01) (:color (rgb 1 1 1)))
(let* ((square (stroke (rect (pt 0 0) 1 1)))
(circle (stroke (arc (pt 1/2 1/2) 1/2 0 2pi)))
(fill-c (rgb 0 0 1))
(arc-c (rgb 1 1 0))
(draw-one
(lambda (start end)
(let* ((a (stroke (arc (pt 1/2 1/2) 1/2 start end)
(:color arc-c) (:line-width 0.04))))
(compose (fill (bounding-box->rect (bounding-box a))
(:color fill-c))
circle square a))))
(draw-four
(lambda (start)
(let lp ((n 0))
(if (= n 4)
the-empty-pict
(compose (draw-one start (+ start (* n 1/2pi) 1/4pi))
(translate 0 1.5 (lp (+ n 1)))))))))
(lambda ()
(compose
(fill (rect (pt 0 0) (inch 8.5) (inch 11)))
(translate 109 144
(scale 72 72
(let lp ((start 0))
(if (>= start 2pi)
the-empty-pict
(compose (draw-four start)
(translate 1.5 0
(lp (+ start
1/2pi)))))))))))))
FPS Examples: Right-angle Fractal | Arrow Fractal | Headlines | Clipping Message | Turkey Bitmap | Sun | Bounding Box | Morphing Square to Circle | Text Along a Circle | Demo Driver