Due date: Monday, Nov 1, 2010 @ 11:59 pm
Total Marks: 100 marks + 10 bonus
of the assignments' marks
Write a program to model curves and surfaces.
Basic 2D Curves (30 marks)
Your task in this part of the assignment is to create an interface for modeling Bezier and B-Spline curves. The following features are expected:
· Ability to add/remove/modify controls points (5 marks).
· From these control points allow for:
o Creation of a 2D Bezier curve with the de Castleljau algorithm (5 marks).
o Creation of a closed/open cubic B-Spline curve with the subdivision algorithm (5 marks).
o Creation of a closed/open quadratic B-Spline(Chaikin) curve with the subdivision algorithm (5 marks).
· Create an interface for curves to be loaded from/saved to files (5 marks).
· Control tool for the number of subdivision used to represent the curve (5 marks).
3D Surfaces (60 marks)
In the second part of the assignment you are to use your 2D curves to create 3D surfaces. You may choose to implement this as a separate program from the first half of the assignment. Your program should allow for:
· Loading from file or drawing curves as profiles (5 marks)
· Creation of a surface of revolution based on a curve Bezier profile (10 marks).
· Creation of a surface of revolution based on a quadratic B-Spline profile (10 marks).
· Creation of a B-Spline (cubic or quadratic) tensor product surface with either closed or open boundary conditions (one of these boundary cases is enough) (20 marks).
· Control tools for the number of subdivision steps and number of sample points (samples points refer to the points used to approximate the curves with line segments) (5 marks).
· Read and save the surface to and from a file (5 marks).
· It should be possible to see the surfaces rendered with a wireframe or with triangles (5 marks).
Bonus (10 marks)
You must provide a README (preferably in PDF format). This file should contain:
You are required to give an approximately 5 minute live demo to your TA, a schedule will be posted and you can sign up for a time slot. It is your responsibility to arrange for a presentation with your TA. Failure to show up at the presentation will result in a zero in the assignment.