CMSC427 Parametric curves: Hermite, Catmull-Rom, Bezier

Size: px
Start display at page:

Download "CMSC427 Parametric curves: Hermite, Catmull-Rom, Bezier"

Transcription

1 CMSC427 Parametric curves: Hermite, Catmull-Rom, Bezier

2 Modeling Creating 3D objects How to construct complicated surfaces? Goal Specify objects with few control points Resulting object should be visually pleasing (smooth) Start with curves, then generalize to surfaces 2

3 Usefulness of curves Surface of revolution 3

4 Usefulness of curves Extruded/swept surfaces 4

5 Usefulness of curves Animation Provide a track for objects Use as camera path 5

6 Usefulness of curves Generalize to surface patches using grids of curves, next class 6

7 How to represent curves Specify every point along curve? Hard to get precise, smooth results Too much data, too hard to work with Idea: specify curves using small numbers of control points Mathematics: use polynomials to represent curves Control point 7

8 Interpolating polynomial curves Curve goes through all control points Seems most intuitive Surprisingly, not usually the best choice Hard to predict behavior Overshoots, wiggles Hard to get nice-looking curves Control point Interpolating curve 8

9 Approximating polynomial curves Curve is influenced by control points Control point Various types & techniques based on polynomial functions Bézier curves, B-splines, NURBS Focus on Bézier curves 9

10 Mathematical definition A vector valued function of one variable x(t) Given t, compute a 3D point x=(x,y,z) May interpret as three functions x(t), y(t), z(t) Moving a point along the curve x(t) z y x(0.0) x(0.5) x(1.0) x 10

11 Tangent vector Derivative A vector that points in the direction of movement Length of x (t) corresponds to speed x(t) z y x (0.0) x (0.5) x (1.0) x 11

12 Piecewise polynomial curves Model complex shapes by sequence Use polyline to store control points 12

13 Continuity How piecewise curves join Ck continuity kth derivatives match Gk continuity kth derivatives are proportional 13

14 Hermite curves Cubic curve (here 2D) x t = at 3 + bt 6 + ct + d y t = et 3 + ft 6 + gt + h Interpolates end points P0 and P1 Matches tangent at endpoints T0 and T1 (also dp0 and dp1 in these notes). P1 = (x1,y1) T1=<dx1,dy1> P0=(x0,y0) T0=<dx0,dy0>

15 Computing coefficients a, b, c and d Derivative of x(t) x t = 3at 6 + 2bt + c Set t = 0 and 1 for endpoints Four constraints x 0 = d x (0) = c x 1 = a + b + c + d x 1 = 3a + 2b + c

16 Solve for a, b, c and d Solve for a, b, c and d d = x0 c = dx0 b = 3x0 + 3x1 2dx0 dx1 a = 2x0 2x1 + dx0 + dx1

17 Matrix version Constraints x 0 = d x (0) = c x 1 = a + b + c + d x 1 = 3a + 2b + c Give a b c d = x0 x1 dx0 dx1

18 Solve matrix version: basis matrix Since we have MA = G We can solve with A = M \] G And get Hermite basis matrix M \] a b c d = x0 x1 dx0 dx1

19 Vector version To include x, y and z, rewrite with vectors P0, P1 and tangents T0 and T1 a b c d = P0 P1 T0 T1 Coefficients a, b, c and d are now vectors

20 Full polynomial version Rewrite polynomial as dot product P t = t 3 t 6 t 1 a b c d = t 3 t 6 t P0 P1 T0 T1

21 Blending functions Instead of polynomial in t, look at curve as weighted sum of P0, P1, T0 and T1 x t = 2x0 2x1 + dx0 + dx1 t 3 + 3x0 + 3x1 2dx0 dx1 t 6 + dx0 t +x0

22 Blending functions Instead of polynomial in t, look at curve as weighted sum of P0, P1, T0 and T1 x t = 2t 3 3t x0 + 2t 3 + 3t 6 x1 + t 3 2t 6 + t dx0 + t 3 t 6 dx1

23 Blending functions h00(t) = 2t 3 3t h01(t) = 2t 3 + 3t 6 h10(t) = t 3 2t 6 + t h11(t) = t 3 t 6

24 Computing Hermite tangents Have P(-1), P0, P1 and P2 as input Compute tangent with H matrix x0 x1 dx0 dx1 = x o x ] x \] x 6

25 Combine with Hermite basis Unify notation a b c d = x o x ] x \] x 6 Final matrix a b c d = x o x ] x \] x 6

26 Catmull-Rom curves Hermite problem with C1 continuity P1 left P3 right P5 P0 P2 P4

27 Catmull-Rom curves Catmull-Rom make tangent symmetric Define by two adjacent points Here T3 = P4-P2 P1 P3 P5 P0 P2 P4

28 Catmull-Rom curves Need to change H matrix ½ traditional for C-R curves x0 x1 dx0 dx1 = /2 0 1/2 0 1/ /2 x o x ] x \] x 6

29 Catmull-Rom curves Which gives a b c d = /2 0 1/2 0 1/ /2 x o x ] x \] x 6 Or a b c d = x o x ] x \] x 6

30 Bézier curves A particularly intuitive way to define control points for polynomial curves Developed for CAD (computer aided design) and manufacturing Before games, before movies, CAD was the big application for CG Pierre Bézier (1962), design of auto bodies for Peugeot, Paul de Casteljau (1959), for Citroen 30

31 Bézier curves Higher order extension of linear interpolation Control points p 0, p 1,... p 1 p 1 p 2 p 1 p 3 p 0 p 0 p 0 p 2 Linear Quadratic Cubic 31

32 Bézier curves Intuitive control over curve given control points Endpoints are interpolated, intermediate points are approximated Convex Hull property Variation-diminishing property 32

33 Cubic Bézier curve Cubic polynomials, most common case Defined by 4 control points Two interpolated endpoints Two midpoints control the tangent at the endpoints p 1 x(t) p 0 p 2 Control polyline p 3 33

34 Bézier Curve formulation Three alternatives, analogous to linear case 1. Weighted average of control points 2. Cubic polynomial function of t 3. Matrix form Algorithmic construction de Casteljau algorithm 34

35 de Casteljau Algorithm A recursive series of linear interpolations Works for any order, not only cubic Not terribly efficient to evaluate Other forms more commonly used Why study it? Intuition about the geometry Useful for subdivision (later today) 35

36 de Casteljau Algorithm Given the control points A value of t Here t 0.25 p 1 p 0 p 2 p 3 36

37 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 37

38 de Casteljau Algorithm q 0 r 0 q 1 r 0 (t) = Lerp( t,q 0 (t),q 1 (t)) r 1 (t) = Lerp( t,q 1 (t),q 2 (t)) r 1 q 2 38

39 de Casteljau Algorithm r 0 x r 1 x(t) = Lerp( t,r 0 (t),r 1 (t)) 39

40 de Casteljau algorithm p 1 p 0 x p 2 Applets p 3 40

41 de Casteljau Algorithm Linear Quadratic Cubic Quartic 41

42 Recursive linear interpolation x = Lerp t,r 0,r 1 r = Lerp ( t,q,q ) 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 42

43 Recursive linear interpolation x = Lerp t,r 0,r 1 r = Lerp ( t,q,q ) 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 43

44 Recursive linear interpolation x = Lerp t,r 0,r 1 r = Lerp ( t,q,q ) 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 44

45 Recursive linear interpolation x = Lerp t,r 0,r 1 r = Lerp ( t,q,q ) 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 45

46 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 46

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

48 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 48

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

50 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 50

51 Weighted average of control points Regroup 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 " $$$ # $$$ % 1 (t ) " $$ # $$ % x(t) = -t 3 + 3t 2-3t + 1 p 0 + 3t 3-6t 2 + 3t! + -3t 3 + 3t 2 & $ ' $ ( p 2 + t 3 ) p 3 B 2 (t ) B 3 (t ) p 1 51

52 Weighted average of control points Regroup 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 " $$$ # $$$ % 1 (t ) " $$ # $$ % x(t) = -t 3 + 3t 2-3t + 1 p 0 + 3t 3-6t 2 + 3t! + -3t 3 + 3t 2 & $ ' $ ( p 2 + t 3 ) p 3 B 2 (t ) B 3 (t ) p 1 52

53 Weighted average of control points Regroup 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 " $$$ # $$$ % 1 (t ) " $$ # $$ % x(t) = -t 3 + 3t 2-3t + 1 p 0 + 3t 3-6t 2 + 3t! + -3t 3 + 3t 2 & $ ' $ ( p 2 + t 3 ) p 3 B 2 (t ) B 3 (t ) p 1 Bernstein polynomials 53

54 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 Partition of unity, at each t always add to 1 Endpoint interpolation, B 0 and B 3 go to 1 54

55 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 B i n æ ( t)= n ö è ç i ø ( 1- t)n-i t å B n i ( t) = 1 n i æ ö è ç i ø = n! i! ( n - i)! 55

56 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 B i n æ ( t)= n ö è ç i ø ( 1- t)n-i t å B n i ( t) = 1 n i æ ö è ç i ø = n! i! ( n - i)! 56

57 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 B i n æ ( t)= n ö è ç i ø ( 1- t)n-i t å B n i ( t) = 1 n i æ ö è ç i ø = n! i! ( n - i)! 57

58 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 Order n: B i n æ ( t)= n ö è ç i ø ( 1- t)n-i t å B n i ( t) = 1 n i æ ö è ç i ø = n! i! ( n - i)! Partition of unity, endpoint interpolation 58

59 General Bézier curves nth-order Bernstein polynomials form nth-order Bézier curves Bézier curves are weighted sum of control points using nth-order Bernstein polynomials Bernstein polynomials of order n: Bézier curve of order n: B i n æ ( t)= n ö è ç i ø ( 1- t)n-i t n å i=0 x( t)= B n i ( t)p i i 59

60 Bézier curve properties Convex hull property Variation diminishing property Affine invariance 60

61 Convex hull, convex combination Convex hull of a set of points Smallest polyhedral volume such that (i) all points are in it (ii) line connecting any two points in the volume lies completely inside it (or on its boundary) Convex combination of the points Weighted average of the points, where weights all between 0 and 1, sum up to 1 Any convex combination always lies within the convex hull p 1 p 3 Convex hull p 0 p 2 61

62 Convex hull property Bézier curve is a convex combination of the control points Bernstein polynomials add to 1 at each value of t Curve is always inside the convex hull of control points Makes curve predictable Allows efficient culling, intersection testing, adaptive tessellation p 1 p 3 p 0 p 2 62

63 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 Yellow line: 7 intersections with control polyline 3 intersections with curve 63

64 Affine invariance Two ways to transform Bézier curves 1. Transform the control points, then compute resulting point on curve 2. Compute point on curve, then transform it Either way, get the same transform point! Curve is defined via affine combination of points (convex combination is special case of an affine combination) Invariant under affine transformations Convex hull property always remains 64

65 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 a = (-p 0 + 3p 1-3p 2 + p 3 ) b = ( 3p x(t) = at 3 + bt 2 0-6p 1 + 3p 2 ) + ct + d c = (-3p 0 + 3p 1 ) Good for fast evaluation, precompute constant d = coefficients (a,b,c,d) ( p 0 ) Not much geometric intuition 65

66 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 a = (-p 0 + 3p 1-3p 2 + p 3 ) b = ( 3p x(t) = at 3 + bt 2 0-6p 1 + 3p 2 ) + ct + d c = (-3p 0 + 3p 1 ) Good for fast evaluation, precompute constant d = coefficients (a,b,c,d) ( p 0 ) Not much geometric intuition 66

67 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 a = (-p 0 + 3p 1-3p 2 + p 3 ) b = ( 3p x(t) = at 3 + bt 2 0-6p 1 + 3p 2 ) + ct + d c = (-3p 0 + 3p 1 ) d = ( p 0 ) Good for fast evaluation, precompute constant coefficients (a,b,c,d) Not much geometric intuition 67

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

69 Cubic matrix form x(t) = éë a " ét 3 ù " b c " ê t 2 ú dù ê ú û ê t ú ê ú ë 1 û " a = -p 0 + 3p 1-3p 2 + p 3 " b = ( 3p 0-6p 1 + 3p 2 ) " c = (-3p 0 + 3p 1 ) d = p 0 é ù ét 3 ù ê ú ê x(t) = [ p 0 p 1 p 2 p 3 ] ê ú t 2 ú ê ú ê ú ê t ú ê ú ê ú #%%% $ %%%& ë# %%% $ %%%& û ë 1 ' û G! Bez B Bez T Can construct other cubic curves by just using different basis matrix B Hermite, Catmull-Rom, B-Spline, 69

70 Cubic matrix form 3 parallel equations, in x, y and z: [ ] 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 ù û é ù ét 3 ù ê ú ê ê ú t 2 ú ê ú ê ú ê t ú ê ú ê ú ë û ë 1 û é ù ét 3 ù ê ú ê ê ú t 2 ú ê ú ê ú ê t ú ê ú ê ú ë û ë 1 û é ù ét 3 ù ê ú ê ê ú t 2 ú ê ú ùû ê ú ê t ú ê ú ê ú ë û ë 1 û 70

71 Matrix form Bundle into a single matrix x(t) = é ù ét 3 ù é p 0 x p 1x p 2 x p 3x ù ê ê ú ú ê ê p 0 y p 1y p 2 y p 3y ê ú t 2 ú ê ú ú ê ú ê t ú ëê p 0z p 1z p 2z p 3z ûú ê ú ê ú ë û ë 1 û x(t) = G Bez B Bez T x(t) = C T Efficient evaluation Precompute C Take advantage of existing 4x4 matrix hardware support 71

72 Drawing Bézier curves Generally no low-level support for drawing smooth curves I.e., GPU draws only straight line segments Need to break curves into line segments or individual pixels Approximating curves as series of line segments called tessellation Tessellation algorithms Uniform sampling Adaptive sampling Recursive subdivision 72

73 Uniform sampling Approximate curve with N-1 straight segments N chosen in advance Evaluate x i = x( t i ) where t i = i N for i = 0, 1,", N Connect the x i points = a # i3 with lines! N + b # i2 3 N + c # i 2 N + d Too few points? Bad approximation Curve is faceted Too many points? Slow to draw too many line segments x 0 Segments may draw on top of each other x(t) x 1 x 2 x 3 x4 73

74 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 Various schemes for sampling, checking results, deciding whether to sample more x(t) 74

75 Recursive Subdivision Any cubic (or k-th order) curve segment can be expressed as a cubic (or k-th order) Bézier curve Any piece of a cubic (or k-th order) curve is itself a cubic (or k-th order) curve Therefore, any Bézier curve can be subdivided into smaller Bézier curves 75

76 de Casteljau subdivision p 1 p 0 q r 0 0 r x 1 p 2 q 2 de Casteljau construction points are the control points of two Bézier sub-segments (p 0,q 0,r 0,x) and (x,r 1,q 2,p 3 ) p 3 76

77 Adaptive subdivision algorithm 1. Use de Casteljau construction to split Bézier segment in middle (t=0.5) 2. For each half If flat enough : draw line segment Else: recurse from 1. for each half Curve is flat enough if hull is flat enough Test how far away midpoints are from straight segment connecting start and end If about a pixel, then hull is flat enough 77

78 Today Curves Introduction Polynomial curves Bézier curves Drawing Bézier curves Piecewise curves 78

79 More control points Cubic Bézier curve limited to 4 control points Cubic curve can only have one inflection 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 79

80 Piecewise curves (splines) Sequence of simple (low-order) curves, end-to-end Piecewise polynomial curve, or splines Sequence of line segments Piecewise linear curve (linear or first-order spline) Sequence of cubic curve segments Piecewise cubic curve, here piecewise Bézier (cubic spline) 80

81 Piecewise cubic Bézier curve Given 3N + 1 points p 0,p 1,",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 #! x N -1 (t) = B 0 (t)p 3N B 1 (t)p 3N -2 + B 2 (t)p 3N -1 + B 3 (t)p 3N p 7 p 8 p 0 p p 2 1 x 0 (t) p 3 x 1 (t) p 6 x 2 (t) p 9 x 3 (t) p 10 p 11 p 12 p 4 p 5 81

82 Piecewise cubic Bézier curve Global parameter u, 0<=u<=3N x(u) = ìx 0 ( 1 u), 0 u 3 3 ïx 1 ( 1 u - 1), 3 u 6 3 í ï" " î ï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 82

83 Continuity Want smooth curves C 0 continuity No gaps Segments match at the endpoints C 1 continuity: first derivative is well defined No corners Tangents/normals are C 0 continuous (no jumps) C 2 continuity: second derivative is well defined Tangents/normals are C 1 continuous Important for high quality reflections on surfaces 83

84 Piecewise cubic Bézier curve C 0 continuous by construction C 1 continuous at segment endpoints p 3i if p 3i - p 3i-1 = p 3i+1 - p 3i C 2 is harder to get p 4 p 2 p 1 p 2 P 3 p p 1 P 6 p 3 6 p 4 p 5 p 0 p 0 C 0 continuous p 5 C 1 continuous 84

85 Piecewise cubic 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 (endpoints), others approximate (handles) 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, next time 85

86 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 86

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016 Computergrafik Matthias Zwicker Universität Bern Herbst 2016 2 Today Curves Introduction Polynomial curves Bézier curves Drawing Bézier curves Piecewise curves Modeling Creating 3D objects How to construct

More information

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

CSE 167: Lecture 11: Bézier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 CSE 167: Introduction to Computer Graphics Lecture 11: Bézier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2012 Announcements Homework project #5 due Nov. 9 th at 1:30pm

More information

Interpolation and polynomial approximation Interpolation

Interpolation and polynomial approximation Interpolation Outline Interpolation and polynomial approximation Interpolation Lagrange Cubic Splines Approximation B-Splines 1 Outline Approximation B-Splines We still focus on curves for the moment. 2 3 Pierre Bézier

More information

Lecture 20: Bezier Curves & Splines

Lecture 20: Bezier Curves & Splines Lecture 20: Bezier Curves & Splines December 6, 2016 12/6/16 CSU CS410 Bruce Draper & J. Ross Beveridge 1 Review: The Pen Metaphore Think of putting a pen to paper Pen position described by time t Seeing

More information

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

Introduction to Computer Graphics. Modeling (1) April 13, 2017 Kenshi Takayama Introduction to Computer Graphics Modeling (1) April 13, 2017 Kenshi Takayama Parametric curves X & Y coordinates defined by parameter t ( time) Example: Cycloid x t = t sin t y t = 1 cos t Tangent (aka.

More information

Bézier Curves and Splines

Bézier Curves and Splines 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

More information

Lecture 23: Hermite and Bezier Curves

Lecture 23: Hermite and Bezier Curves Lecture 23: Hermite and Bezier Curves November 16, 2017 11/16/17 CSU CS410 Fall 2017, Ross Beveridge & Bruce Draper 1 Representing Curved Objects So far we ve seen Polygonal objects (triangles) and Spheres

More information

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

Arsène Pérard-Gayot (Slides by Piotr Danilewski) Computer Graphics - Splines - Arsène Pérard-Gayot (Slides by Piotr Danilewski) CURVES Curves Explicit y = f x f: R R γ = x, f x y = 1 x 2 Implicit F x, y = 0 F: R 2 R γ = x, y : F x, y = 0 x 2 + y 2 =

More information

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

M2R IVR, October 12th Mathematical tools 1 - Session 2 Mathematical tools 1 Session 2 Franck HÉTROY M2R IVR, October 12th 2006 First session reminder Basic definitions Motivation: interpolate or approximate an ordered list of 2D points P i n Definition: spline

More information

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.

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. 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. Your exam will have 1. (0 points) Circle T or T T Any curve

More information

Bernstein polynomials of degree N are defined by

Bernstein polynomials of degree N are defined by SEC. 5.5 BÉZIER CURVES 309 5.5 Bézier Curves Pierre Bézier at Renault and Paul de Casteljau at Citroën independently developed the Bézier curve for CAD/CAM operations, in the 1970s. These parametrically

More information

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

Curves. Hakan Bilen University of Edinburgh. Computer Graphics Fall Some slides are courtesy of Steve Marschner and Taku Komura Curves Hakan Bilen University of Edinburgh Computer Graphics Fall 2017 Some slides are courtesy of Steve Marschner and Taku Komura How to create a virtual world? To compose scenes We need to define objects

More information

The Essentials of CAGD

The Essentials of CAGD The Essentials of CAGD Chapter 4: Bézier Curves: Cubic and Beyond Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book www.farinhansford.com/books/essentials-cagd c 2000

More information

MAT300/500 Programming Project Spring 2019

MAT300/500 Programming Project Spring 2019 MAT300/500 Programming Project Spring 2019 Please submit all project parts on the Moodle page for MAT300 or MAT500. Due dates are listed on the syllabus and the Moodle site. You should include all neccessary

More information

Approximation of Circular Arcs by Parametric Polynomials

Approximation of Circular Arcs by Parametric Polynomials Approximation of Circular Arcs by Parametric Polynomials Emil Žagar Lecture on Geometric Modelling at Charles University in Prague December 6th 2017 1 / 44 Outline Introduction Standard Reprezentations

More information

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

CGT 511. Curves. Curves. Curves. What is a curve? 2) A continuous map of a 1D space to an nd space Curves CGT 511 Curves Bedřich Beneš, Ph.D. Purdue University Department of Computer Graphics Technology What is a curve? Mathematical ldefinition i i is a bit complex 1) The continuous o image of an interval

More information

Reading. w Foley, Section 11.2 Optional

Reading. w Foley, Section 11.2 Optional Parametric Curves w Foley, Section.2 Optional Reading w Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics and Geometric Modeling, 987. w Farin. Curves and Surfaces for

More information

Curves, Surfaces and Segments, Patches

Curves, Surfaces and Segments, Patches Curves, Surfaces and Segments, atches The University of Texas at Austin Conics: Curves and Quadrics: Surfaces Implicit form arametric form Rational Bézier Forms and Join Continuity Recursive Subdivision

More information

On-Line Geometric Modeling Notes

On-Line Geometric Modeling Notes On-Line Geometric Modeling Notes CUBIC BÉZIER CURVES Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview The Bézier curve representation

More information

Computer Graphics Keyframing and Interpola8on

Computer Graphics Keyframing and Interpola8on Computer Graphics Keyframing and Interpola8on This Lecture Keyframing and Interpola2on two topics you are already familiar with from your Blender modeling and anima2on of a robot arm Interpola2on linear

More information

MA 323 Geometric Modelling Course Notes: Day 12 de Casteljau s Algorithm and Subdivision

MA 323 Geometric Modelling Course Notes: Day 12 de Casteljau s Algorithm and Subdivision MA 323 Geometric Modelling Course Notes: Day 12 de Casteljau s Algorithm and Subdivision David L. Finn Yesterday, we introduced barycentric coordinates and de Casteljau s algorithm. Today, we want to go

More information

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

Keyframing. CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Keyframing CS 448D: Character Animation Prof. Vladlen Koltun Stanford University Keyframing in traditional animation Master animator draws key frames Apprentice fills in the in-between frames Keyframing

More information

MA 323 Geometric Modelling Course Notes: Day 07 Parabolic Arcs

MA 323 Geometric Modelling Course Notes: Day 07 Parabolic Arcs MA 323 Geometric Modelling Course Notes: Day 07 Parabolic Arcs David L. Finn December 9th, 2004 We now start considering the basic curve elements to be used throughout this course; polynomial curves and

More information

1.1. The analytical denition. Denition. The Bernstein polynomials of degree n are dened analytically:

1.1. The analytical denition. Denition. The Bernstein polynomials of degree n are dened analytically: DEGREE REDUCTION OF BÉZIER CURVES DAVE MORGAN Abstract. This paper opens with a description of Bézier curves. Then, techniques for the degree reduction of Bézier curves, along with a discussion of error

More information

Animation Curves and Splines 1

Animation Curves and Splines 1 Animation Curves and Splines 1 Animation Homework Set up a simple avatar E.g. cube/sphere (or square/circle if 2D) Specify some key frames (positions/orientations) Associate a time with each key frame

More information

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

Home Page. Title Page. Contents. Bezier Curves. Milind Sohoni  sohoni. Page 1 of 27. Go Back. Full Screen. Close. Bezier Curves Page 1 of 27 Milind Sohoni http://www.cse.iitb.ac.in/ sohoni Recall Lets recall a few things: 1. f : [0, 1] R is a function. 2. f 0,..., f i,..., f n are observations of f with f i = f( i

More information

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

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

More information

Interpolation and polynomial approximation Interpolation

Interpolation and polynomial approximation Interpolation Outline Interpolation and polynomial approximation Interpolation Lagrange Cubic Approximation Bézier curves B- 1 Some vocabulary (again ;) Control point : Geometric point that serves as support to the

More information

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

Smooth Path Generation Based on Bézier Curves for Autonomous Vehicles Smooth Path Generation Based on Bézier Curves for Autonomous Vehicles Ji-wung Choi, Renwick E. Curry, Gabriel Hugh Elkaim Abstract In this paper we present two path planning algorithms based on Bézier

More information

Cubic Splines; Bézier Curves

Cubic Splines; Bézier Curves Cubic Splines; Bézier Curves 1 Cubic Splines piecewise approximation with cubic polynomials conditions on the coefficients of the splines 2 Bézier Curves computer-aided design and manufacturing MCS 471

More information

Spiral spline interpolation to a planar spiral

Spiral spline interpolation to a planar spiral Spiral spline interpolation to a planar spiral Zulfiqar Habib Department of Mathematics and Computer Science, Graduate School of Science and Engineering, Kagoshima University Manabu Sakai Department of

More information

CMSC427 Geometry and Vectors

CMSC427 Geometry and Vectors CMSC427 Geometry and Vectors Review: where are we? Parametric curves and Hw1? Going beyond the course: generative art https://www.openprocessing.org Brandon Morse, Art Dept, ART370 Polylines, Processing

More information

Lagrange Interpolation and Neville s Algorithm. Ron Goldman Department of Computer Science Rice University

Lagrange Interpolation and Neville s Algorithm. Ron Goldman Department of Computer Science Rice University Lagrange Interpolation and Neville s Algorithm Ron Goldman Department of Computer Science Rice University Tension between Mathematics and Engineering 1. How do Mathematicians actually represent curves

More information

Computer Aided Design. B-Splines

Computer Aided Design. B-Splines 1 Three useful references : R. Bartels, J.C. Beatty, B. A. Barsky, An introduction to Splines for use in Computer Graphics and Geometric Modeling, Morgan Kaufmann Publications,1987 JC.Léon, Modélisation

More information

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

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 Bezier Curves an Splines December 1, 2015 Announcements PA4 ue one week from toay Submit your most fun test cases, too! Infinitely thin planes with parallel sies μ oesn t matter Term Paper ue one week

More information

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

The degree of the polynomial function is n. We call the term the leading term, and is called the leading coefficient. 0 = Math 1310 A polynomial function is a function of the form = + + +...+ + where 0,,,, are real numbers and n is a whole number. The degree of the polynomial function is n. We call the term the leading term,

More information

Geometric Lagrange Interpolation by Planar Cubic Pythagorean-hodograph Curves

Geometric Lagrange Interpolation by Planar Cubic Pythagorean-hodograph Curves Geometric Lagrange Interpolation by Planar Cubic Pythagorean-hodograph Curves Gašper Jaklič a,c, Jernej Kozak a,b, Marjeta Krajnc b, Vito Vitrih c, Emil Žagar a,b, a FMF, University of Ljubljana, Jadranska

More information

AFFINE COMBINATIONS, BARYCENTRIC COORDINATES, AND CONVEX COMBINATIONS

AFFINE COMBINATIONS, BARYCENTRIC COORDINATES, AND CONVEX COMBINATIONS On-Line Geometric Modeling Notes AFFINE COMBINATIONS, BARYCENTRIC COORDINATES, AND CONVEX COMBINATIONS Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University

More information

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

Midterm 1 Review. Distance = (x 1 x 0 ) 2 + (y 1 y 0 ) 2. Midterm 1 Review Comments about the midterm The midterm will consist of five questions and will test on material from the first seven lectures the material given below. No calculus either single variable

More information

Curve Fitting: Fertilizer, Fonts, and Ferraris

Curve Fitting: Fertilizer, Fonts, and Ferraris Curve Fitting: Fertilizer, Fonts, and Ferraris Is that polynomial a model or just a pretty curve? 22 nd CMC3-South Annual Conference March 3, 2007 Anaheim, CA Katherine Yoshiwara Bruce Yoshiwara Los Angeles

More information

F O R SOCI AL WORK RESE ARCH

F O R SOCI AL WORK RESE ARCH 7 TH EUROPE AN CONFERENCE F O R SOCI AL WORK RESE ARCH C h a l l e n g e s i n s o c i a l w o r k r e s e a r c h c o n f l i c t s, b a r r i e r s a n d p o s s i b i l i t i e s i n r e l a t i o n

More information

Polynomial approximation and Splines

Polynomial approximation and Splines Polnomial approimation and Splines 1. Weierstrass approimation theorem The basic question we ll look at toda is how to approimate a complicated function f() with a simpler function P () f() P () for eample,

More information

MA 323 Geometric Modelling Course Notes: Day 11 Barycentric Coordinates and de Casteljau s algorithm

MA 323 Geometric Modelling Course Notes: Day 11 Barycentric Coordinates and de Casteljau s algorithm MA 323 Geometric Modelling Course Notes: Day 11 Barycentric Coordinates and de Casteljau s algorithm David L. Finn December 16th, 2004 Today, we introduce barycentric coordinates as an alternate to using

More information

Curvature variation minimizing cubic Hermite interpolants

Curvature variation minimizing cubic Hermite interpolants Curvature variation minimizing cubic Hermite interpolants Gašper Jaklič a,b, Emil Žagar,a a FMF and IMFM, University of Ljubljana, Jadranska 19, Ljubljana, Slovenia b PINT, University of Primorska, Muzejski

More information

An O(h 2n ) Hermite approximation for conic sections

An O(h 2n ) Hermite approximation for conic sections An O(h 2n ) Hermite approximation for conic sections Michael Floater SINTEF P.O. Box 124, Blindern 0314 Oslo, NORWAY November 1994, Revised March 1996 Abstract. Given a segment of a conic section in the

More information

13 Path Planning Cubic Path P 2 P 1. θ 2

13 Path Planning Cubic Path P 2 P 1. θ 2 13 Path Planning Path planning includes three tasks: 1 Defining a geometric curve for the end-effector between two points. 2 Defining a rotational motion between two orientations. 3 Defining a time function

More information

Visualizing Bezier s curves: some applications of Dynamic System Geogebra

Visualizing Bezier s curves: some applications of Dynamic System Geogebra Visualizing Bezier s curves: some applications of Dynamic System Geogebra Francisco Regis Vieira Alves Instituto Federal de Educação, Ciência e Tecnologia do Estado do Ceará IFCE. Brazil fregis@ifce.edu.br

More information

Engineering 7: Introduction to computer programming for scientists and engineers

Engineering 7: Introduction to computer programming for scientists and engineers Engineering 7: Introduction to computer programming for scientists and engineers Interpolation Recap Polynomial interpolation Spline interpolation Regression and Interpolation: learning functions from

More information

G-code and PH curves in CNC Manufacturing

G-code and PH curves in CNC Manufacturing G-code and PH curves in CNC Manufacturing Zbyněk Šír Institute of Applied Geometry, JKU Linz The research was supported through grant P17387-N12 of the Austrian Science Fund (FWF). Talk overview Motivation

More information

Subdivision Matrices and Iterated Function Systems for Parametric Interval Bezier Curves

Subdivision Matrices and Iterated Function Systems for Parametric Interval Bezier Curves International Journal of Video&Image Processing Network Security IJVIPNS-IJENS Vol:7 No:0 Subdivision Matrices Iterated Function Systems for Parametric Interval Bezier Curves O. Ismail, Senior Member,

More information

Hermite Interpolation with Euclidean Pythagorean Hodograph Curves

Hermite Interpolation with Euclidean Pythagorean Hodograph Curves Hermite Interpolation with Euclidean Pythagorean Hodograph Curves Zbyněk Šír Faculty of Mathematics and Physics, Charles University in Prague Sokolovská 83, 86 75 Praha 8 zbynek.sir@mff.cuni.cz Abstract.

More information

Novel polynomial Bernstein bases and Bézier curves based on a general notion of polynomial blossoming

Novel polynomial Bernstein bases and Bézier curves based on a general notion of polynomial blossoming See discussions, stats, and author profiles for this publication at: https://www.researchgate.net/publication/283943635 Novel polynomial Bernstein bases and Bézier curves based on a general notion of polynomial

More information

Course Notes Math 275 Boise State University. Shari Ultman

Course Notes Math 275 Boise State University. Shari Ultman Course Notes Math 275 Boise State University Shari Ultman Fall 2017 Contents 1 Vectors 1 1.1 Introduction to 3-Space & Vectors.............. 3 1.2 Working With Vectors.................... 7 1.3 Introduction

More information

Moving Along a Curve with Specified Speed

Moving Along a Curve with Specified Speed Moving Along a Curve with Specified Speed David Eberly, Geometric Tools, Redmond WA 98052 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International

More information

Continuous Curvature Path Generation Based on Bézier Curves for Autonomous Vehicles

Continuous Curvature Path Generation Based on Bézier Curves for Autonomous Vehicles Continuous Curvature Path Generation Based on Bézier Curves for Autonomous Vehicles Ji-wung Choi, Renwick E. Curry, Gabriel Hugh Elkaim Abstract In this paper we present two path planning algorithms based

More information

Self-Influencing Interpolation in Groundwater Flow

Self-Influencing Interpolation in Groundwater Flow Self-Influencing Interpolation in Groundwater Flow Carolyn Atwood Whitman College Walla Walla, WA Robert Hildebrand University of Puget Sound Tacoma, WA Andrew Homan Ohio Northern University Ada, OH July

More information

Math 1310 Section 4.1: Polynomial Functions and Their Graphs. A polynomial function is a function of the form ...

Math 1310 Section 4.1: Polynomial Functions and Their Graphs. A polynomial function is a function of the form ... Math 1310 Section 4.1: Polynomial Functions and Their Graphs A polynomial function is a function of the form... where 0,,,, are real numbers and n is a whole number. The degree of the polynomial function

More information

Limits and Continuity. 2 lim. x x x 3. lim x. lim. sinq. 5. Find the horizontal asymptote (s) of. Summer Packet AP Calculus BC Page 4

Limits and Continuity. 2 lim. x x x 3. lim x. lim. sinq. 5. Find the horizontal asymptote (s) of. Summer Packet AP Calculus BC Page 4 Limits and Continuity t+ 1. lim t - t + 4. lim x x x x + - 9-18 x-. lim x 0 4-x- x 4. sinq lim - q q 5. Find the horizontal asymptote (s) of 7x-18 f ( x) = x+ 8 Summer Packet AP Calculus BC Page 4 6. x

More information

Homework 5: Sampling and Geometry

Homework 5: Sampling and Geometry Homework 5: Sampling and Geometry Introduction to Computer Graphics and Imaging (Summer 2012), Stanford University Due Monday, August 6, 11:59pm You ll notice that this problem set is a few more pages

More information

Planar interpolation with a pair of rational spirals T. N. T. Goodman 1 and D. S. Meek 2

Planar interpolation with a pair of rational spirals T. N. T. Goodman 1 and D. S. Meek 2 Planar interpolation with a pair of rational spirals T N T Goodman and D S Meek Abstract Spirals are curves of one-signed monotone increasing or decreasing curvature Spiral segments are fair curves with

More information

Characterization of Planar Cubic Alternative curve. Perak, M sia. M sia. Penang, M sia.

Characterization of Planar Cubic Alternative curve. Perak, M sia. M sia. Penang, M sia. Characterization of Planar Cubic Alternative curve. Azhar Ahmad α, R.Gobithasan γ, Jamaluddin Md.Ali β, α Dept. of Mathematics, Sultan Idris University of Education, 59 Tanjung Malim, Perak, M sia. γ Dept

More information

Scientific Computing: An Introductory Survey

Scientific Computing: An Introductory Survey Scientific Computing: An Introductory Survey Chapter 7 Interpolation Prof. Michael T. Heath Department of Computer Science University of Illinois at Urbana-Champaign Copyright c 2002. Reproduction permitted

More information

MA 323 Geometric Modelling Course Notes: Day 20 Curvature and G 2 Bezier splines

MA 323 Geometric Modelling Course Notes: Day 20 Curvature and G 2 Bezier splines MA 323 Geometric Modelling Course Notes: Day 20 Curvature and G 2 Bezier splines David L. Finn Yesterday, we introduced the notion of curvature and how it plays a role formally in the description of curves,

More information

Introduction. Chapter Points, Vectors and Coordinate Systems

Introduction. Chapter Points, Vectors and Coordinate Systems Chapter 1 Introduction Computer aided geometric design (CAGD) concerns itself with the mathematical description of shape for use in computer graphics, manufacturing, or analysis. It draws upon the fields

More information

1 Roots of polynomials

1 Roots of polynomials CS348a: Computer Graphics Handout #18 Geometric Modeling Original Handout #13 Stanford University Tuesday, 9 November 1993 Original Lecture #5: 14th October 1993 Topics: Polynomials Scribe: Mark P Kust

More information

Outline. 1 Interpolation. 2 Polynomial Interpolation. 3 Piecewise Polynomial Interpolation

Outline. 1 Interpolation. 2 Polynomial Interpolation. 3 Piecewise Polynomial Interpolation Outline Interpolation 1 Interpolation 2 3 Michael T. Heath Scientific Computing 2 / 56 Interpolation Motivation Choosing Interpolant Existence and Uniqueness Basic interpolation problem: for given data

More information

Math 660-Lecture 15: Finite element spaces (I)

Math 660-Lecture 15: Finite element spaces (I) Math 660-Lecture 15: Finite element spaces (I) (Chapter 3, 4.2, 4.3) Before we introduce the concrete spaces, let s first of all introduce the following important lemma. Theorem 1. Let V h consists of

More information

2 The De Casteljau algorithm revisited

2 The De Casteljau algorithm revisited A new geometric algorithm to generate spline curves Rui C. Rodrigues Departamento de Física e Matemática Instituto Superior de Engenharia 3030-199 Coimbra, Portugal ruicr@isec.pt F. Silva Leite Departamento

More information

R1: Sets A set is a collection of objects sets are written using set brackets each object in onset is called an element or member

R1: Sets A set is a collection of objects sets are written using set brackets each object in onset is called an element or member Chapter R Review of basic concepts * R1: Sets A set is a collection of objects sets are written using set brackets each object in onset is called an element or member Ex: Write the set of counting numbers

More information

A Relationship Between Minimum Bending Energy and Degree Elevation for Bézier Curves

A Relationship Between Minimum Bending Energy and Degree Elevation for Bézier Curves A Relationship Between Minimum Bending Energy and Degree Elevation for Bézier Curves David Eberly, Geometric Tools, Redmond WA 9852 https://www.geometrictools.com/ This work is licensed under the Creative

More information

Chapter 4: Interpolation and Approximation. October 28, 2005

Chapter 4: Interpolation and Approximation. October 28, 2005 Chapter 4: Interpolation and Approximation October 28, 2005 Outline 1 2.4 Linear Interpolation 2 4.1 Lagrange Interpolation 3 4.2 Newton Interpolation and Divided Differences 4 4.3 Interpolation Error

More information

Katholieke Universiteit Leuven Department of Computer Science

Katholieke Universiteit Leuven Department of Computer Science Interpolation with quintic Powell-Sabin splines Hendrik Speleers Report TW 583, January 2011 Katholieke Universiteit Leuven Department of Computer Science Celestijnenlaan 200A B-3001 Heverlee (Belgium)

More information

Chapter 10 Conics, Parametric Equations, and Polar Coordinates Conics and Calculus

Chapter 10 Conics, Parametric Equations, and Polar Coordinates Conics and Calculus Chapter 10 Conics, Parametric Equations, and Polar Coordinates 10.1 Conics and Calculus 1. Parabola A parabola is the set of all points x, y ( ) that are equidistant from a fixed line and a fixed point

More information

1 Differentiation and polar forms

1 Differentiation and polar forms CS348a: Computer Graphics Handout #23 Geometric Modeling Original Handout #19 Stanford University Tuesday, 27 October 1992 Original Lecture #8: 27 October 1992 Topics: Joints and Splines via Polar Forms

More information

CONTROL POLYGONS FOR CUBIC CURVES

CONTROL POLYGONS FOR CUBIC CURVES On-Line Geometric Modeling Notes CONTROL POLYGONS FOR CUBIC CURVES Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview B-Spline

More information

CHAPTER 3 Describing Relationships

CHAPTER 3 Describing Relationships CHAPTER 3 Describing Relationships 3.1 Scatterplots and Correlation The Practice of Statistics, 5th Edition Starnes, Tabor, Yates, Moore Bedford Freeman Worth Publishers Scatterplots and Correlation Learning

More information

Scientific Computing

Scientific Computing 2301678 Scientific Computing Chapter 2 Interpolation and Approximation Paisan Nakmahachalasint Paisan.N@chula.ac.th Chapter 2 Interpolation and Approximation p. 1/66 Contents 1. Polynomial interpolation

More information

Some notes on Chapter 8: Polynomial and Piecewise-polynomial Interpolation

Some notes on Chapter 8: Polynomial and Piecewise-polynomial Interpolation Some notes on Chapter 8: Polynomial and Piecewise-polynomial Interpolation See your notes. 1. Lagrange Interpolation (8.2) 1 2. Newton Interpolation (8.3) different form of the same polynomial as Lagrange

More information

Pythagorean-hodograph curves

Pythagorean-hodograph curves 1 / 24 Pythagorean-hodograph curves V. Vitrih Raziskovalni matematični seminar 20. 2. 2012 2 / 24 1 2 3 4 5 3 / 24 Let r : [a, b] R 2 be a planar polynomial parametric curve ( ) x(t) r(t) =, y(t) where

More information

Rational Bézier Patch Differentiation using the Rational Forward Difference Operator

Rational Bézier Patch Differentiation using the Rational Forward Difference Operator Rational Bézier Patch Differentiation using the Rational Forward Difference Operator Xianming Chen, Richard F. Riesenfeld, Elaine Cohen School of Computing, University of Utah Abstract This paper introduces

More information

THEODORE VORONOV DIFFERENTIAL GEOMETRY. Spring 2009

THEODORE VORONOV DIFFERENTIAL GEOMETRY. Spring 2009 [under construction] 8 Parallel transport 8.1 Equation of parallel transport Consider a vector bundle E B. We would like to compare vectors belonging to fibers over different points. Recall that this was

More information

1 f(u)b n i (u)du, (1.1)

1 f(u)b n i (u)du, (1.1) AMRX Applied Mathematics Research express 25, No. 4 On a Modified Durrmeyer-Bernstein Operator and Applications Germain E. Randriambelosoa 1 Introduction Durrmeyer [6] has introduced a Bernstein-type operator

More information

ab = c a If the coefficients a,b and c are real then either α and β are real or α and β are complex conjugates

ab = c a If the coefficients a,b and c are real then either α and β are real or α and β are complex conjugates Further Pure Summary Notes. Roots of Quadratic Equations For a quadratic equation ax + bx + c = 0 with roots α and β Sum of the roots Product of roots a + b = b a ab = c a If the coefficients a,b and c

More information

EXPLICIT ERROR BOUND FOR QUADRATIC SPLINE APPROXIMATION OF CUBIC SPLINE

EXPLICIT ERROR BOUND FOR QUADRATIC SPLINE APPROXIMATION OF CUBIC SPLINE J. KSIAM Vol.13, No.4, 257 265, 2009 EXPLICIT ERROR BOUND FOR QUADRATIC SPLINE APPROXIMATION OF CUBIC SPLINE YEON SOO KIM 1 AND YOUNG JOON AHN 2 1 DEPT OF MATHEMATICS, AJOU UNIVERSITY, SUWON, 442 749,

More information

Q(s, t) = S M = S M [ G 1 (t) G 2 (t) G 3 1(t) G 4 (t) ] T

Q(s, t) = S M = S M [ G 1 (t) G 2 (t) G 3 1(t) G 4 (t) ] T Curves an Surfaces: Parametric Bicubic Surfaces - Intro Surfaces are generalizations of curves Use s in place of t in parametric equation: Q(s) = S M G where S equivalent to T in Q(t) = T M G If G is parameterize

More information

VARIATIONAL INTERPOLATION OF SUBSETS

VARIATIONAL INTERPOLATION OF SUBSETS VARIATIONAL INTERPOLATION OF SUBSETS JOHANNES WALLNER, HELMUT POTTMANN Abstract. We consider the problem of variational interpolation of subsets of Euclidean spaces by curves such that the L 2 norm of

More information

MATH Max-min Theory Fall 2016

MATH Max-min Theory Fall 2016 MATH 20550 Max-min Theory Fall 2016 1. Definitions and main theorems Max-min theory starts with a function f of a vector variable x and a subset D of the domain of f. So far when we have worked with functions

More information

Differentiating Functions & Expressions - Edexcel Past Exam Questions

Differentiating Functions & Expressions - Edexcel Past Exam Questions - Edecel Past Eam Questions. (a) Differentiate with respect to (i) sin + sec, (ii) { + ln ()}. 5-0 + 9 Given that y =, ¹, ( -) 8 (b) show that = ( -). (6) June 05 Q. f() = e ln, > 0. (a) Differentiate

More information

Lec 05 Arithmetic Coding

Lec 05 Arithmetic Coding ECE 5578 Multimedia Communication Lec 05 Arithmetic Coding Zhu Li Dept of CSEE, UMKC web: http://l.web.umkc.edu/lizhu phone: x2346 Z. Li, Multimedia Communciation, 208 p. Outline Lecture 04 ReCap Arithmetic

More information

() Chapter 8 November 9, / 1

() Chapter 8 November 9, / 1 Example 1: An easy area problem Find the area of the region in the xy-plane bounded above by the graph of f(x) = 2, below by the x-axis, on the left by the line x = 1 and on the right by the line x = 5.

More information

MTH301 Calculus II Glossary For Final Term Exam Preparation

MTH301 Calculus II Glossary For Final Term Exam Preparation MTH301 Calculus II Glossary For Final Term Exam Preparation Glossary Absolute maximum : The output value of the highest point on a graph over a given input interval or over all possible input values. An

More information

Vector Functions & Space Curves MATH 2110Q

Vector Functions & Space Curves MATH 2110Q Vector Functions & Space Curves Vector Functions & Space Curves Vector Functions Definition A vector function or vector-valued function is a function that takes real numbers as inputs and gives vectors

More information

Interpolation. 1. Judd, K. Numerical Methods in Economics, Cambridge: MIT Press. Chapter

Interpolation. 1. Judd, K. Numerical Methods in Economics, Cambridge: MIT Press. Chapter Key References: Interpolation 1. Judd, K. Numerical Methods in Economics, Cambridge: MIT Press. Chapter 6. 2. Press, W. et. al. Numerical Recipes in C, Cambridge: Cambridge University Press. Chapter 3

More information

Intersection of Infinite Cylinders

Intersection of Infinite Cylinders Intersection of Infinite Cylinders David Eberly, Geometric Tools, Redmond WA 980 https://www.geometrictools.com/ This work is licensed under the Creative Commons Attribution 4.0 International License.

More information

Section 3.9. The Geometry of Graphs. Difference Equations to Differential Equations

Section 3.9. The Geometry of Graphs. Difference Equations to Differential Equations Difference Equations to Differential Equations Section 3.9 The Geometry of Graphs In Section. we discussed the graph of a function y = f(x) in terms of plotting points (x, f(x)) for many different values

More information

Numerical method for approximating the solution of an IVP. Euler Algorithm (the simplest approximation method)

Numerical method for approximating the solution of an IVP. Euler Algorithm (the simplest approximation method) Section 2.7 Euler s Method (Computer Approximation) Key Terms/ Ideas: Numerical method for approximating the solution of an IVP Linear Approximation; Tangent Line Euler Algorithm (the simplest approximation

More information

Multidimensional Geometry and its Applications

Multidimensional Geometry and its Applications PARALLEL COORDINATES : VISUAL Multidimensional Geometry and its Applications Alfred Inselberg( c 99, ) Senior Fellow San Diego SuperComputing Center, CA, USA Computer Science and Applied Mathematics Departments

More information

MATH 174: Numerical Analysis I. Math Division, IMSP, UPLB 1 st Sem AY

MATH 174: Numerical Analysis I. Math Division, IMSP, UPLB 1 st Sem AY MATH 74: Numerical Analysis I Math Division, IMSP, UPLB st Sem AY 0809 Eample : Prepare a table or the unction e or in [0,]. The dierence between adjacent abscissas is h step size. What should be the step

More information

Introduction. Introduction (2) Easy Problems for Vectors 7/13/2011. Chapter 4. Vector Tools for Graphics

Introduction. Introduction (2) Easy Problems for Vectors 7/13/2011. Chapter 4. Vector Tools for Graphics Introduction Chapter 4. Vector Tools for Graphics In computer graphics, we work with objects defined in a three dimensional world (with 2D objects and worlds being just special cases). All objects to be

More information

GEOMETRIC MODELLING WITH BETA-FUNCTION B-SPLINES, I: PARAMETRIC CURVES

GEOMETRIC MODELLING WITH BETA-FUNCTION B-SPLINES, I: PARAMETRIC CURVES International Journal of Pure and Applied Mathematics Volume 65 No. 3 2010, 339-360 GEOMETRIC MODELLING WITH BETA-FUNCTION B-SPLINES, I: PARAMETRIC CURVES Arne Lakså 1, Børre Bang 2, Lubomir T. Dechevsky

More information