Workbook 11: The Train Workbook
CS559 Spring 2023 Sample Solution
This is a sample solution for the Workbook. You are welcome to refer to it to learn one way to do the assignment but only after you have turned in your own assignment
Learning Goals
- 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 project 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.
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 so. 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 Chapter 15. 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 but 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
Rubrics for Grading
Workbook Rubric (113 points total)
Get Started
Don’t forget to commit and push as you work!