CS335 (Fall 2008)
Solution of Homework 7 (20 points)
Due: December 13, 2008 (Thursday)

************************************************************************

1. (Subdivision)
   It was shown in class that by performing a mid-point subdivision
   on the control points of a cubic Bezier curve segment, we split the
   curve into two segments, each with its own control points. Why is the
   mid-point subdivision technique important? (explain to me its
   application in Bezier curve rendering and curve intersection point
   computation) (10 points)

SOL.
   
   By recursively subdividing a Bezier curve, we get a sequence of
   linear polygons (control polygons of the resulting segments) that
   converges to the curve. Therefore, we can use those linear polygons
   to approximate the given curve in applications such as curve
   rendering and curve-curve intersection.



2. (Forward Differencing)
   Using forward differencing technique to render a cubic
   polynomial curve, one only needs three additions for each point.
   By far, this is the most efficient way to render a cubic polynomial
   curve. But this technique has a problem. What is it and why?
   (10 points)

SOL.

   The method is fast, but numerically not stable.
   This is because the rounding and truncation errors generated in this
   process will accumulate all the way from the start point to the last
   point. Therefore, by the time we reach the last point, the error could
   be so large that the computed point is not on the curve at all. The
   situation is worse when the number of points in the forwarding process
   is large.