160 likes | 186 Views
Computer Graphics Through OpenGL: From Theory to Experiments, Second Edition. Chapter 15. Figure 15.1: A curve approximating five control points. Figure 15.2: (a) Bezier curve of degree 1 (b) Bernstein polynomials of degree 1: B 0 , 1 (u) = 1 - u, B 1, 1 (u) = u.
E N D
Computer Graphics Through OpenGL: From Theory to Experiments, Second Edition Chapter 15
Figure 15.2: (a) Bezier curve of degree 1 (b) Bernstein polynomials of degree 1: B0,1(u) = 1 - u, B1,1(u) = u.
Figure 15.3: (a) An “unhappy” way of approximating three control points (b) c(u) describes a Bezier curve of degree 2 interpolating P0, P1 and P2 after a “triple” interpolation (c) Bernstein polynomials of degree 2: B0,2(u) = (1 - u)2, B1,2(u) = 2(1 - u)u, B2,2(u) = u2.
Figure 15.4: Screenshot of deCasteljau3.cpp.
Figure 15.5: Screenshot of bezierCurves.cpp with three control points, showing both the Bezier curve and its control polygon.
Figure 15.6: (a) Bezier curve of degree 3 (b) Bernstein polynomials of degree 3: B0,3(u) = (1 - u)3, B1,3(u) = 3(1 - u)2u, B2,3(u) = 3(1 - u)u2, B3,3(u) = u3.
Figure 15.7: Recursive de Casteljau scheme: c0(u) approximates P0, P1, …, Pn-1; c1(u) approximates P1, P2, …, Pn; c(u) interpolates between c0(u) and c1(u) to approximate P0, P, …, Pn.
Figure 15.8: (a) A 10-segment fairly smooth-looking polyline l approximation (drawn at an offset) of the Bezier curve c with control points P0, P1, P2 and P3 (b) The magnification g(l) (also at an offset) is not a good approximation of g(c).
Figure 15.9: Two cubic Bezier curves (one blue, other black) meet smoothly at an endpoint.
Figure 15.10: Screenshot of bezierCurveTangent.- cpp.
Figure 15.11: A piecewise Bezier curve consisting of three Bezier arcs.
Figure 15.12: Constructing the Bezier surface approximating a 4 x 4 array of control points by sweeping a Bezier curve of order 4.
Figure 15.13: The Bezier surface approximating a 4 x 4 array of control points and its control polyhedron (dashed).
Figure 15.14: Screen- shot of sweepBezier- Surface.cpp.
Figure 15.15: Screenshot of bezierSurace.cpp.