CS 4300 Computer Graphics Prof Harriet Fell CS

  • Slides: 35
Download presentation
CS 4300 Computer Graphics Prof. Harriet Fell CS 4300 Lectures 13, 14 – October

CS 4300 Computer Graphics Prof. Harriet Fell CS 4300 Lectures 13, 14 – October 5, 6, 2011 February 23, 2021 College of Computer and Information Science, Northeastern University 1

Today’s Topics • • • Curves Fitting Curves to Data Points Splines Hermite Cubics

Today’s Topics • • • Curves Fitting Curves to Data Points Splines Hermite Cubics Bezier Cubics February 23, 2021 College of Computer and Information Science, Northeastern University 2

Curves A curve is the continuous image of an interval in n-space. Implicit f(x,

Curves A curve is the continuous image of an interval in n-space. Implicit f(x, y) = 0 x 2 + y 2 – R 2 = 0 B Parametric (x(t), y(t)) = P(t) A Generative proc (x, y) February 23, 2021 P(t) = t. A + (1 -t)B College of Computer and Information Science, Northeastern University 3

Curve Fitting We want a curve that passes through control points. interpolating curve Or

Curve Fitting We want a curve that passes through control points. interpolating curve Or a curve that passes near control points. approximating curve How do we create a good curve? What makes a good curve? February 23, 2021 College of Computer and Information Science, Northeastern University 4

Axis Independence If we rotate the set of control points, we should get the

Axis Independence If we rotate the set of control points, we should get the rotated curve. February 23, 2021 College of Computer and Information Science, Northeastern University 5

Local Control

Local Control

Variation Diminishing Never crosses a straight line more than the polygon crosses it. February

Variation Diminishing Never crosses a straight line more than the polygon crosses it. February 23, 2021 College of Computer and Information Science, Northeastern University 7

Continuity C 0 continuity G 2 continuity February 23, 2021 C 1 continuity C

Continuity C 0 continuity G 2 continuity February 23, 2021 C 1 continuity C 2 continuity Not C 2 continuity College of Computer and Information Science, Northeastern University 8

How do we Fit Curves? The Lagrange interpolating polynomial is the polynomial of degree

How do we Fit Curves? The Lagrange interpolating polynomial is the polynomial of degree n-1 that passes through the n points, (x 1, y 1), (x 2, y 2), …, (xn, yn), and is given by Lagrange Interpolating Polynomial from mathworld February 23, 2021 College of Computer and Information Science, Northeastern University 9

Example 1 February 23, 2021 College of Computer and Information Science, Northeastern University 10

Example 1 February 23, 2021 College of Computer and Information Science, Northeastern University 10

Polynomial Fit P(x) = -. 5 x(x-2)(x-3)(x-4) February 23, 2021 College of Computer and

Polynomial Fit P(x) = -. 5 x(x-2)(x-3)(x-4) February 23, 2021 College of Computer and Information Science, Northeastern University 11

Piecewise Fit Pa(x) = 4. 1249 x (x - 1. 7273) 0 ≤ x

Piecewise Fit Pa(x) = 4. 1249 x (x - 1. 7273) 0 ≤ x ≤ 1. 5 Pb(x) = 5. 4 x (x - 1. 7273) 1. 5 ≤ x ≤ 1. 7273 Pc(x) = 0 1. 7273 ≤ x ≤ 4 February 23, 2021 College of Computer and Information Science, Northeastern University 12

Spline Curves February 23, 2021 College of Computer and Information Science, Northeastern University 13

Spline Curves February 23, 2021 College of Computer and Information Science, Northeastern University 13

Splines and Spline Ducks Marine Drafting Weights http: //www. frets. com/FRETSPages/Luthier/Tips. Tricks/Drafting. Weights/draftweights. html

Splines and Spline Ducks Marine Drafting Weights http: //www. frets. com/FRETSPages/Luthier/Tips. Tricks/Drafting. Weights/draftweights. html February 23, 2021 College of Computer and Information Science, Northeastern University 14

Drawing Spline Today (esc) 1. Draw some curves in Power. Point. 2. Look at

Drawing Spline Today (esc) 1. Draw some curves in Power. Point. 2. Look at Perlin’s B-Spline Applet. February 23, 2021 College of Computer and Information Science, Northeastern University 15

February 23, 2021 College of Computer and Information Science, Northeastern University 16

February 23, 2021 College of Computer and Information Science, Northeastern University 16

Hermite Cubics P(t) = at 3 + bt 2 +ct +d Dq Dp q

Hermite Cubics P(t) = at 3 + bt 2 +ct +d Dq Dp q P(0) = p P(1) = q p P'(0) = Dp P'(1) = Dq February 23, 2021 College of Computer and Information Science, Northeastern University 17

Hermite Coefficients P(t) = at 3 + bt 2 +ct +d P(0) = p

Hermite Coefficients P(t) = at 3 + bt 2 +ct +d P(0) = p P(1) = q P'(0) = Dp P'(1) = Dq For each coordinate, we have 4 linear equations in 4 unknowns February 23, 2021 College of Computer and Information Science, Northeastern University 18

Boundary Constraint Matrix February 23, 2021 College of Computer and Information Science, Northeastern University

Boundary Constraint Matrix February 23, 2021 College of Computer and Information Science, Northeastern University 19

Hermite Matrix MH February 23, 2021 GH College of Computer and Information Science, Northeastern

Hermite Matrix MH February 23, 2021 GH College of Computer and Information Science, Northeastern University 20

Hermite Blending Functions February 23, 2021 College of Computer and Information Science, Northeastern University

Hermite Blending Functions February 23, 2021 College of Computer and Information Science, Northeastern University 21

Splines of Hermite Cubics a C 1 spline of Hermite curves a G 1

Splines of Hermite Cubics a C 1 spline of Hermite curves a G 1 but not C 1 spline of Hermite curves The vectors shown are 1/3 the length of the tangent vectors. February 23, 2021 College of Computer and Information Science, Northeastern University 22

Computing the Tangent Vectors Catmull-Rom Spline p 3 p 5 p 2 p 4

Computing the Tangent Vectors Catmull-Rom Spline p 3 p 5 p 2 p 4 P(0) = p 3 p 1 P(1) = p 4 P'(0) = ½(p 4 - p 2 ) P'(1) = ½(p 5 - p 3 ) February 23, 2021 College of Computer and Information Science, Northeastern University 23

Cardinal Spline The Catmull-Rom spline P(0) = p 3 is a special case of

Cardinal Spline The Catmull-Rom spline P(0) = p 3 is a special case of the Cardinal spline P(1) = p 4 P(0) = p 3 P'(0) = ½(p 4 - p 2 ) P(1) = p 4 P'(1) = ½(p 5 - p 3 ) P'(0) = (1 - t)(p 4 - p 2 ) P'(1) = (1 - t)(p 5 - p 3 ) 0 ≤ t ≤ 1 is the tension. February 23, 2021 College of Computer and Information Science, Northeastern University 24

Drawing Hermite Cubics • How many points should we draw? • Will the points

Drawing Hermite Cubics • How many points should we draw? • Will the points be evenly distributed if we use a constant increment on t ? • We actually draw Bezier cubics. February 23, 2021 College of Computer and Information Science, Northeastern University 25

General Bezier Curves February 23, 2021 College of Computer and Information Science, Northeastern University

General Bezier Curves February 23, 2021 College of Computer and Information Science, Northeastern University 26

Low Order Bezier Curves n=0 p 0 b 0, 0 (t) = 1 B(t)

Low Order Bezier Curves n=0 p 0 b 0, 0 (t) = 1 B(t) = p 0 b 0, 0 (t) = p 0 n=1 p 0 b 0, 1 (t) = 1 - t b 1, 1 (t) = t B(t) = (1 - t) p 0 + t p 1 0≤t≤ 1 n = 2 b 0, 2 (t) = (1 - t)2 b 1, 2 (t) = 2 t (1 - t) p 0 p 2 B(t) = (1 - t) 2 p 0 + 2 t (1 - t)p 1 + t 2 p 2 b 2, 2 (t) = t 2 0≤t≤ 1 p 1 February 23, 2021 College of Computer and Information Science, Northeastern University 27

Bezier Curves r q Bezier Arch p n=3 b 0, 3 (t) = (1

Bezier Curves r q Bezier Arch p n=3 b 0, 3 (t) = (1 - t)3 b 1, 3 (t) = 3 t (1 - t)2 b 2, 3 (t) = 3 t 2(1 - t) b 2, 3 (t) = t 3 B(t) = (1 - t) 3 p + 3 t (1 - t)2 q + 3 t 2(1 - t)r + t 3 s February 23, 2021 College of Computer and Information Science, Northeastern University s 0≤t≤ 1 28

Bezier Matrix B(t) = (1 - t) 3 p + 3 t (1 -

Bezier Matrix B(t) = (1 - t) 3 p + 3 t (1 - t)2 q + 3 t 2(1 - t)r + t 3 s B(t) = a t 3 + bt 2 + ct + d 0≤t≤ 1 MB February 23, 2021 0≤t≤ 1 GB College of Computer and Information Science, Northeastern University 29

Geometry Vector February 23, 2021 College of Computer and Information Science, Northeastern University 30

Geometry Vector February 23, 2021 College of Computer and Information Science, Northeastern University 30

Properties of Bezier Curves February 23, 2021 College of Computer and Information Science, Northeastern

Properties of Bezier Curves February 23, 2021 College of Computer and Information Science, Northeastern University 31

Geometry of Bezier Arches r q B(t) s p February 23, 2021 Pick a

Geometry of Bezier Arches r q B(t) s p February 23, 2021 Pick a t between 0 and 1 and go t of the way along each edge. Join the endpoints and do it again. College of Computer and Information Science, Northeastern University 32

Geometry of Bezier Arches qr q r qrs rs pqrs = B(1/2) pq s

Geometry of Bezier Arches qr q r qrs rs pqrs = B(1/2) pq s p We only use t = 1/2. February 23, 2021 College of Computer and Information Science, Northeastern University 33

draw. Arch(P, Q, R, S){ if (Arch. Size(P, Q, R, S) <=. 5 )

draw. Arch(P, Q, R, S){ if (Arch. Size(P, Q, R, S) <=. 5 ) Dot(P); else{ PQ = (P + Q)/2; QR = (Q + R)/2; RS = (R + S)/2; PQR = (PQ + QR)/2; QRS = (QR + RS)/2; PQRS = (PQR + QRS)/2 draw. Arch(P, PQR, PQRS); draw. Arch(PQRS, RS, S); } }

Putting it All Together • Bezier Arches and Catmull-Rom Splines February 23, 2021 College

Putting it All Together • Bezier Arches and Catmull-Rom Splines February 23, 2021 College of Computer and Information Science, Northeastern University 35