# Workbook 6: The Train (More Curves)

## CS559 Spring 2021 Sample Solution - Workbook 6

Written by CS559 course staff

You can try out the example solutions here. The interesting code is on page 3.

This workbook is due on Monday, March 8, 2021.

## Learning Goals

- To review the key concepts of parametric curves.
- To practice some key computations with curves.
- To implement various aspects of curves in the context of an application.
- To appreciate why curve concepts, such as arc length parameterization and smoothness, are useful.
- To write an interesting graphics program.

This workbook continues our study of curves in 2D. Last week’s workbook went through the key ideas. This week, we’ll put those ideas into action in a programming assignment: making a train that goes around a track.

This workbook builds on the previous workbook; the first pages will give you some extra practice with the concepts.

## Required Reading

There is no new required reading for this week. The readings on curves were part of Workbook 5. You may want to review these readings (including the workbook itself). If you haven’t read them, now is a good time to do it. Doing the train will require you to understand the key concepts of curves. Some curve topics are less important for the train, but will come back on exams, or, if you ever do something in computer graphics beyond class.

**Textbook:** Curves are covered in FCG4_Ch15.pdf (0.5mb). We won’t cover all the material in class. The sections are:

- FCG 15.1 - basic ideas of curves, including parameterizations and piecewise representations
- FCG 15.2 - curve properties (especially continuity)
- FCG 15.3 - polynomial pieces - you need to have the basic intuitions, however, you will not need to do the derivations yourself.
- FCG 15.4 - putting pieces together - this makes things sound more complicated than they are
- FCG 15.5 - cubics - you’ll need cardinals for the train
- FCG 15.6.1 - Bézier curves - very important, since they are what gets used in Canvas and many other things.
- FCG 15.6.2 - B-Spline curves - (and 15.6.3 and 15.6.4 which are advanced kinds of B-Spline curves) is optional.

Hart20-jan19.pdf (2.4mb) covers much of the same material in a different way. You should read this to clarify and reinforce the required material above.

- Hart 20.0 - basics of curves, a good review of the terms discussed in FCG 15.1-15.3
- Hart 20.1 - the wiggle theorem - make sure you have the intuition that an nth degree polynomial has (at most) n-1 wiggles.
- Hart 20.2 - Lagrangian curves - this is also 15.3.6 in FCG - understand the basic idea to know why we don’t use these things.
- Hart 20.3 - Hermite curves - these are in 15.3.4 and 15.5.2 of FCG. You won’t need to derive them, but understanding what they are will be useful for Beziers and Cardinals, which we will use a lot.
- Hart 20.4 - Bézier curves - these are important, so seeing them more than once may help.

## Rubrics for Grading

## Workbook Rubric (105 points total)

## Get Started

Don’t forget to commit and push as you work!