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



Similar documents
Computer Graphics. Geometric Modeling. Page 1. Copyright Gotsman, Elber, Barequet, Karni, Sheffer Computer Science - Technion. An Example.

Computer Graphics CS 543 Lecture 12 (Part 1) Curves. Prof Emmanuel Agu. Computer Science Dept. Worcester Polytechnic Institute (WPI)

Geometric Modelling & Curves

We can display an object on a monitor screen in three different computer-model forms: Wireframe model Surface Model Solid model

Modeling Curves and Surfaces

(Refer Slide Time: 1:42)

Figure 2.1: Center of mass of four points.

the points are called control points approximating curve

CHAPTER 1 Splines and B-splines an Introduction

Curves and Surfaces. Goals. How do we draw surfaces? How do we specify a surface? How do we approximate a surface?

Topics in Computer Graphics Chap 14: Tensor Product Patches

BEZIER CURVES AND SURFACES

Degree Reduction of Interval SB Curves

Essential Mathematics for Computer Graphics fast

Dhiren Bhatia Carnegie Mellon University

How To Use Design Mentor

MA 323 Geometric Modelling Course Notes: Day 02 Model Construction Problem

3. Interpolation. Closing the Gaps of Discretization... Beyond Polynomials

Computer Animation: Art, Science and Criticism

Introduction to Computer Graphics. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012

NURBS Drawing Week 5, Lecture 10

B2.53-R3: COMPUTER GRAPHICS. NOTE: 1. There are TWO PARTS in this Module/Paper. PART ONE contains FOUR questions and PART TWO contains FIVE questions.

NURBS Drawing Week 5, Lecture 10

A Short Introduction to Computer Graphics

Content. Chapter 4 Functions Basic concepts on real functions 62. Credits 11

Introduction to Computer Graphics Marie-Paule Cani & Estelle Duveau

A Geometric Characterization of Parametric Cubic Curves

Corollary. (f є C n+1 [a,b]). Proof: This follows directly from the preceding theorem using the inequality

H.Calculating Normal Vectors

EECS 556 Image Processing W 09. Interpolation. Interpolation techniques B splines

A matrix method for degree-raising of B-spline curves *

The Essentials of CAGD

PERFORMANCE OF BÉZIER CURVES RENDERING IN WEB BROWSERS

Numerical algorithms for curve approximation and novel user oriented interactive tools

VALLIAMMAI ENGNIEERING COLLEGE SRM Nagar, Kattankulathur

CSE373: Data Structures and Algorithms Lecture 3: Math Review; Algorithm Analysis. Linda Shapiro Winter 2015

CPIT-285 Computer Graphics

Jim Lambers MAT 169 Fall Semester Lecture 25 Notes

Finite Element Formulation for Plates - Handout 3 -

Computer Applications in Textile Engineering. Computer Applications in Textile Engineering

(a) We have x = 3 + 2t, y = 2 t, z = 6 so solving for t we get the symmetric equations. x 3 2. = 2 y, z = 6. t 2 2t + 1 = 0,

1 Review of Least Squares Solutions to Overdetermined Systems

COMP175: Computer Graphics. Lecture 1 Introduction and Display Technologies

Constrained curve and surface fitting

Monash University Clayton s School of Information Technology CSE3313 Computer Graphics Sample Exam Questions 2007

The Fourth International DERIVE-TI92/89 Conference Liverpool, U.K., July Derive 5: The Easiest... Just Got Better!

A Mathematica Package for CAGD and Computer Graphics

12.5 Equations of Lines and Planes

Mean value theorem, Taylors Theorem, Maxima and Minima.

Precalculus REVERSE CORRELATION. Content Expectations for. Precalculus. Michigan CONTENT EXPECTATIONS FOR PRECALCULUS CHAPTER/LESSON TITLES

Seminar. Path planning using Voronoi diagrams and B-Splines. Stefano Martina

COMP-557: Fundamentals of Computer Graphics McGill University, Fall 2010

How To Draw A 3D Virtual World In 3D Space (Computer Graphics)

Derive 5: The Easiest... Just Got Better!

1. Abstract 2. Introduction 3. Algorithms and Techniques

Prerequisites: TSI Math Complete and high school Algebra II and geometry or MATH 0303.

Piecewise Cubic Splines

Classification of Fingerprints. Sarat C. Dass Department of Statistics & Probability

Minkowski Sum of Polytopes Defined by Their Vertices

Subdivision for Modeling and Animation

Sect. 1.3: Factoring

CS 4620 Practicum Programming Assignment 6 Animation

PCHS ALGEBRA PLACEMENT TEST

Computational Geometry. Lecture 1: Introduction and Convex Hulls

GAME ENGINE DESIGN. A Practical Approach to Real-Time Computer Graphics. ahhb. DAVID H. EBERLY Geometrie Tools, Inc.

How To Write An Isgeometric Finite Element Analysis

Planar Curve Intersection

Arrangements And Duality

Introduction to Computer Graphics

Copyrighted Material. Chapter 1 DEGREE OF A CURVE

Mathematics for Business Analysis I Fall 2007

Generate Cryptographic key using generated 3D- Digital Image

Math 241, Exam 1 Information.

Point Lattices in Computer Graphics and Visualization how signal processing may help computer graphics

An Overview of the Finite Element Analysis

Parametric Curves. (Com S 477/577 Notes) Yan-Bin Jia. Oct 8, 2015

COMPUTER GRAPHICS IMPORTANT QUESTION AND ANSWERS. Computer graphics

Algorithms for Real-Time Tool Path Generation

Lecture Notes, CEng 477

Interactive Computer Graphics

Linear Models and Conjoint Analysis with Nonlinear Spline Transformations

animation animation shape specification as a function of time

Thnkwell s Homeschool Precalculus Course Lesson Plan: 36 weeks

2008 AP Calculus AB Multiple Choice Exam

CS 4204 Computer Graphics

INTRODUCTION TO RENDERING TECHNIQUES

Section 1.4. Lines, Planes, and Hyperplanes. The Calculus of Functions of Several Variables

Introduction to Algebraic Geometry. Bézout s Theorem and Inflection Points

Course Overview. CSCI 480 Computer Graphics Lecture 1. Administrative Issues Modeling Animation Rendering OpenGL Programming [Angel Ch.

Birmingham City Schools

Section 2.4: Equations of Lines and Planes

Linear Programming I

Package MBA. February 19, Index 7. Canopy LIDAR data

Pre-Algebra Academic Content Standards Grade Eight Ohio. Number, Number Sense and Operations Standard. Number and Number Systems

Summary: Transformations. Lecture 14 Parameter Estimation Readings T&V Sec Parameter Estimation: Fitting Geometric Models

Two hours UNIVERSITY OF MANCHESTER SCHOOL OF COMPUTER SCIENCE. M.Sc. in Advanced Computer Science. Friday 18 th January 2008.

Solving Simultaneous Equations and Matrices

Core Maths C2. Revision Notes

Discrete Optimization

Diablo Valley College Catalog

Transcription:

CSE 167: Introduction to Computer Graphics Lecture 13: Bézier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2011

Announcements Homework project #6 due Friday, Nov 18 at 1:30pm To be presented in lab 260 No grading this Friday, Nov 11 (Veterans Day) Last day for late grading project 5: Thursday, Nov 10 Final project presentations date+time confirmed: December 2 nd, 1-3pm, CSE 1202 2

Lecture Overview Polynomial Curves cont d Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 3

Polynomial Curves Quadratic: (2 nd order) Cubic: (3 rd order) We usually define the curve for 0 t 1 4

Control Points Polynomial coefficients a, b, c, d can be interpreted as control points Remember: a, b, c, d have x,y,z components each Unfortunately, they do not intuitively describe the shape of the curve Goal: intuitive control points 5

Control Points How many control points? Two points define a line (1 st order) Three points define a quadratic curve (2 nd order) Four points define a cubic curve (3 rd order) k+1 points define a k-order curve Let s start with a line 6

First Order Curve Based on linear interpolation (LERP) Weighted average between two values Value could be a number, vector, color, Interpolate between points p 0 and p 1 with parameter t Defines a curve that is straight (first-order spline) t=0 corresponds to p 0 t=1 corresponds to p 1 t=0.5 corresponds to midpoint 7 p 0. 0<t<1 t=0. p 1 t=1 x(t) = Lerp( t, p 0, p 1 )= ( 1 t)p 0 + t p 1

Linear Interpolation Three equivalent ways to write it Expose different properties 1. Regroup for points p weighted sum of control points 2. Regroup for t polynomial in t 3. Matrix form 8

Weighted Average x(t) = (1 t)p 0 + (t)p 1 = B 0 (t) p 0 + B 1 (t)p 1, where B 0 (t) = 1 t and B 1 (t) = t Weights are a function of t Sum is always 1, for any value of t Also known as blending functions 9

Linear Polynomial x(t) = (p p 0 ) 14 2 34 t + p 123 0 vector point Curve is based at point p 0 Add the vector, scaled by t p 0..5(p 1 -p 0 ). p 1 -p 0. 10

Matrix Form Geometry matrix Geometric basis Polynomial basis In components 11

Tangent For a straight line, the tangent is constant Weighted average Polynomial Matrix form 12

Lecture Overview Polynomial Curves cont d Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 13

Bézier Curves Are a higher order extension of linear interpolation p 1 p 1 p 1 p 2 p 1 p 3 p 0 p 0 p 0 p 2 Linear Quadratic Cubic 14

Bézier Curves Give intuitive control over curve with control points Endpoints are interpolated, intermediate points are approximated Convex Hull property Variation-Diminishing property Many demo applets online, for example: Demo: http://www.cs.princeton.edu/~min/cs426/jar/bezier.html http://www.theparticle.com/applets/nyu/bezierapplet/ http://www.sunsite.ubc.ca/livingmathematics/v001n01/ubcexamples/b ezier/bezier.html 15

Cubic Bézier Curve Most common case Defined by four control points: Two interpolated endpoints (points are on the curve) Two points control the tangents at the endpoints Points x on curve defined as function of parameter t p 0 x(t) p 1 p 2 16 p 3

Algorithmic Construction Algorithmic construction De Casteljau algorithm, developed at Citroen in 1959, named after its inventor Paul de Casteljau (pronounced Cast-all- Joe ) Developed independently from Bézier s work: Bézier created the formulation using blending functions, Casteljau devised the recursive interpolation algorithm 17

De Casteljau Algorithm A recursive series of linear interpolations Works for any order Bezier function, not only cubic Not very efficient to evaluate Other forms more commonly used But: Gives intuition about the geometry Useful for subdivision 18

De Casteljau Algorithm Given: Four control points A value of t (here t 0.25) p 1 p 0 p 2 p 3 19

De Casteljau Algorithm p 1 q 1 q 0 (t) = Lerp( t,p 0,p ) 1 p 0 q 0 ( ) q 1 (t) = Lerp t,p 1,p 2 p 2 q 2 (t) = Lerp( t,p 2,p ) 3 q 2 p 3 20

De Casteljau Algorithm q 1 q r 0 0 r 1 ( ) r 0 (t) = Lerp t,q 0 (t),q 1 (t) r 1 (t) = Lerp( t,q 1 (t),q 2 (t)) q 2 21

De Casteljau Algorithm r 0 x r 1 x(t) = Lerp ( t,r 0 (t),r 1 (t)) 22

De Casteljau Algorithm p 1 p 0 x p 2 Applets Demo: http://www2.mat.dtu.dk/people/j.gravesen/cagd/decast.html http://www.caffeineowl.com/graphics/2d/vectorial/bezierintro.html 23 p 3

Recursive Linear Interpolation x = Lerp t,r 0,r 1 ( ) r = Lerp ( t,q,q ) 0 0 1 ( ) r 1 = Lerp t,q 1,q 2 q 0 = Lerp( t,p 0,p ) 1 q 1 = Lerp( t,p 1,p ) 2 q 2 = Lerp( t,p 2,p ) 3 p 0 p 1 p 2 p 3 p 1 q 0 r 0 p 2 x q 1 r 1 p 3 q 2 p 4 24

Expand the LERPs q 0 (t) = Lerp( t,p 0,p 1 )= ( 1 t)p 0 + tp 1 q 1 (t) = Lerp( t,p 1,p 2 )= ( 1 t)p 1 + tp 2 q 2 (t) = Lerp( t,p 2,p 3 )= ( 1 t)p 2 + tp 3 r 0 (t) = Lerp ( t,q 0 (t),q 1 (t) )= 1 t r 1 (t) = Lerp( t,q 1 (t),q 2 (t))= 1 t ( ) ( )p 0 + tp 1 )+ t ( 1 t )p 1 + tp 2 ( )p 1 + tp 2 )+ t ( 1 t)p 2 + tp 3 ( ) 1 t ( ) 1 t x(t) = Lerp t,r 0 (t),r 1 (t) = ( 1 t) ( 1 t) ( 1 t)p 0 + tp 1 )+ t ( 1 t)p 1 + tp 2 +t ( 1 t) ( 1 t)p 1 + tp 2 )+ t ( 1 t)p 2 + tp 3 25 ( ) ( ) ( ) ( ) ( ) ( )

Weighted Average of Control Points Regroup for p: x(t) = 1 t ( )p 0 + tp 1 )+ t ( 1 t)p 1 + tp 2 ( )p 1 + tp 2 )+ t( 1 t)p 2 + tp 3 ) ( ) ( 1 t) 1 t +t 1 t ( ) ( ) ( ) 1 t ( ) x(t) = 1 t ( ) 3 p 0 + 3( 1 t) 2 tp 1 + 3 1 t ( )t 2 p 2 + t 3 p 3 B 0 (t ) B 6444 74448 1 (t ) 644 7448 x(t) = t 3 + 3t 2 3t + 1 p 0 + 3t 3 6t 2 + 3t ( ) ( ) + 3t 3 + 3t 2 142 43 p + t 3 2 { p 3 B 2 (t ) ( ) B 3 (t ) ( ) p 1 26

Cubic Bernstein Polynomials x(t) = B 0 ( t)p 0 + B 1 ( t)p 1 + B 2 ( t)p 2 + B 3 ( t)p 3 The cubic Bernstein polynomials : B 0 ( t)= t 3 + 3t 2 3t + 1 B 1 ( t)= 3t 3 6t 2 + 3t B 2 ( t)= 3t 3 + 3t 2 ( t)= t 3 B 3 B i (t) = 1 Weights B i (t) add up to 1 for any t 27

General Bernstein Polynomials B 1 0 B 1 1 ( t)= t + 1 B 2 0 ( t)= t 2 2t + 1 B 3 0 ( t)= t 3 + 3t 2 3t + 1 ( t)= t B 2 1 ( t)= 2t 2 + 2t B 3 1 ( t)= 3t 3 6t 2 + 3t B 2 2 ( t)= t 2 B 3 2 ( t)= 3t 3 + 3t 2 B 3 3 ( t)= t 3 28 B i n ( t)= n i ( 1 t)n i t B n i ( t) = 1 n ( ) i i = n! i! ( n i)! n! = factorial of n (n+1)! = n! x (n+1)

General Bézier Curves nth-order Bernstein polynomials form nth-order Bézier curves B i n ( t)= n ( 1 t)n i t i n i=0 x( t)= B n i ( t)p i ( ) i 29

Bézier Curve Properties Overview: Convex Hull property Variation Diminishing property Affine Invariance 30

Definitions Convex hull of a set of points: Polyhedral volume created such that all lines connecting any two points lie completely inside it (or on its boundary) Convex combination of a set of points: Weighted average of the points, where all weights between 0 and 1, sum up to 1 Any convex combination always of a set of points lies within the convex hull 31

Convex Hull Property A Bézier curve is a convex combination of the control points (by definition, see Bernstein polynomials) Bézier curve is always inside the convex hull Makes curve predictable Allows culling, intersection testing, adaptive tessellation Demo: http://www.cs.princeton.edu/~min/cs426/jar/bezier.html p 1 p 3 p 0 p 2 32

Variation Diminishing Property If the curve is in a plane, this means no straight line intersects a Bézier curve more times than it intersects the curve's control polyline Curve is not more wiggly than control polyline 33

Affine Invariance Transforming Bézier curves Two ways to transform: Transform the control points, then compute resulting spline points Compute spline points then transform them Either way, we get the same points Curve is defined via affine combination of points Invariant under affine transformations Convex hull property remains true 34

Cubic Polynomial Form Start with Bernstein form: x(t) = ( t 3 + 3t 2 3t + 1)p 0 + ( 3t 3 6t 2 + 3t)p 1 + ( 3t 3 + 3t 2 )p 2 + ( t 3 )p 3 Regroup into coefficients of t : x(t) = ( p 0 + 3p 1 3p 2 + p 3 )t 3 + ( 3p 0 6p 1 + 3p 2 )t 2 + ( 3p 0 + 3p 1 )t + ( p 0 )1 x(t) = at 3 + bt 2 + ct + d ( ) ( ) ( ) ( ) a = p 0 + 3p 1 3p 2 + p 3 b = 3p 0 6p 1 + 3p 2 c = 3p 0 + 3p 1 d = p 0 Good for fast evaluation Precompute constant coefficients (a,b,c,d) Not much geometric intuition 35

Cubic Matrix Form x(t) = a r t 3 r b c r t 2 d t 1 r a = p 0 + 3p 1 3p 2 + p 3 r b = ( 3p 0 6p 1 + 3p 2 ) r c = ( 3p 0 + 3p 1 ) d = p 0 ( ) ( ) 1 3 3 1 t 3 3 6 3 0 x(t) = [ p 0 p 1 p 2 p 3 ] t 2 3 3 0 0 t 0 0 0 1444 24443 1 444 24443 1 { T G Bez B Bez Other types of cubic splines use different basis matrices B Bez 36

Cubic Matrix Form In 3D: 3 parallel equations for x, y and z: 37 [ ] x x (t) = p 0 x p 1x p 2 x p 3x x y (t) = p 0 y p 1y p 2 y p 3y x z (t) = p 0z p 1z p 2z p 3z 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1 1 3 3 1 t 3 3 6 3 0 t 2 3 3 0 0 t 1 0 0 0 1

Matrix Form Bundle into a single matrix x(t) = 1 3 3 1 t 3 p 0 x p 1x p 2 x p 3x 3 6 3 0 p 0 y p 1y p 2 y p 3y t 2 3 3 0 0 t p 0z p 1z p 2z p 3z 1 0 0 0 1 x(t) = G Bez B Bez T x(t) = C T Efficient evaluation Pre-compute C Take advantage of existing 4x4 matrix hardware support 38

Lecture Overview Polynomial Curves cont d Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 39

Drawing Bézier Curves Draw line segments or individual pixels Approximate the curve as a series of line segments (tessellation) Uniform sampling Adaptive sampling Recursive subdivision 40

Uniform Sampling Approximate curve with N straight segments N chosen in advance Evaluate x i = x( t i ) where t i = i N for i = 0, 1,K, N Connect the points with lines Too few points? Poor approximation Curve is faceted Too many points? x i = a r i3 N + b r i2 3 N + c r i 2 N + d Slow to draw too many line segments Segments may draw on top of each other x(t) x 0 x 1 x 2 x 3 x 4 41

Adaptive Sampling Use only as many line segments as you need Fewer segments where curve is mostly flat More segments where curve bends Segments never smaller than a pixel x(t) 42

Recursive Subdivision Any cubic curve segment can be expressed as a Bézier curve Any piece of a cubic curve is itself a cubic curve Therefore: Any Bézier curve can be broken down into smaller Bézier curves 43

De Casteljau Subdivision p 1 p 0 q r 0 0 r x 1 p 2 De Casteljau construction points are the control points of two Bézier sub-segments q 2 p 3 44

Adaptive Subdivision Algorithm Use De Casteljau construction to split Bézier segment For each half If flat enough : draw line segment Else: recurse Curve is flat enough if hull is flat enough Test how far the approximating control points are from a straight segment If less than one pixel, the hull is flat enough 45

Drawing Bézier Curves With OpenGL Indirect OpenGL support for drawing curves: Define evaluator map (glmap) Draw line strip by evaluating map (glevalcoord) Optimize by pre-computing coordinate grid (glmapgrid and glevalmesh) More details about OpenGL implementation: http://www.cs.duke.edu/courses/fall09/cps124/notes/12_curves /opengl_nurbs.pdf 46

Lecture Overview Polynomial Curves cont d Bézier Curves Introduction Drawing Bézier curves Piecewise Bézier curves 47

More Control Points Cubic Bézier curve limited to 4 control points Cubic curve can only have one inflection (point where curve changes direction of bending) Need more control points for more complex curves k-1 order Bézier curve with k control points Hard to control and hard to work with Intermediate points don t have obvious effect on shape Changing any control point changes the whole curve Want local support: each control point only influences nearby portion of curve 48

Piecewise Curves Sequence of simple (low-order) curves, end-to-end Known as a piecewise polynomial curve Sequence of line segments Piecewise linear curve Sequence of cubic curve segments Piecewise cubic curve (here piecewise Bézier) 49

Mathematical Continuity C 0 continuity: Curve segments are connected C 1 continuity: C 0 & 1st-order derivatives agree at joints Tangents/normals are C 0 continuous Important for smooth shading C 2 continuity: C 1 & 2nd-order derivatives agree at joints Tangents/normals are C 1 continuous Important for high quality reflections

Global Parameterization Given N curve segments x 0 (t), x 1 (t),, x N-1 (t) Each is parameterized for t from 0 to 1 Define a piecewise curve Global parameter u from 0 to N x 0 (u), 0 u 1 x(u) = x 1 (u 1), 1 u 2 M M x N 1 (u ( N 1)), N 1 u N x(u) = x i (u i), where i = u (and x(n) = x N 1 (1)) Alternate: solution u also goes from 0 to 1 x(u) = x i (Nu i), where i = Nu 51

Piecewise-Linear Curve Given N+1 points p 0, p 1,, p N Define curve x(u) = Lerp(u i,p i,p i+1 ), i u i + 1 = (1 u + i)p i + (u i)p i+1, i = u p 1 x(1.5) x(2.9) p 3 p p 4 p 6 2 x(5.25) p p 5 0 N+1 points define N linear segments x(i)=p i C 0 continuous by construction C 1 at p i when p i -p i-1 = p i+1 -p i 52

Piecewise Bézier curve Given 3N + 1 points p 0,p 1,K,p 3N Define N Bézier segments: x 0 (t) = B 0 (t)p 0 + B 1 (t)p 1 + B 2 (t)p 2 + B 3 (t)p 3 x 1 (t) = B 0 (t)p 3 + B 1 (t)p 4 + B 2 (t)p 5 + B 3 (t)p 6 M x N 1 (t) = B 0 (t)p 3N 3 + B 1 (t)p 3N 2 + B 2 (t)p 3N 1 + B 3 (t)p 3N p 7 p 8 p 6 x 2 (t) p 9 p 0 p p 2 1 x 0 (t) p 3 x 1 (t) x 3 (t) p 10 p 11 p 12 p 4 p 5 53

Piecewise Bézier Curve Parameter in 0<=u<=3N x(u) = x 0 ( 1 u), 0 u 3 3 x 1 ( 1 u 1), 3 u 6 3 M M x N 1 ( 1 3 u (N 1)), 3N 3 u 3N 1 x(u) = x i ( u i 3 ), where i = 1 u 3 x(8.75) x 0 (t) x 1 (t) x 2 (t) x 3 (t) u=0 x(3.5) u=12 54

Piecewise Bézier Curve 3N+1 points define N Bézier segments x(3i)=p 3i C 0 continuous by construction C 1 continuous at p 3i when p 3i - p 3i-1 = p 3i+1 - p 3i C 2 is harder to achieve p 4 p 1 p 2 P 3 p 6 p 1 p 2 P 3 p 6 p 4 p 5 p 0 p 5 p 0 C 1 discontinuous C 1 continuous 55

Piecewise Bézier Curves Used often in 2D drawing programs Inconveniences Must have 4 or 7 or 10 or 13 or (1 plus a multiple of 3) control points Some points interpolate, others approximate Need to impose constraints on control points to obtain C 1 continuity C 2 continuity more difficult Solutions User interface using Bézier handles Generalization to B-splines or NURBS 56

Bézier Handles Segment end points (interpolating) presented as curve control points Midpoints (approximating points) presented as handles Can have option to enforce C 1 continuity Adobe Illustrator 57

Next Lecture Parametric surfaces 58