CS335 Fall, 2008 Homework 9 (20 points) Due: November 27, 2008 (Thursday) ************************************************************************ 1. (Polygon Clipping) To ensure a given polygon is clipped properly against a window, sometimes we have to use Weiler-Atherton's clipping algorithm. For that particular algorithm, if we are clipping a polygon against the left boundary of a window, where should we start the clipping process? Justify your answer. (10 points) Solution: To ensure proper output of the process, clipping should start with the lower left vertex of the polygon on the OUT side of the bounding edge. 2. (Rendering of B-spline Curve Segments) To render a cubic B-spline curve segment, one possibility is to convert the B-spline control points P0, P1, P2, and P3 into Bezier control points Q0, Q1, Q2 and Q3, using the following formula Q1 = P1 + (P2 - P1)/3 Q2 = P1 + 2(P2 - P1)/3 A = P1 + (P0 - P1)/3 B = P2 + (P3 - P2)/3 Q0 = (A + Q1)/2 Q3 = (B + Q2)/2 and then render it using techniques developed for cubic Bezier curve segments. Why do we know Q0, Q1, Q2 and Q3 defined the above way are the Beizer control points of the cubic B-spline curve? (5 points) Solution: It is sufficient to show that a Bezier curve representation using Q0, Q1, Q2 and Q3 as the control points can be converted to a B-spline curve representation with P0, P1, P2 and P3 as its control points. C(t) = (1-t)^3[Q0] + 3t(1-t)^2[Q1] + 3t^2(1-t)[Q2] + t^3[Q3] = (1-t)^3[(P1 + (P0-P1)/3 + P1 + (P2-P1)/3)/2] + 3t(1-t)^2[P1 + (P2-P1)/3] + 3t^2(1-t)[P1 + 2(P2-P1)/3] + t^3[(P2 + (P3-P2)/3 + P1 + 2(P2-P1)/3)/2] = (1-t)^3/6[P0 + 4P1 + P2] + t(1-t)^2[2P1 + P2] + t^2(1-t)[P1 + 2P2] + t^3/6[P1 + 4P2 + P3] = (1-t)^3/6[PO] + (4(1-t)^3/6 + 2t(1-t)^2 + t^2(1-t) + t^3/6)[P1] + ((1-t)^3/6 + t(1-t)^2 + 2t^2(1-t) + 4t^3/6)[P2] + t^3/6[P3] = (1-t)^3/6[PO] + (4-6t^2+3t^3)/6[P1] + (1+3t+3t^2-3t^3)/6[P2] + t^3/6[P3]. 3. (Homogeneous Coordinates) What is the main reason for us to use homogeneous coordinates in computer graphics? Why? (5 points) Solution: Using homogeneous coordinates, all transformations can be represented as vector-matrix multiplications, including translation. Hence, even multiple transformations have been performed, since the corresponding matrices can be accumulated into a single matrix, we only need to do one vector-matrix multiplication to implemet all those transformations. ************************************************************************ Put you solution set in a text file and send the text file to the grader (xuwei.liang@uky.edu) before midnight of the due day. CS535 (Fall 2008) Solution of Homework 9 Due: 11/27/08 Name: xxxxxx xxxxxx