Bézier Curves and Splines

Similar documents
Introduction to Computer Graphics. Modeling (1) April 13, 2017 Kenshi Takayama

CMSC427 Parametric curves: Hermite, Catmull-Rom, Bezier

Lecture 20: Bezier Curves & Splines

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Sample Exam 1 KEY NAME: 1. CS 557 Sample Exam 1 KEY. These are some sample problems taken from exams in previous years. roughly ten questions.

CSE 167: Lecture 11: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

Interpolation and polynomial approximation Interpolation

The Essentials of CAGD

Lecture 23: Hermite and Bezier Curves

Curves. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Taku Komura

M2R IVR, October 12th Mathematical tools 1 - Session 2

Arsène Pérard-Gayot (Slides by Piotr Danilewski)

Getting Started with Communications Engineering

TIEA311 Tietokonegrafiikan perusteet kevät 2018

Reading. w Foley, Section 11.2 Optional

Bernstein polynomials of degree N are defined by

Math (P)Review Part I:

Dot Products, Transposes, and Orthogonal Projections

Interpolation and polynomial approximation Interpolation

Keyframing. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University

Introduction to Curves. Modelling. 3D Models. Points. Lines. Polygons Defined by a sequence of lines Defined by a list of ordered points

CGT 511. Curves. Curves. Curves. What is a curve? 2) A continuous map of a 1D space to an nd space

MA 323 Geometric Modelling Course Notes: Day 07 Parabolic Arcs

Curves, Surfaces and Segments, Patches

MAT300/500 Programming Project Spring 2019

Q( t) = T C T =! " t 3,t 2,t,1# Q( t) T = C T T T. Announcements. Bezier Curves and Splines. Review: Third Order Curves. Review: Cubic Examples

Section 1.5. Solution Sets of Linear Systems

Linear Algebra. Min Yan

Linear Algebra, Summer 2011, pt. 2

Chapter 4 & 5: Vector Spaces & Linear Transformations

Physics 331 Introduction to Numerical Techniques in Physics

Smooth Path Generation Based on Bézier Curves for Autonomous Vehicles

Approximation of Circular Arcs by Parametric Polynomials

ABSTRACT VECTOR SPACES AND THE CONCEPT OF ISOMORPHISM. Executive summary

On-Line Geometric Modeling Notes

MATH240: Linear Algebra Review for exam #1 6/10/2015 Page 1

Final Review Sheet. B = (1, 1 + 3x, 1 + x 2 ) then 2 + 3x + 6x 2

The value of a problem is not so much coming up with the answer as in the ideas and attempted ideas it forces on the would be solver I.N.

Review Solutions for Exam 1

MATH Max-min Theory Fall 2016

Modern Algebra Prof. Manindra Agrawal Department of Computer Science and Engineering Indian Institute of Technology, Kanpur

Spanning, linear dependence, dimension

NAME MATH 304 Examination 2 Page 1

Section 1.8/1.9. Linear Transformations

3 = arccos. A a and b are parallel, B a and b are perpendicular, C a and b are normalized, or D this is always true.

Exam 2 Solutions. (a) Is W closed under addition? Why or why not? W is not closed under addition. For example,

Solutions to Math 51 First Exam October 13, 2015

Abstract & Applied Linear Algebra (Chapters 1-2) James A. Bernhard University of Puget Sound

(II.B) Basis and dimension

The Gram-Schmidt Process

Math 3108: Linear Algebra

Math 416, Spring 2010 More on Algebraic and Geometric Properties January 21, 2010 MORE ON ALGEBRAIC AND GEOMETRIC PROPERTIES

An Intuitive Introduction to Motivic Homotopy Theory Vladimir Voevodsky

The degree of the polynomial function is n. We call the term the leading term, and is called the leading coefficient. 0 =

1 Dirac Notation for Vector Spaces

Fitting functions to data

From Data To Functions Howdowegofrom. Basis Expansions From multiple linear regression: The Monomial Basis. The Monomial Basis

Linear Algebra. Preliminary Lecture Notes

MATH 167: APPLIED LINEAR ALGEBRA Chapter 2

SOLUTIONS TO SECOND PRACTICE EXAM Math 21a, Spring 2003

MATH 152 Exam 1-Solutions 135 pts. Write your answers on separate paper. You do not need to copy the questions. Show your work!!!

Vector Spaces. 9.1 Opening Remarks. Week Solvable or not solvable, that s the question. View at edx. Consider the picture

ARE211, Fall2012. Contents. 2. Linear Algebra (cont) Vector Spaces Spanning, Dimension, Basis Matrices and Rank 8

Linear algebra and differential equations (Math 54): Lecture 10

Midterm 1 Review. Distance = (x 1 x 0 ) 2 + (y 1 y 0 ) 2.

0. Introduction 1 0. INTRODUCTION

Constrained and Unconstrained Optimization Prof. Adrijit Goswami Department of Mathematics Indian Institute of Technology, Kharagpur

1 Last time: inverses

Math 21b: Linear Algebra Spring 2018

[Disclaimer: This is not a complete list of everything you need to know, just some of the topics that gave people difficulty.]

WHY POLYNOMIALS? PART 1

Linear Algebra. Preliminary Lecture Notes

Review 1 Math 321: Linear Algebra Spring 2010

6: Polynomials and Polynomial Functions

Exercises Chapter II.

Course Notes Math 275 Boise State University. Shari Ultman

The Symmetric Space for SL n (R)

Home Page. Title Page. Contents. Bezier Curves. Milind Sohoni sohoni. Page 1 of 27. Go Back. Full Screen. Close.

Lecture 1: Systems of linear equations and their solutions

Name: MATH 3195 :: Fall 2011 :: Exam 2. No document, no calculator, 1h00. Explanations and justifications are expected for full credit.

Math Computation Test 1 September 26 th, 2016 Debate: Computation vs. Theory Whatever wins, it ll be Huuuge!

DS-GA 1002 Lecture notes 0 Fall Linear Algebra. These notes provide a review of basic concepts in linear algebra.

Vector Spaces, Orthogonality, and Linear Least Squares

v = ( 2)

Review Solutions, Exam 2, Operations Research

Linear Algebra Practice Problems

How to Use Calculus Like a Physicist

( v 1 + v 2 ) + (3 v 1 ) = 4 v 1 + v 2. and ( 2 v 2 ) + ( v 1 + v 3 ) = v 1 2 v 2 + v 3, for instance.

Coordinates for Projective Planes

MATH 310, REVIEW SHEET 2

Math 110, Spring 2015: Midterm Solutions

ELEMENTARY LINEAR ALGEBRA

Differential Equations

Functions of Several Variables: Limits and Continuity

Lecture 2: Linear regression

Math 2210Q (Roby) Practice Midterm #1 Solutions Fall 2017

LINEAR ALGEBRA KNOWLEDGE SURVEY

Lecture 8: A Crash Course in Linear Algebra

CHAPTER 4. Interpolation

Math 1553, Introduction to Linear Algebra

Transcription:

CS-C3100 Computer Graphics Bézier Curves and Splines Majority of slides from Frédo Durand vectorportal.com CS-C3100 Fall 2017 Lehtinen

Before We Begin Anything on your mind concerning Assignment 1? CS-C3100 Fall 2017 Lehtinen 2

Today Curves in 2D Useful in their own right Provides basis for surface modeling (this Thursday) CS-C3100 Fall 2017 Lehtinen Guilherme Marconi

Modeling Curves in 2D How? CS-C3100 Fall 2017 Lehtinen 4

Modeling Curves in 2D Polylines Sequence of vertices connected by straight line segments Useful, but not for smooth curves Very easy! This is the representation that usually gets drawn in the end (smooth curves converted into these) Smooth curves How do we specify them? A little harder (but not too much) CS-C3100 Fall 2017 Lehtinen 5

Splines A type of smooth curve in the plane or in 3D Many uses 2D Illustration (e.g. Adobe Illustrator) Fonts 3D Modeling Animation: Trajectories In general: Interpolation and approximation ACM 1987 Principles of traditional animation applied CS-C3100 Fall 2017 Lehtinen to 3D computer animation 6

How Many Dimensions? CS-C3100 Fall 2017 Lehtinen 7

How Many Dimensions? This curve lies on the 2D plane, but is itself 1D. CS-C3100 Fall 2017 Lehtinen 8

How Many Dimensions? This curve lies on the 2D plane, but is itself 1D. CS-C3100 Fall 2017 Lehtinen You can just as well define 1D curves in 3D space. 9

Two Definitions of a Curve 1.A continuous 1D point set on the plane or space 2.A mapping from an interval S onto the plane That is, P(t) is the point of the curve at parameter t P : R S R 2, P(t) = x(t) y(t) Big differences It s easy to generate points on the curve from the 2nd The second definition can describe trajectories, the speed at which we move on the curve CS-C3100 Fall 2017 Lehtinen 10

Example of the First Definition? A continuous 1D point set on the plane or space A mapping from an interval S onto the plane That is, P(t) is the point of the curve at parameter t P : R S R 2, P(t) = x(t) y(t) CS-C3100 Fall 2017 Lehtinen 11

Example of the First Definition? A continuous 1D point set on the plane or space A mapping from an interval S onto the plane That is, P(t) is the point of the curve at parameter t P : R S R 2, P(t) = x(t) y(t) An algebraic curve, e.g. intersection of x 2 + y 2 + z 2 =1 and z =0 It s a circle on the xy plane :) CS-C3100 Fall 2017 Lehtinen 12

General Principle for Modeling User specifies control points We ll interpolate the control points by a smooth curve The curve is completely determined by the control points. I.e., we need an unambiguous rule that gives us the curve points given the control points. CS-C3100 Fall 2017 Lehtinen 13

Physical Splines www.abm.org See http://en.wikipedia.org/wiki/flat_spline CS-C3100 Fall 2017 Lehtinen 14

Two Points of View Approximation/interpolation We have data points, how can we interpolate? Important in lots of applications, both graphics and non-graphics User interface/modeling What is an easy way to specify a smooth curve? Our main perspective today. celshader.com vectorportal.com CS-C3100 Fall 2017 Lehtinen 15

Splines Specified by a few control points Good for UI Good for storage Results in a smooth parametric curve P(t) Just means that we specify x(t) and y(t) In practice low-order polynomials chained together Convenient for animation, where t is time Convenient for tessellation because we can discretize t and approximate the curve with a polyline CS-C3100 Fall 2017 Lehtinen 16

Tessellation tn t1 t2 t0 CS-C3100 Fall 2017 Lehtinen 17

Tessellation tn t1 t2 t0 It s clear that adding more points will get us closer to the curve. CS-C3100 Fall 2017 Lehtinen 18

Interpolation vs. Approximation Interpolation Goes through all specified points Sounds more logical Approximation Does not go through all points Interpolation Approximation CS-C3100 Fall 2017 Lehtinen 19

Interpolation vs. Approximation Interpolation Goes through all specified points Sounds more logical But can be more unstable, ringing Approximation Does not go through all points Turns out to be convenient Interpolation In practice, we ll do something in between. Approximation CS-C3100 Fall 2017 Lehtinen 20

Questions? CS-C3100 Fall 2017 Lehtinen 21

Cubic Bézier Curve User specifies 4 control points P1... P4 Curve goes through (interpolates) the ends P1, P4 Approximates the two other ones Cubic polynomial CS-C3100 Fall 2017 Lehtinen 22

Cubic Bézier Curve P(t) = (1-t) 3 P 1 + 3t(1-t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 That is, x(t) = (1 t) 3 x 1 + 3t(1 t) 2 x 2 + 3t 2 (1 t) x 3 + t 3 x 4 y(t) = (1 t) 3 y 1 + 3t(1 t) 2 y 2 + 3t 2 (1 t) y 3 + t 3 y 4 CS-C3100 Fall 2017 Lehtinen 23

Cubic Bézier Curve P(t) = (1-t) 3 P 1 + 3t(1-t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 Scalar polynomials That is, Vectors with coordinates of control points x(t) = (1 t) 3 x 1 + 3t(1 t) 2 x 2 + 3t 2 (1 t) x 3 + t 3 x 4 y(t) = (1 t) 3 y 1 + 3t(1 t) 2 y 2 + 3t 2 (1 t) y 3 + t 3 y 4 CS-C3100 Fall 2017 Lehtinen 24

Cubic Bézier Curve P(t) = (1-t) 3 P 1 + 3t(1-t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 Verify what happens for t=0 and t=1 CS-C3100 Fall 2017 Lehtinen 25

Cubic Bézier Curve 4 control points Curve passes through first & last control point Curve is tangent at P 1 to (P 1 -P 2 ) and at P 4 to (P 4 -P 3 ) A Bézier curve is bounded by the convex hull of its control points. CS-C3100 Fall 2017 Lehtinen 26

Cubic Bézier Curve 4 control points Curve passes through first & last control point Curve is tangent at P 1 to (P 1 -P 2 ) and at P 4 to (P 4 -P 3 ) A Bézier curve is bounded by the convex hull of its control points. CS-C3100 Fall 2017 Lehtinen 27

Bernstein Polynomials For cubic: B 1 (t)=(1-t) 3 B 2 (t)=3t(1-t) 2 B 3 (t)=3t 2 (1-t) B 4 (t)=t 3 (careful with indices, many authors start at 0) But defined for any degree CS-C3100 Fall 2017 Lehtinen 28

Properties of Bernstein polynomials 0 for all 0 t 1 Sum to 1 for every t called partition of unity (These two together are the reason why Bézier curves lie within convex hull) Only B 1 is non-zero at 0 B 1 + B 2 + B 3 + B 4 Bezier interpolates P 1 Same for B 4 and P 4 for t=1 CS-C3100 Fall 2017 Lehtinen 29

Bézier Curves P(t) = P 1 B 1 (t) + P 2 B 2 (t) + P 3 B 3 (t) + P 4 B 4 (t) P i are 2D control points (xi, yi) For each t, the point P(t) on a Bézier curve is a linear combination of the control points with weights given by the Bernstein polynomials at t CS-C3100 Fall 2017 Lehtinen 30

Interpretation as Influence Each B i specifies the influence of P i First, P 1 is the most influential point, then P 2, P 3, and P 4 P 2 and P 3 never have full influence Not interpolated! CS-C3100 Fall 2017 Lehtinen 31

Questions? CS-C3100 Fall 2017 Lehtinen 32

What s with the Formula? Explanation 1: Magic! Explanation 2: It s a linear combination of basis polynomials Let s study this in 1D using curves y=f(t) CS-C3100 Fall 2017 Lehtinen 33

Usual Vector Spaces In 3D, each vector has three components x, y, z But geometrically, each vector is actually the sum v = x i + y j + z k i, j, k are basis vectors j k i Vector addition: just add components Scalar multiplication: just multiply components CS-C3100 Fall 2017 Lehtinen 34

Polynomials as a Vector Space Polynomials Can be added: just add the coefficients y(t) =a 0 + a 1 t + a 2 t 2 +...+ a n t n (y + z)(t) =(a 0 + b 0 )+(a 1 + b 1 )t + (a 2 + b 2 )t 2 +...+(a n + b n )t n Can be multiplied by a scalar: multiply the coefficients s y(t) = (s a 0 )+(s a 1 )t +(s a 2 )t 2 +...+(s a n )t n CS-C3100 Fall 2017 Lehtinen 35

Polynomials as a Vector Space In 3D, each vector has three components x, y, z But geometrically, each vector is actually the sum v = x i + y j + z k i, j, k are basis vectors j k i In the polynomial vector space, {1, t,..., t n } are the basis vectors, a0, a1,..., an are the components y(t) =a 0 + a 1 t + a 2 t 2 +...+ a n t n CS-C3100 Fall 2017 Lehtinen 36

Polynomials as a Vector Space Polynomials are like vectors; you can add them and scale them, and the result is still a polynomial. Connections The flavor of math that is concerned with such things is called functional analysis. Many familiar concepts, such as orthogonality, carry over from ordinary n-d vectors to functions! Trivializes many difficult things like Fourier series by giving geometric analogue. Many other uses in graphics, e.g. finite element global illumination algorithms such as radiosity. THEVERYMANY CS-C3100 Fall 2017 Lehtinen 37

Questions? CS-C3100 Fall 2017 Lehtinen 38

Subset of Polynomials: Cubic y(t) =a 0 + a 1 t + a 2 t 2 + a 3 t 3 Closed under addition & scalar multiplication Means the result is still a cubic polynomial (verify!) Not under general multiplication: t 3 * t 3 = t 6! This means it is also a vector space, a 4D subspace of the full space of polynomials How many dimensions does the full space have? The x and y coordinates of cubic Bézier curves belong to this subspace as functions of t. CS-C3100 Fall 2017 Lehtinen 39

Basis for Cubic Polynomials More precisely: What s a basis? v = x i + y j + z k In 3D A set of atomic vectors Called basis vectors Linear combinations of basis vectors span the space Linearly independent Means that no basis vector can be obtained from the others by linear combination Example: i, j, i+j is not a basis (missing k direction!) j k i CS-C3100 Fall 2017 Lehtinen 40

Canonical Basis for Cubics 1 {1, t, t 2,t 3 } Any cubic polynomial is a linear combination of these: 1 t t 2 t 3 0.8 0.6 0.4 0.2 0 0 0.2 0.4 0.6 0.8 1 a 0 + a 1 t + a 2 t 2 + a 3 t 3 = a 0 * 1+ a 1 * t + a 2 * t 2 + a 3 * t 3 They are linearly independent Means you can t write any of the four monomials as a a linear combination of the others. (You can try.) CS-C3100 Fall 2017 Lehtinen 41

Different basis 2D examples For example: {1, 1+t, 1+t+t 2, 1+t-t 2 +t 3 } {t 3, t 3 +t 2, t 3 +t, t 3 +1} These can all be obtained from 1, t, t 2,t 3 by linear combination Just like all bases for Euclidean space can be obtained by linear combinations of the canonical i, j, Infinite number of possibilities, just like you have an infinite number of bases to span R 2 CS-C3100 Fall 2017 Lehtinen 42

Why we bother: CS-C3100 Fall 2017 Lehtinen 43

Matrix-Vector Notation For Polynomials For example: 1, 1+t, 1+t+t 2, 1+t-t 2 +t 3 t 3, t 3 +t 2, t 3 +t, t 3 +1 These relationships hold for each value of t = 1 0 0 0 1 1 1 0 0 t 1 1 1 0 t 2 1 1 1 1 t 3 t 3 t 3 + t 2 t 3 + t = 0 0 0 1 1 0 0 1 1 t 0 1 0 1 t 2 t 3 +1 1 0 0 1 t 3 1 1+t 1+t + t 2 1+t t 2 + t 3 Change-of-basis matrix Canonical monomial basis CS-C3100 Fall 2017 Lehtinen 44

Matrix-Vector Notation For Polynomials For example: 1, 1+t, 1+t+t 2, 1+t-t 2 +t 3 t 3, t 3 +t 2, t 3 +t, t 3 +1 Not any matrix will do! If it s singular, the basis set will be linearly dependent, i.e., redundant. = 1 0 0 0 1 1 1 0 0 t 1 1 1 0 t 2 1 1 1 1 t 3 t 3 t 3 + t 2 t 3 + t = 0 0 0 1 1 0 0 1 1 t 0 1 0 1 t 2 t 3 +1 1 0 0 1 t 3 1 1+t 1+t + t 2 1+t t 2 + t 3 Change-of-basis matrix Canonical monomial basis CS-C3100 Fall 2017 Lehtinen 45

Matrix Form of Bernstein Cubic Bernstein: B 1 (t)=(1-t) 3 B 2 (t)=3t(1-t) 2 B 3 (t)=3t 2 (1-t) B 4 (t)=t 3 B 1 (t) B 2 (t) B 3 (t) B 4 (t) = Expand these out and collect powers of t. The coefficients are the entries in the matrix B! B 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 46 1 t t 2 t 3

More Matrix-Vector Notation Remember: P(t) = P 1 B 1 (t) + P 2 B 2 (t) + P 3 B 3 (t) + P 4 B 4 (t) is a linear combination of control points or, in matrix-vector notation P (t) = x(t) y(t) point on curve (2x1 vector) = x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 matrix of control points (2 x 4) CS-C3100 Fall 2017 Lehtinen Bernstein polynomials (4x1 vector) B 1 (t) B 2 (t) B 3 (t) B 4 (t) 47

More Matrix-Vector Notation Remember: B 1 (t) B 2 (t) B 3 (t) B 4 (t) P (t) = P (t) = = x(t) y(t) point on curve (2x1 vector) B 1 3 3 1 1 4 0 3 6 3 t 0 0 3 3 0 0 0 1 t i=1 3 P i B i (t) t 2 = matrix of control points (2 x 4) CS-C3100 Fall 2017 Lehtinen 4 <= Flasback from two xi slides ago, B y i (t) let s combine i with below: i=1 = x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 Bernstein polynomials (4x1 vector) B 1 (t) B 2 (t) B 3 (t) B 4 (t) 48

Phase 3: Profit Combined, we get cubic Bézier in matrix notation point on curve (2x1 vector) P(t) = x(t) y(t) x 1 x 2 x 3 x 4 y 1 y 2 y 3 y 4 Geometry matrix of control points P1..P4 (2 x 4) = 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 Spline matrix (Bernstein) CS-C3100 Fall 2017 Lehtinen Canonical monomial basis 1 t t 2 t 3 49

General Spline Formulation Geometry: control points coordinates assembled into a matrix (P 1, P 2,, P n+1 ) Spline matrix: defines the type of spline Bernstein for Bézier Power basis: the monomials (1, t,..., t n ) Advantage of general formulation Compact expression Easy to convert between types of splines Dimensionality (plane or space) doesn t really matter CS-C3100 Fall 2017 Lehtinen 50

What can we do with this? Cubic polynomials form a vector space. Bernstein basis defines Bézier curves. Can do other bases as well: Catmull-Rom splines interpolate all the control points, for instance B CR = 1 2 0 1 0 1 2 1 B2 0 5 3 C @ 0 1 4 3A 0 0 1 1 CS-C3100 Fall 2017 Lehtinen 51

3D Spline has 3D control points The 2D control points can be replaced by 3D points this yields space curves. All the above math stays the same except with the addition of 3rd row to control point matrix (z coords) In fact, can do homogeneous coordinates as well! CS-C3100 Fall 2017 Lehtinen 52

Easy Brain Teaser Can you derive formulas for conversion between two different cubic spline matrices, say Bézier and Catmull-Rom? Both are cubics, so you can represent the other curve exactly with new control points G2 G 1 B 1 T(t) G 2 B 2 T(t) G 2 =??? CS-C3100 Fall 2017 Lehtinen 53

Change of Basis, Other Direction Given B1...B4, how to get back to canonical 1, t, t 2, t 3? B 1 (t) B 2 (t) B 3 (t) B 4 (t) = B 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 1 t t 2 t 3 CS-C3100 Fall 2017 Lehtinen 54

Change of Basis, Other Direction That s right, with the inverse matrix! Given B1...B4, how to get back to canonical 1, t, t 2, t 3? 1 t t 2 t 3 = B 1 1 1 1 1 0 1/3 2/3 1 0 0 1/3 1 0 0 0 1 B 1 (t) B 2 (t) B 3 (t) B 4 (t) CS-C3100 Fall 2017 Lehtinen 55

Recap Cubic polynomials form a vector space. Bernstein basis is canonical for Bézier. Can be seen as influence function of data points Or data points are coordinates of the curve in the Bernstein basis We can change between basis with matrices. CS-C3100 Fall 2017 Lehtinen 56

Questions? CS-C3100 Fall 2017 Lehtinen 57

A Cubic Only Gets You So Far What if you want more control? CS-C3100 Fall 2017 Lehtinen 58

CS-C3100 Fall 2017 Lehtinen 59 Higher-Order Bézier Curves > 4 control points Bernstein Polynomials as the basis functions For polynomial of order n, the i th basis function is Every control point affects the entire curve Not simply a local effect More difficult to control for modeling You will not need this in this class

Subdivision of a Bézier curve Can we split a Bezier curve into two in the middle, using two new Bézier curves? Would be useful for adding detail, as a single cubic doesn t get you very far, and higher-order curves are nasty.? CS-C3100 Fall 2017 Lehtinen 60

Subdivision of a Bezier curve Can we split a Bezier curve into two in the middle, using two new Bézier curves? The resulting curves are again a cubic (Why?)? CS-C3100 Fall 2017 Lehtinen

Subdivision of a Bezier curve Can we split a Bezier curve into two in the middle, using two new Bézier curves? The resulting curves are again a cubic (Why? A cubic in t is also a cubic in 2t) (Why? a 0 (2t) 3 =8a 0 t 3, etc.) Hence it must be representable using the Bernstein t1=2t t2=2t-1 basis. So yes, we can!? cubic t=0 t=0.5 t=1 CS-C3100 Fall 2017 Lehtinen 62

Subdivision of a Bezier curve Can we split a Bezier curve into two in the middle, using two new Bézier curves? The resulting curves are again a cubic (Why? A cubic in t is also a cubic in 2t) Hence it must be representable using the Bernstein basis. So yes, we can!? t1=2t t2=2t-1 cubic t=0 t=0.5 t=1 CS-C3100 Fall 2017 Lehtinen 63

De Casteljau Construction Take the middle point of each of the 3 segments Construct the two segments joining them Take the middle of those two new segments Join them Take the middle point P P 2 P 1 P 2 P 1 P P 3 CS-C3100 Fall 2017 Lehtinen 64

Result of Split in Middle The two new curves are defined by P1, P 1, P 1, and P P, P 2, P 3, and P4 Together they exactly replicate the original curve! Originally 4 control points, now 7 (more control) P 2 P 1 P 2 P 1 P P 3 P4 P1 CS-C3100 Fall 2017 Lehtinen 65

Sanity Check Do we get the middle point? B 1 (t)=(1-t) 3 B 2 (t)=3t(1-t) 2 B 3 (t)=3t 2 (1-t) B 4 (t)=t 3 P 1 P 1 P 2 P 2 P P 3 P 1 =0.5(P 1 + P 2 ) P 2 =0.5(P 2 + P 3 ) P 3 =0.5(P 3 + P 4 ) P 1 =0.5(P 1 + P 2 ) P 2 =0.5(P 2 + P 3 ) P =0.5(P 1 + P 2 ) =0.5 (0.5(P 1 + P 2 )+0.5(P 2 + P 3 )) =0.5 (0.5 [0.5(P 1 + P 2 )+0.5(P 2 + P 3 )] + 0.5 [0.5(P 2 + P 3 )+0.5(P 3 + P 4 )] =1/8P 1 +3/8P 2 +3/8P 3 +1/8P 4 CS-C3100 Fall 2017 Lehtinen 66

De Casteljau Construction Actually works to construct a point at any t, not just 0.5 Just subdivide the segments with ratio (1-t), t (not in the middle) t t t t t t CS-C3100 Fall 2017 Lehtinen 67

De Casteljau Construction Actually works to construct a point at any t, not just 0.5 Just subdivide the segments with ratio (1-t), t (not in the middle) 1-t t t t t 1-t t t 1-t CS-C3100 Fall 2017 Lehtinen 68

Questions? CS-C3100 Fall 2017 Lehtinen 69

Aside: Extra Credit Suggestion TrueType font glyphs (the images of the characters) consist of quadratic Bézier curves chained together. Why don t you write code that loads the glyphs using the Win32 API, and either Convert them to cubic Bézier and display them using the drawing code you already wrote Or write code for drawing quadratic curves directly. See this MSDN documentation page for a starting point! CS-C3100 Fall 2017 Lehtinen 70

Linear Transformations & Cubics What if we want to transform each point on the curve with a linear transformation M? P (t)= M 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 71

Linear Transformations & Cubics What if we want to transform each point on the curve with a linear transformation M? Because everything is linear, it s the same as transforming the only the control points P (t)= M = M 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 72

Linear Transformations & Cubics Homogeneous coordinates also work Means you can translate, rotate, shear, etc. Also, changing w gives a tension parameter Note though that you need to normalize P by 1/w P (t)= M = M 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 73

Differential properties of curves Motivation Compute normal for surfaces Compute velocity for animation Analyze smoothness CS-C3100 Fall 2017 Lehtinen 74

Velocity First derivative w.r.t. t Can you compute this for Bezier curves? P(t) = (1-t) 3 P 1 + 3t(1-t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 You know how to differentiate polynomials... CS-C3100 Fall 2017 Lehtinen 75

Velocity First derivative w.r.t. t Can you compute this for Bezier curves? P(t) = (1-t) 3 P 1 + 3t(1-t) 2 P 2 + 3t 2 (1-t) P 3 + t 3 P 4 P (t) = -3(1-t) 2 P1 + [3(1-t) 2-6t(1-t)] P2 + [6t(1-t)-3t 2 ] P3 + 3t 2 P4 CS-C3100 Fall 2017 Lehtinen Sanity check: t=0; t=1 Can also write this using a matrix B try it out! 76

Tangent The tangent to the curve P(t) can be defined as T(t)=P (t)/ P (t) normalized velocity, T(t) = 1 This provides us with one orientation for swept surfaces in a little while CS-C3100 Fall 2017 Lehtinen 77

Questions? CS-C3100 Fall 2017 Lehtinen 78

Curvature Derivative of unit tangent K(t)=T (t) Magnitude K(t) is constant for a circle Zero for a straight line Always orthogonal to tangent, ie. Can you prove this? (Hints: T(t) =1, (x(t)y(t)) =?) T(t) Low curvature K T =0 T(t) T(t) K(t) K(t) K(t) High curvature CS-C3100 Fall 2017 Lehtinen 79

Geometric Interpretation K is zero for a line, constant for circle What constant? 1/r 1/ K(t) is the radius of the circle that touches P(t) at t and has the same curvature as the curve T(t) r=1/k T(t) r=1/k K(t) K(t) CS-C3100 Fall 2017 Lehtinen 80

Curve Normal Normalized curvature: T (t)/ T (t) N(t) Low curvature N(t) N(t) High curvature CS-C3100 Fall 2017 Lehtinen 45 81

Questions? CS-C3100 Fall 2017 Lehtinen 82

Orders of Continuity C 0 = continuous The seam can be a sharp kink G 1 = geometric continuity Tangents point to the same direction at the seam C 1 = parametric continuity Tangents are the same at the seam, implies G 1 C 2 = curvature continuity Tangents and their derivatives are the same CS-C3100 Fall 2017 Lehtinen C 0 G 1 C 1 83

Connecting Cubic Bézier Curves How can we guarantee C 0 continuity? How can we guarantee G 1 continuity? How can we guarantee C 1 continuity? C 2 and above gets difficult CS-C3100 Fall 2017 Lehtinen 84

Connecting Cubic Bézier Curves Where is this curve C 0 continuous? G 1 continuous? C 1 continuous? What s the relationship between: the # of control points, and the # of cubic Bézier subcurves? CS-C3100 Fall 2017 Lehtinen 85

Questions? CS-C3100 Fall 2017 Lehtinen 86

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again. CS-C3100 Fall 2017 Lehtinen 87

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again.. BUT with a sliding window of 4 control points! CS-C3100 Fall 2017 Lehtinen 88

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again. BUT with a sliding window of 4 control points! CS-C3100 Fall 2017 Lehtinen 89

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again. BUT with a sliding window of 4 control points! CS-C3100 Fall 2017 Lehtinen 90

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again. Curve is not constrained to pass through any control points A BSpline curve is also bounded by the convex hull of its control points. CS-C3100 Fall 2017 Lehtinen 91

Cubic B-Splines: Basis These sum to 1, too! B2 B3 B1 B4 B 1 (t) = 1 6 (1 t)3 B 2 (t) = 1 6 (3t3 6t 2 + 4) B 3 (t) = 1 6 ( 3t3 +3t 2 +3t + 1) B 4 (t) = 1 6 t3 CS-C3100 Fall 2017 Lehtinen 92

Cubic B-Splines: Basis 1 3 3 1 4 0 6 3 1 3 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 93

Cubic B-Splines Local control (windowing) Automatically C 2, and no need to match tangents! CS-C3100 Fall 2017 Lehtinen 94

B-Spline Curve Control Points Default BSpline BSpline with derivative discontinuity Repeat interior control point BSpline which passes through end points Repeat end points CS-C3100 Fall 2017 Lehtinen 95

Bézier B-Spline Bézier BSpline But both are cubics, so one can be converted into the other! CS-C3100 Fall 2017 Lehtinen 96

Easy Brain Teaser Can you derive formulas for conversion between two different cubic spline matrices, say Bézier and Catmull-Rom? Both are cubics, so you can represent the other curve exactly with new control points G2 G 1 B 1 T(t) G 2 B 2 T(t) G 2 =??? CS-C3100 Fall 2017 Lehtinen 97

Solution G 1 B 1 T(t) G 2 B 2 T(t) (This must hold for all t!) CS-C3100 Fall 2017 Lehtinen 1 3 3 1 4 0 6 3 1 3 3 3 0 0 0 1 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 98

Solution G 1 B 1 T(t) G 2 B 2 T(t) (This must hold for all t!) CS-C3100 Fall 2017 Lehtinen 1 3 3 1 4 0 6 3 1 3 3 3 0 0 0 1 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 99

Converting between Bézier & BSpline Simple with the basis matrices! Note that this only works for a single segment of 4 control points P(t) = G B1 T(t) = G B1 (B2-1 B2) T(t)= (G B1 B2-1 ) B2 T(t) G B1 B2-1 are the control points for the segment in new basis. 1 3 3 1 0 3 6 3 0 0 3 3 0 0 0 1 1 3 3 1 4 0 6 3 1 3 3 3 0 0 0 1 CS-C3100 Fall 2017 Lehtinen 100

Converting between Bézier & BSpline original control points as Bézier new BSpline control points to match Bézier new Bézier control points to match BSpline original control points as BSpline CS-C3100 Fall 2017 Lehtinen 101

Why Bother with B-Splines? Automatic C 2 is nice! Also, B-Splines can be split into segments of nonuniform length without affecting the global parametrization. Non-uniform B-Splines We ll not do this, but just so you know. CS-C3100 Fall 2017 Lehtinen 102

NURBS (Generalized B-Splines) Rational cubics Use homogeneous coordinates, just add w! Provides a tension parameter to control points NURBS: Non-Uniform Rational B-Spline non-uniform = different spacing between the blending functions, a.k.a. knots rational = ratio of cubic polynomials (instead of just cubic) implemented by adding the homogeneous coordinate w into the control points. CS-C3100 Fall 2017 Lehtinen 103

Questions? CS-C3100 Fall 2017 Lehtinen 104

That s All for Today, Folks Fun stuff to know about function/vector spaces http://en.wikipedia.org/wiki/vector_space http://en.wikipedia.org/wiki/functional_analysis http://en.wikipedia.org/wiki/function_space Inkscape is an open source vector drawing program for Mac/Windows. Try it out! vectorportal.com CS-C3100 Fall 2017 Lehtinen 105