previous | index | next

Exercise 4.6, p. 98

     (define c-curve
       (lambda (x0 y0 x1 y1 level)
         (if (= level 0)
             (line x0 y0 x1 y1)
             (let ((xmid (/ (+ x0 x1) 2))
                   (ymid (/ (+ y0 y1) 2))
                   (dx (- x1 x0))
                   (dy (- y1 y0)))
               (let ((xa (- xmid (/ dy 2)))
                     (ya (+ ymid (/ dx 2))))
                 (overlay (c-curve x0 y0 xa ya (- level 1))
                          (c-curve xa ya x1 y1 (- level 1))))))))
Q: What must be changed to compute curve length instead of draw the curve?

previous | index | next