Assignment 3: Bezier Surfaces

Kyle Boss and I made a program which takes bezier control points and outputs a corresponding image. It supports:

  • Uniform and adaptive ('-a') tessellation (step size or "error" check specified by the second command line argument)
  • Filled and wireframe viewing
  • Smooth and flat shading
  • Keyboard control for rotations, translations, and zoom

Examples

Arch

./Bez2Poly test.bez .01 (wireframe)
./Bez2Poly test.bez .01 (smooth shading)
./Bez2Poly test.bez .01 (wireframe)
./Bez2Poly test.bez .01 -a (flat)
./Bez2Poly test.bez .001 -a (wireframe)
./Bez2Poly test.bez .001 -a (smooth)

Teapot

./Bez2Poly teapot.bez .1 (wireframe)
./Bez2Poly teapot.bez .1 (flat)
./Bez2Poly test.bez .01 (wireframe)
./Bez2Poly teapot.bez .05 -a (wireframe)
 ./Bez2Poly teapot.bez .01 -a (wireframe
./Bez2Poly teapot.bez .01 -a (smooth)
./Bez2Poly teapot.bez .25 (wireframe)

Teaspoon

./Bez2Poly teaspoon.bez .15 (wireframe)
./Bez2Poly teaspoon.bez .15 (smooth)
./Bez2Poly teaspoon.bez .15 (flat)
./Bez2Poly teaspoon.bez .2 -a (wireframe)
./Bez2Poly teaspoon.bez .005 -a (wireframe)
./Bez2Poly teaspoon.bez .005 -a (smooth)
./Bez2Poly teaspoon.bez .005 -a (flat)

Teacup

./Bez2Poly teacup.bez .1 (wireframe)
./Bez2Poly teacup.bez .1 (flat)
./Bez2Poly teacup.bez .1 (smooth)
./Bez2Poly teacup.bez .01 -a (wireframe)
./Bez2Poly teacup.bez .01 -a (flat)
./Bez2Poly teacup.bez .01 -a (smooth)