CS 284: CAGD (SPLINES)

Assignment #5 -- Due Wed 10/21, 1998.

In this assignment you will learn how to construct a Frenet frame at select points along a space curve and how to differentiate non-uniform B-Splines using the programming environment provided by Jordan Smith and Jane Yen on the instructional HPUX machines in Soda Hall. New technical instructions concerning this particular assignment {when available -- probably thursday evening} will be placed in /home/dd/cs284/fa98/as5/README on the Instructional Account

Following the provided prototype, your program should display a frenet frame at all evaluated points between the linear segments with which the space curve is approximated for display. To make these frames a little more instructive, make the basic frame relatively small and keep it in dark colors (red, green, blue); but then draw on top of it two additional lines scaled in length to represent the local curvature and torsion, respectively.
Here are some changes from the original specification, which I found -- after some experimentation -- to lead to more instructive and more beautiful displays:

leading to a "fence-like" or "hedgehog-like" display of a ribbon,

Use bright colors, e.g. yellow and cyan for these vectors. Both should be scaled with two global variables that can be adjusted with two sliders labeled "curvature" and "torsion".

Hand in:

  • A hardcopy picture of an interesting space curve with these frames and scaled "fences".
  • Give us the pointer to your solution and any directives on how to run and test (and fully enjoy) your program.

    PS -- you may want to experiment with changing the degree of your curve and observe how the continuity of the "torsion hedge" changes in response.

    Compiling Hints

    Try compiling on the computers in 310 Davis, which are usually pretty free; it takes ~5 min to recompile. Just finger @dv310 to find a relatively free machine.

    Caveat:
    Not all of them are set up to compile correctly, thus it might take some trial and error to find a good one.

    I am also consulting with the systems people to find out other helpful hints.

    Chamberlain Fong discovered that the compilation speed of the program can be substantially improved if curvebspline284.cc were compiled and linked separately into a dynamically linked shared library lib.so. Dynamic linking of curvebspline284.cc code takes only about 30 seconds during program startup; whereas static linking takes 3-4 minutes during code generation.


    <-- Up to CS 284 HomePage


    Page Editor: Carlo H. Séquin