Download presentation
Presentation is loading. Please wait.
Published byKeegan Maury Modified over 9 years ago
1
Computer Graphics Through OpenGL: From Theory to Experiments, Second Edition Chapter 10
2
Figure 10.1: One-dimensional objects.
3
Figure 10.2: Graphs of familiar plane curves (curves are fairly accurate sketches but not exact plots).
4
Figure 10.3: A couple of exotic curves.
5
Figure 10.4: More exotic curves.
6
Figure 10.5: A sphere and a plane intersect in a circle.
7
Figure 10.6: Helix.
8
Figure 10.7: Parameter space T = [a; b] mapped to a curve c. The sample grid on T, as well as its corresponding mapped sample on c, has 15 points (not all labeled). The polyline l connecting the mapped sample approximates c.
9
Figure 10.8: A uniformly sampled parabola y = x 2.
10
Figure 10.9: Screenshot of astroid.cpp.
11
Figure 10.10: (a) Curve with a repeating pattern (b) Ax head.
12
Figure 10.11: Supercircles |x| n + |y| n = 1, for n = 1/2, 1, 2, 4.
13
Figure 10.12: Points on a circle from a rational parametrization.
14
Figure 10.13: Conic sections.
15
Figure 10.14: (a) A double cone C showing two of the lines through the origin lying on it (b) A hyperbolic section of C by a non-radial plane p (c) Cross-sectional view of a non-radial plane p intersecting C.
16
Figure 10.15: Non-curves: (a) x 2 – y 2 = 0 (b) x 2 + y 2 = 0 (c) y = 0, if x is an integer, 1 otherwise (gaps in the blue line indicate missing points).
17
Figure 10.16: (a) A smooth curve (b) A non-smooth curve with a corner at P where the tangent changes direction abruptly.
18
Figure 10.17: Tangent vectors to a circle.
19
Figure 10.18: Good and bad parametrizations.
20
Figure 10.19: Regular curves that share a tangent line at a common endpoint join to make one regular curve.
21
Figure 10.20: Various orders of continuity.
22
Figure 10.21: Camera moving along a path with a C 2 -discontinuity at the origin O.
23
Figure 10.22: (a) and (b) Non-simple planar polygons (c) and (d) Simple planar polygons (what we call polygons).
24
Figure 10.23: (a), (b) and (c) Meshes (d) and (e) Not meshes: parts around vertices V and W are not sheet-like (f) Your call.
25
Figure 10.24: Planar surfaces with colored boundary; the last one has two components. The black edges belong to approximating meshes.
26
Figure 10.25: Wooden chair.
27
Figure 10.26: Parametric mapping of a circular cylinder s.
28
Figure 10.27: Triangular mesh approximation of a circular cylinder. Upper: A uniform sample grid on the parameter rectangle and its corresponding mapped sample on the cylinder. Only a few points are labeled. Vertices of a triangle strip on the rectangle maps to those of a strip approximating a band of the cylinder. Lower: A map from a grid rectangle to a patch of the cylinder.
29
Figure 10.28: Screenshot of cylinder.cpp.
30
Figure 10.29: The composed mapping implemented in cylinder.cpp: first the parameter space is scaled, then mapped to the cylinder.
31
Figure 10.30: Screenshot of hemisphere.cpp.
32
Figure 10.31: Screenshot of helicalPipe.cpp.
33
Figure 10.32: Draw these by modifying cylinder.cpp.
34
Figure 10.33: Swept surfaces: trajectories dashed arrows, profiles solid black.
35
Figure 10.34: Computing parametric equations of a torus: (a) Profile circle c revolves along trajectory circle C (b) Sectional view of the left diagram along the plane containing the z-axis and OO’.
36
Figure 10.35: Screenshot of torus.cpp.
37
Figure 10.36: Screenshot of torusSweep.cpp.
38
Figure 10.37: (a) Part of a toroidal helix (b) Part of a toroidal helix pipe.
39
Figure 10.38: (a) The profile curve for a table on the xy-plane, with the z-coordinates, all 0, not written (b) A point on the profile curve after a rotation CW about the y-axis.
40
Figure 10.39: Screenshot of table.cpp.
41
Figure 10.40: (a) A cone and (b) a doubly-curled cone as swept surfaces.
42
Figure 10.41: Screenshot of doublyCurledCone.cpp.
43
Figure 10.42: Screenshot of extrudedHelix.cpp.
44
Figure 10.43: Stuff to draw.
45
Figure 10.44: Model these? You gotta be kidding!
46
Figure 10.45: A ruled surface showing several rulings and two defining trajectories.
47
Figure 10.46: Bilinear patch.
48
Figure 10.47: Screenshot of bilinearPatch.cpp.
49
Figure 10.48: Generalized cones: (a) over a non-closed curve (b) over a closed curve (c) Right circular cone. Only the part between the two trajectories is drawn.
50
Figure 10.49: A generalized cylinder and a special case.
51
Figure 10.50: The nine non-degenerate quadric surfaces (from Wikimedia).
52
Figure 10.51: (a) Screenshot of hyperboloid1sheet.cpp (b) Edible hyperbolic paraboloids (c) Hyperboloid footbridge over Corporation Street in Manchester in England supported by its rulings (courtesy of Patrick Litherland).
53
Figure 10.52: GLU quadrics: (a) Sphere (b) Tapered cylinder (c) Annular disc (d) Partial annular disc.
54
Figure 10.53: Defining the GLU quadrics.
55
Figure 10.54: Regular polygons with number of sides indicated. The triangle shows its circumscribed circle.
56
Figure 10.55: The five regular polyhedra with the number of faces indicated.
57
Figure 10.56: Screenshot of tetrahedron.cpp.
58
Figure 10.57: The five regular polyhedra each containing its inscribed dual (the cube is labeled to help with Exercise 10.67).
59
Figure 10.58: Mapping a rectangle onto surfaces.
60
Figure 10.59: Patting gray a double torus.
61
Figure 10.60: Functions (u, v) → (f(u; v), g(u; v), h(u; v)) and their images.
62
Figure 10.61: Any neighborhood of P will consist of two intersecting fragments, which cannot lie in one coordinate patch.
63
Figure 10.62: (a) One coordinate patch wrapping almost all the way around a cylinder (b) A punctured square.
64
Figure 10.63: The non-zero linearly independent tangent vectors span the tangent plane p at P.
65
Figure 10.64: Various orders of surface continuity.
66
Figure 10.65: Screenshot of bezierCurves.cpp with six control points, showing both the Bezier curve and its control polygon.
67
Figure 10.66: Screenshot of bezier- CurveWithEvalCoord.cpp.
68
Figure 10.67: Two Bezier curves, one blue and one red, meet smoothly at an endpoint, as their control polygons meet smoothly (because v’, v and v’’ are collinear).
69
Figure 10.68: Screenshot of bezier- CurveTangent.cpp.
70
Figure 10.69: Screenshot of bezierSurface.cpp, showing both the surface mesh and its control polyhedron.
71
Figure 10.70: Screenshot of bezierCanoe.cpp.
72
Figure 10.71: Two bicubic Bezier patches and their control polyhedrons, one pair blue and one red. The patches meet smoothly along a shared boundary curve which, together with its control polygon, is black.
73
Figure 10.72: FreeGLUT library's version of the Utah teapot and Martin Newell's original porcelain Melitta model (from Wikimedia).
74
Figure 10.73: Screenshot of torpedo.cpp.
75
Figure 10.74: Bezier lady's shoe (courtesy of Pongpon Nilaphruek).
76
Figure 10.75: Aircraft and express train.
77
Figure 10.76: A coastline at increasing degrees of resolution: pairs of arrows indicate a blow-up.
78
Figure 10.77: Koch curves.
79
Figure 10.78: Screenshots from fractals.cpp: (a) Koch snowflake (b) Variant Koch snowflake (c) Tree.
80
Figure 10.79: The variant Koch curve and fractal tree.
81
Figure 10.80: A T-pipe is simulated by sticking one GLU cylinder into another.
82
Figure 10.81: Sheared? But, what about the other side?
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.