MIT
Department of Ocean Engineering

13.016 Introduction to Geometric Modeling and Computation

Spring 1997


Problem Set 4

Assigned: February 27, 1997
Due: March 6, 1997



  1. Interpolate the following data points with a Ferguson curve, a Hermite-Coons curve and a Bézier curve separately:

    Interpolation requires that the fitting curve passes all the data points. Fitting with parametric curves begins with assigning parameter values to the data points. One approach to assigning values is known as the chord length parametrization method, described here:

    There are several ways to solve this problem. You may need to solve a linear system. You may use functions from Numerical Recipes in C, such as Gaussian elimination with pivoting (available on Athena) to solve this problem.

    The source code of the linear solver is ``gaussj.c''. Reference [35] in the course notes explain the detail.

    Hand in the screen output of your program and the plots of three representations of the fitting curve. Your program for chord length parametrization should be able to handle any value n.

  2. The upper longitudinal profile curve of an AUV is represented by two cubic planar parametric curves and , where and

    1. Convert these curves to Bézier form. You may choose to either use matrix operations or the end conditions (position and derivative) to determine the control polygon of the curves.
    2. Plot the control polygons of the two curves in OpenGL with the profiles.
    3. Plot the convex hulls of the two curves in OpenGL with the profiles.

    Hand in your plots and submit your code electronically.

  3. Prove the recursion for evaluation

  4. Using the source code of the transformation demo, draw a rectangular box using OpenGL with dimensions equal to 2, 1, and 3 in the x, y, and z directions, respectively. Instead of giving the coordinates of the vertices explicitly, draw a single canonical square first, and then create the faces of the rectangle by transforming (scaling, translating, and rotating) the square. Turn in your plot and submit your code via email.