# CS 184: COMPUTER GRAPHICS

PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

# Test Question

Solution

## Sweeps along Piecewise Linearly Approximated Curves

Examples of mitered joints (by Koos Verhoeff): 1 2 3 4
Default:  Keep cross-section of constant geometry and always perpendicular to tangent vector.
This can be achieved by constructing "ribs" in angle-divider plane at all segment junctions, stretching them by 1/cos(half-angle) in direction of normal vector.
A "natural" orientation of the cross section based on the Frenet frame, would experience serious torsional twisting around inflection points.
A better orientation of the cross section can be chosen so as to minimize torsion; the vertices of the cross-sectional polygon are projected forward from one angle-divider plane to the next parallel to the tangent vector.
For our rollercoaster example, the default orientation of the (track) cross section is most conveniently chosen so as to always point "up" as much as possible.
From any of the above default orientations, an Azimuth Angle provides additional rotation around the tangent vector (e.g., to bank the track into sharp curves).
These correctional additional azimuth values can be specified at any control point and will be interpolated with the same cubic polynomial as the  B-spline.
Once the cross-sectional ribs have been constructed at all the joints, corresponding vertices of subsequent ribs are connected, and the B-rep of a (possibly twisted) track is constructed by constructing prism faces between pairs of subsequent ribs.
All these faces together will form a "water-tight" toridal structure of genus 1 (ONE loop).  Example of a triply twisted Moebius band forming a trefoil knot -- and a more finely segmented version with the control polygon shown.-- and finally a smooth version with the twist properly adjusted to close that small mismatch.

In Assignment#8 we will make worms/snakes/ribbons/sculptures with the same principle, but with much fancier surfaces with texture-mapping and bump mapping.

## Ideas for extra credit on Rollercoaster Assignment

### 1.)  Tie track layout to the polygon editor of As#2

Rather than typing in coordinate triplets for the control points, modify the polygon editor of As#2 to modify the control vertex positions until you have a rollercoaster that you like. Perhaps you display two parallel projections of the control polygon for the track as follows:
-- first a top down view that shows the basic layout in which you move vertices only with respect to their (x,y) values;
-- then a side view in which you can adjust the height of the various control points.

### 2.)  Put some texture on the rollercoaster track

To make the track more interesting to move along, and to get a better sense of the momentary speed of the car, it would be nice to have some tick marks along the track. A natural way to provide such tick marks are the ties that carry the rails of the track. A simple way to provide such a pattern on top of the track is by texture mapping, in which this pattern is placed repeatedly along the track surface. Texture map of track. (More on texture mapping in the next assignment).

## Discussion of Take-Home Exam

Min=43, Max=112, Mean=81.3, Stdev=18.7;  Approximate evaluation:  A=100-110;  B= 75-85;  C=50-60.

Skim:   Shirley, 2nd Ed:  Ch 11

### Programming Assignment 7: due (electronically submitted) beforeWednesday 4/1, 11pm <== ASSIGNMENT CAN BE DONE IN PAIRS !

ADVICE:  Start the next assignment as soon as possible, so that you can ask relevant questions and obtain good feedback and help BEFORE Spring Break!

In-class Mid-term-Exam: WED 4/8, 2:40-4:00pm

PREVIOUS < - - - - > CS 184 HOME < - - - - > CURRENT < - - - - > NEXT

Page Editor: Carlo H. Séquin