Bézier Curves and Splines

Similar documents
A COURSE OUTLINE (September 2001)

CT4510: Computer Graphics. Transformation BOCHANG MOON

Computer Graphics. Prof. Jaakko Lehtinen. with lots of material from Frédo Durand. Picture: Alexis Rufatt. T Spring 2013 Lehtinen Mar 22

Implementing Provisions for Art. 411 of the ICR Ski Jumping

Wave Load Pattern Definition

Classroom Tips and Techniques: The Partial-Fraction Decomposition. Robert J. Lopez Emeritus Professor of Mathematics and Maple Fellow Maplesoft

Knot Theory Week 2: Tricolorability

Verification of Peening Intensity

Algebra I: A Fresh Approach. By Christy Walters

COURSE NUMBER: ME 321 Fluid Mechanics I Fluid statics. Course teacher Dr. M. Mahbubur Razzaque Professor Department of Mechanical Engineering BUET

The Beginner's Guide to Mathematica Version 4

OPTIMIZATION OF A WAVE CANCELLATION MULTIHULL SHIP USING CFD TOOLS

Calculation of Trail Usage from Counter Data

Algebra I: A Fresh Approach. By Christy Walters

CS 4649/7649 Robot Intelligence: Planning

Jasmin Smajic 1, Christian Hafner 2, Jürg Leuthold 2, March 16, 2015 Introduction to Finite Element Method (FEM) Part 1 (2-D FEM)

Waves. harmonic wave wave equation one dimensional wave equation principle of wave fronts plane waves law of reflection

Math 4. Unit 1: Conic Sections Lesson 1.1: What Is a Conic Section?

Project 2 Evaluation 32 Second Year Algebra 1 (MTHH )

Minimum Mean-Square Error (MMSE) and Linear MMSE (LMMSE) Estimation

The sycc Color Space

STANDARD SCORES AND THE NORMAL DISTRIBUTION

PART 3 MODULE 6 GEOMETRY: UNITS OF GEOMETRIC MEASURE

AP Physics B Summer Homework (Show work)

A Hare-Lynx Simulation Model

Mixture Models & EM. Nicholas Ruozzi University of Texas at Dallas. based on the slides of Vibhav Gogate

SHOT ON GOAL. Name: Football scoring a goal and trigonometry Ian Edwards Luther College Teachers Teaching with Technology

Helicopters / Vortex theory. Filipe Szolnoky Cunha

Autodesk Moldflow Communicator Process settings

Where are you right now? How fast are you moving? To answer these questions precisely, you

Lecture 1: Knot Theory

ECO 199 GAMES OF STRATEGY Spring Term 2004 Precept Materials for Week 3 February 16, 17

RATE OF CHANGE AND INSTANTANEOUS VELOCITY

CS 351 Design of Large Programs Zombie House

3. GRADUALLY-VARIED FLOW (GVF) AUTUMN 2018

computed using Equation 3-18 by setting the 2nd term equal to 0 and K A equal to K o and using the pressure distribution as shown in Figure 3-23.

1. A tendency to roll or heel when turning (a known and typically constant disturbance) 2. Motion induced by surface waves of certain frequencies.

Parsimonious Linear Fingerprinting for Time Series

67. Sectional normalization and recognization on the PV-Diagram of reciprocating compressor

NSST SPECIAL EVOLUTIONS TRAINING INSTRUCTIONAL MODULE MODULE MATH FOR THE OOD (I) (APPLICATIONS FOR UNREP OPS) REVISION DATE: 6 NOVEMBER 2015

Parametric Ball Toss TEACHER NOTES MATH NSPIRED. Math Objectives. Vocabulary. About the Lesson. TI-Nspire Navigator System

LINEAR TRANSFORMATION APPLIED TO THE CALIBRATION OF ANALYTES IN VARIOUS MATRICES USING A TOTAL HYDROCARBON (THC) ANALYZER

Project 1 Those amazing Red Sox!

Cricket umpire assistance and ball tracking system using a single smartphone camera

Knots and their projections I

End of Chapter Exercises

MAPPING DESCRIPTIONS AND DRAFTING PARCEL BOUNDARIES FOR CADASTRAL MAPPING

Physics 2204 Worksheet 6.5: Graphical Analysis of Non- Uniform Motion D-T GRAPH OF NON-UNIFORM MOTION (ACCELERATING) :

The notion of independence in the theory of evidence: An algebraic study

MI 4 Project on Parametric Equations. Parametric Worksheet

LOW PRESSURE EFFUSION OF GASES adapted by Luke Hanley and Mike Trenary

Lecture 5. Optimisation. Regularisation

Mathematics. Leaving Certificate Examination Paper 1 Higher Level Friday 10 th June Afternoon 2:00 4:30

REAL LIFE GRAPHS M.K. HOME TUITION. Mathematics Revision Guides Level: GCSE Higher Tier

Homework Helpers Sampler

SPATIAL STATISTICS A SPATIAL ANALYSIS AND COMPARISON OF NBA PLAYERS. Introduction

B.U.G. Newsletter. Full Steam Ahead! September Dr. Brown

End of Chapter Exercises

Walking with coffee: when and why coffee spills

Energy balance of the model as described in Theory and Model

S0300-A6-MAN-010 CHAPTER 2 STABILITY

Preliminary design of a high-altitude kite. A flexible membrane kite section at various wind speeds

A Chiller Control Algorithm for Multiple Variablespeed Centrifugal Compressors

E.I. Kugushev, 7.6. Jaroshevskij Institute of Applied Mathematics, the USSR Academy of Sciences, Moscow, A-47, Miusskaya Sq», 4

International Journal of Technical Research and Applications e-issn: , Volume 4, Issue 3 (May-June, 2016), PP.

Modeling of Hydraulic Hose Paths

Prof. B V S Viswanadham, Department of Civil Engineering, IIT Bombay

Analysis of Shear Lag in Steel Angle Connectors

Using March Madness in the first Linear Algebra course. Steve Hilbert Ithaca College

Physics P201 D. Baxter/R. Heinz

Lab 1. Adiabatic and reversible compression of a gas

if all agents follow RSS s interpretation then there will be zero accidents.

6. EXPERIMENTAL METHOD. A primary result of the current research effort is the design of an experimental

Week 8, Lesson 1 1. Warm up 2. ICA Scavanger Hunt 3. Notes Arithmetic Series

O-Calc Pro Sag Tension Calculations Explained

ROSE-HULMAN INSTITUTE OF TECHNOLOGY Department of Mechanical Engineering. Mini-project 3 Tennis ball launcher

An Analysis of Graphical Representations of Bowling. Allison Nelson. Summer Ventures Appalachian State University

Wave Motion. interference destructive interferecne constructive interference in phase. out of phase standing wave antinodes resonant frequencies

Set the Sails! 3. You will study patterns on the graphs and tables and make generalizations about the transformations presented.

LOW PRESSURE EFFUSION OF GASES revised by Igor Bolotin 03/05/12

CENTER PIVOT EVALUATION AND DESIGN

Scarborough Spring 2013 Math Exam I 1. "On my honor, as an Aggie, I have neither given nor received unauthorized aid on this academic work.

Boyle s Law: Pressure-Volume Relationship in Gases. PRELAB QUESTIONS (Answer on your own notebook paper)

Spatio-temporal analysis of team sports Joachim Gudmundsson

Circular Motion - Horizontal

NCSS Statistical Software

Besides the reported poor performance of the candidates there were a number of mistakes observed on the assessment tool itself outlined as follows:

Workshop 1: Bubbly Flow in a Rectangular Bubble Column. Multiphase Flow Modeling In ANSYS CFX Release ANSYS, Inc. WS1-1 Release 14.

The Diver Returns Circular Functions, Vector Components, and Complex Numbers

SNARKs with Preprocessing. Eran Tromer

Author s Name Name of the Paper Session. Positioning Committee. Marine Technology Society. DYNAMIC POSITIONING CONFERENCE September 18-19, 2001

Lab # 03: Visualization of Shock Waves by using Schlieren Technique

Propellers and propulsion

Gears Ratios and Speed / Problem Solving

Advanced Hydraulics Prof. Dr. Suresh A. Kartha Department of Civil Engineering Indian Institute of Technology, Guwahati

CHAPTER 1. Knowledge. (a) 8 m/s (b) 10 m/s (c) 12 m/s (d) 14 m/s

EE 364B: Wind Farm Layout Optimization via Sequential Convex Programming

Lesson 18: There Is Only One Line Passing Through a Given Point with a Given Slope

Homework 2 Bathymetric Charts [based on the Chauffe & Jefferies (2007)]

BND TechSource. Chain & Sprocket Simulation using CATIA V5 DMU Kinematics. (Revised 27SEP09)

Transcription:

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

Before We Begin Anything on your mind concerning Assignment 1? Linux makefiles released on MyCourses Unsupported! For you to play with Assignment 2 (Curves & Surfaces, stuff covered today!) will be posted before Sunday s deadline CS-C3100 Fall 2016 Lehtinen 2

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

Modeling Curves in 2D How? CS-C3100 Fall 2016 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 2016 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 2016 Lehtinen to 3D computer animation 6

How Many Dimensions? CS-C3100 Fall 2016 Lehtinen 7

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

How Many Dimensions? This curve lies on the 2D plane, but is itself 1D. CS-C3100 Fall 2016 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 2016 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 2016 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 2016 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 2016 Lehtinen 13

Physical Splines www.abm.org See http://en.wikipedia.org/wiki/flat_spline CS-C3100 Fall 2016 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 2016 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 2016 Lehtinen 16

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

Tessellation tn t1 t2 t0 It s clear that adding more points will get us closer to the curve. CS-C3100 Fall 2016 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 2016 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 2016 Lehtinen 20

Questions? CS-C3100 Fall 2016 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 2016 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 2016 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 Verify what happens for t=0 and t=1 CS-C3100 Fall 2016 Lehtinen 24

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 2016 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 2016 Lehtinen 26

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 2016 Lehtinen 27

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 2016 Lehtinen 28

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 2016 Lehtinen 29

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 2016 Lehtinen 30

Questions? CS-C3100 Fall 2016 Lehtinen 31

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 2016 Lehtinen 32

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 2016 Lehtinen 33

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 2016 Lehtinen 34

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 2016 Lehtinen 35

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 2016 Lehtinen 36

Questions? CS-C3100 Fall 2016 Lehtinen 37

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 2016 Lehtinen 38

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 2016 Lehtinen 39

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 2016 Lehtinen 40

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 Infinite number of possibilities, just like you have an infinite number of bases to span R 2 CS-C3100 Fall 2016 Lehtinen 41

Why we bother: CS-C3100 Fall 2016 Lehtinen 42

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 2016 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 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 2016 Lehtinen 44

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 2016 Lehtinen 45 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 2016 Lehtinen Bernstein polynomials (4x1 vector) B 1 (t) B 2 (t) B 3 (t) B 4 (t) 46

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 2016 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) 47

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 2016 Lehtinen Canonical monomial basis 1 t t 2 t 3 48

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 2016 Lehtinen 49

What can we do with this? Cubic polynomials form a vector space. Bernstein basis is canonical for Bézier. 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 2016 Lehtinen 50

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 2016 Lehtinen 51

Easy Brain Teaser for Next Time 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 2016 Lehtinen 52

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 2016 Lehtinen 53

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 2016 Lehtinen 54

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 2016 Lehtinen 55

Questions? CS-C3100 Fall 2016 Lehtinen 56

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

CS-C3100 Fall 2016 Lehtinen 58 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 2016 Lehtinen 59

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 2016 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) 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 2016 Lehtinen 61

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 2016 Lehtinen 62

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 2016 Lehtinen 63

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 2016 Lehtinen 64

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 2016 Lehtinen 65

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 2016 Lehtinen 66

Questions? CS-C3100 Fall 2016 Lehtinen 67

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 2016 Lehtinen 68

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 2016 Lehtinen 69

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 2016 Lehtinen 70

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 2016 Lehtinen 71

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

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 2016 Lehtinen 73

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 2016 Lehtinen Sanity check: t=0; t=1 Can also write this using a matrix B try it out! 74

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 2016 Lehtinen 75

Questions? CS-C3100 Fall 2016 Lehtinen 76

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 2016 Lehtinen 77

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 2016 Lehtinen 78

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

Questions? CS-C3100 Fall 2016 Lehtinen 80

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 2016 Lehtinen C 0 G 1 C 1 81

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 2016 Lehtinen 82

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 2016 Lehtinen 83

Questions? CS-C3100 Fall 2016 Lehtinen 84

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

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

Cubic B-Splines 4 control points Locally cubic Cubics chained together, again. BUT with a sliding window of 4 control points! CS-C3100 Fall 2016 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 2016 Lehtinen 88

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 2016 Lehtinen 89

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 2016 Lehtinen 90

Cubic B-Splines: Basis 1 3 3 1 4 0 6 3 1 3 3 3 0 0 0 1 CS-C3100 Fall 2016 Lehtinen 91

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

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 2016 Lehtinen 93

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

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 2016 Lehtinen 95

Solution G 1 B 1 T(t) G 2 B 2 T(t) (This must hold for all t!) CS-C3100 Fall 2016 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 96

Solution G 1 B 1 T(t) G 2 B 2 T(t) (This must hold for all t!) CS-C3100 Fall 2016 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 97

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 2016 Lehtinen 98

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 2016 Lehtinen 99

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 2016 Lehtinen 100

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 2016 Lehtinen 101

Questions? CS-C3100 Fall 2016 Lehtinen 102

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 2016 Lehtinen 103