LMU ☀️ CMSI 3710
COMPUTER GRAPHICS
Final Exam

The test is open-everything with the sole limitation that you neither solicit nor give help while the exam is in progress.

Do all work on these sheets. You have exactly four hours to work on this from the time you look at the first problem.
ProblemYou gotOut of
1
 
20
2
 
20
3
 
20
4
 
20
5
 
20
6
 
0
7
 
0
TOTAL
 
100

Problems 6 and 7 are extra credit, worth a maximum of 5 points each.

  1. A spaceship is flying parallel to the xz-plane at a height (y-coordinate) of 3 in the direction <1,0,0>. It is currently at the position (0,3,5). It wants to land on a runway whose center line stretches from (5,0,1) to (5,0,-11), and it wants to touch down on the point (5,0,0). Describe the curve, using functional notion (i.e., remember that a curve is a function from a single real number to a point), that will effect this landing. HINT: For the x and z coordinates, think of a quarter of a circular arc. For the y-coordinate, think of what the standard cosine curve looks like between θ=0 and θ=π. Also note this problem is much easier if you can sketch the scenario. I don't know if Wolfram Alpha will be helpful or not.
  2. A monitor has a display area measuring 20 inches by 15 inches with a resolution of 1440 x 800.
    1. What is the length of the diagonal of the display area, in inches?
    2. What is the SAR?
    3. What is the DAR?
    4. What is the PAR?
    5. Do the pixels show as "short and fat" or "tall and skinny"?
    6. If we wanted the PAR to be 1, what resolution would we require if we wanted 1080 pixel rows?
    7. In the previous part, what would the SAR be then?
  3. Let P = (2, 0, -5) and Q = (3, 3, 4). Suppose the projection matrix has been modified with
        glLoadIdentity();
        gluPerspective(90.0, 1.0, 2.0, 10.0);
    
    and that the modelview matrix is unchanged from its default setting. To which points (in normalized device coordinates) are P and Q transformed? Show your work by first indicating the frustum produced by the gluPerspective() call.
  4. Give a JavaScript script that will generate the following figure in an HTML canvas whose id is "triangles". Your script must contain a local function called triangle that is parameterized by color, which draws a triangle with vertices (-1,0), (1,0), and (0,1), You must build the image by calling this function four times, using translate, scale, and rotate functions to position each traingle appropriately. (Assume in the picture each triangle is 50 css pixels "wide" and 75 css pixels "tall".)

    triangles.png

  5. For the following fractal, circle the (first-level) self-similar components, give the set of affine transformations that describe it, give its fractal dimension.

    deltaish.png

  6. Extra Credit. Consider the transformation that turns the figure ABC where A=(2,0), B=(2,-2), and C=(0,-2) into A'B'C' where A'=(15,0), B'=(0,1) and C'=(-15,0). If this transformation is affine, give the transformation, expressed as the composition of basic transformations. If it is not affine, prove why it is not.
  7. Extra Credit. The advantage of parameterizing sphere and torus drawing functions with both slices and stacks is obvious: the more of each you have, the less you notice the polygonal approximation. But why do we need to specify stacks for cones?