A MATRIX FORMULATION OF THE CUBIC BÉZIER CURVE

Similar documents
SPLITTING THE CUBIC UNIFORM B-SPLINE CURVE

QUADRATIC UNIFORM B-SPLINE CURVE REFINEMENT

A DIVIDE AND CONQUER METHOD FOR CURVE DRAWING

CHAIKIN S ALGORITHMS FOR CURVES

Interactive Graphics. Lecture 9: Introduction to Spline Curves. Interactive Graphics Lecture 9: Slide 1

ECS 178 Course Notes REFINEMENT

Need for Parametric Equations

On-Line Geometric Modeling Notes REFINEMENT

Curves and Surfaces 1

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics

CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016

Parametric Curves. University of Texas at Austin CS384G - Computer Graphics Fall 2010 Don Fussell

Information Coding / Computer Graphics, ISY, LiTH. Splines

Lecture 25: Bezier Subdivision. And he took unto him all these, and divided them in the midst, and laid each piece one against another: Genesis 15:10

08 - Designing Approximating Curves

Lecture IV Bézier Curves

Sung-Eui Yoon ( 윤성의 )

A Practical Review of Uniform B-Splines

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

Know it. Control points. B Spline surfaces. Implicit surfaces

Curves D.A. Forsyth, with slides from John Hart

Rendering Curves and Surfaces. Ed Angel Professor of Computer Science, Electrical and Computer Engineering, and Media Arts University of New Mexico

Computer Graphics Curves and Surfaces. Matthias Teschner

Lecture 9: Introduction to Spline Curves

Rational Bezier Surface

2D Spline Curves. CS 4620 Lecture 18

Curve fitting using linear models

COMPUTER AIDED ENGINEERING DESIGN (BFF2612)

Homework #2. Shading, Projections, Texture Mapping, Ray Tracing, and Bezier Curves

Curves. Computer Graphics CSE 167 Lecture 11

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

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required:

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li.

Further Graphics. Bezier Curves and Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

Remark. Jacobs University Visualization and Computer Graphics Lab : ESM4A - Numerical Methods 331

An introduction to interpolation and splines

THE CAMERA TRANSFORM

Bezier Curves, B-Splines, NURBS

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes

Design considerations

In this course we will need a set of techniques to represent curves and surfaces in 2-d and 3-d. Some reasons for this include

Parametric curves. Brian Curless CSE 457 Spring 2016

Geometric Modeling of Curves

The Free-form Surface Modelling System

MA 323 Geometric Modelling Course Notes: Day 28 Data Fitting to Surfaces

An Introduction to B-Spline Curves

Representing Curves Part II. Foley & Van Dam, Chapter 11

Curve Representation ME761A Instructor in Charge Prof. J. Ramkumar Department of Mechanical Engineering, IIT Kanpur

Properties of Blending Functions

Keyword: Quadratic Bézier Curve, Bisection Algorithm, Biarc, Biarc Method, Hausdorff Distances, Tolerance Band.

BIQUADRATIC UNIFORM B-SPLINE SURFACE REFINEMENT

CSC 305 More Modelling

Intro to Curves Week 4, Lecture 7

Introduction to Computer Graphics

Knot Insertion and Reparametrization of Interval B-spline Curves

The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a

2D Spline Curves. CS 4620 Lecture 13

CAGD PACKAGE FOR MATHEMATICA AND ITS USAGE IN THE TEACHING

Computer Graphics. Unit VI: Curves And Fractals. By Vaishali Kolhe

CS130 : Computer Graphics Curves (cont.) Tamar Shinar Computer Science & Engineering UC Riverside

Intro to Modeling Modeling in 3D

(Refer Slide Time: 00:02:24 min)

Lesson 17: Modeling with Polynomials An Introduction

A general matrix representation for non-uniform B-spline subdivision with boundary control

Advanced Graphics. Beziers, B-splines, and NURBS. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd

COMP3421. Global Lighting Part 2: Radiosity

Computational Physics PHYS 420

Shape Control of Cubic H-Bézier Curve by Moving Control Point

Free-Form Deformation (FFD)

1 Preview. Dr. Scott Gordon Computer Science Dept. CSUS. Virtual Cameras, Viewing Transformations: CSc-155 Advanced Computer Graphics

Rational Bezier Curves

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013

BICUBIC UNIFORM B-SPLINE SURFACE REFINEMENT

MA 323 Geometric Modelling Course Notes: Day 14 Properties of Bezier Curves

Computer Graphics CS 543 Lecture 13a Curves, Tesselation/Geometry Shaders & Level of Detail

Spline Notes. Marc Olano University of Maryland, Baltimore County. February 20, 2004

EECS 487, Fall 2005 Exam 2

An interpolating 4-point C 2 ternary stationary subdivision scheme

and the crooked shall be made straight, and the rough ways shall be made smooth; Luke 3:5

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

ECE 600, Dr. Farag, Summer 09

Curves and Surfaces. Computer Graphics COMP 770 (236) Spring Instructor: Brandon Lloyd

Central issues in modelling

B-spline Curves. Smoother than other curve forms

CS130 : Computer Graphics Curves. Tamar Shinar Computer Science & Engineering UC Riverside

On an approach for cubic Bézier interpolation

Consider functions such that then satisfies these properties: So is represented by the cubic polynomials on on and on.

Computer Graphics / Animation

Objects 2: Curves & Splines Christian Miller CS Fall 2011

Intro to Curves Week 1, Lecture 2

Computergrafik. Matthias Zwicker. Herbst 2010

Real time Ray-Casting of Algebraic Surfaces

3D Modeling Parametric Curves & Surfaces

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2

LECTURE #6. Geometric Modelling for Engineering Applications. Geometric modeling for engineering applications

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple

Curves and Surfaces. Shireen Elhabian and Aly A. Farag University of Louisville

Graphing Techniques. Domain (, ) Range (, ) Squaring Function f(x) = x 2 Domain (, ) Range [, ) f( x) = x 2

CS-184: Computer Graphics

Transcription:

Geometric Modeling Notes A MATRIX FORMULATION OF THE CUBIC BÉZIER CURVE Kenneth I. Joy Institute for Data Analysis and Visualization Department of Computer Science University of California, Davis Overview A cubic Bézier curve has a useful representation in a matrix form. For most people this representation looks unusual, as most have not seen curves written in this way. It was initially developed to take advantage of the early GPUs on computer systems that could multiply matrices extremely fast especially matrices. We will use this form to develop subdivision matrices that allow us to use matrix multiplication to generate different Bézier control polygons for a cubic curve. There are lots of matrices here. They aren t overly complex, but may appear so with the mathematics. They form a good basis for us to discuss reparameterization of the Bézier curve, and have one realize that the same curve can have many different sets of Bézier control points. Developing the Matrix Equation A cubic Bézier Curve can be written in a matrix form by expanding the analytic definition of the curve into its Bernstein polynomial coefficients, and then writing these coefficients in a matrix form using the polynomial power basis. That is, P(t) ( t) + t( t) + t ( t) + t ( t) t( t) t ( t) t t t t 6

and so a cubic Bézier curve is can be written in a matrix form of t t t M where M 6 The matrix t t t M gives us the cubic Bernstein polynomials Check it out!. Utilizing equipment that is designed for fast matrix calculations, this formulation can be used to quickly calculate points on the curve. Subdivision Using the Matrix Form How do we use this new representation? Well, suppose we wish to generate the control polygon for the portion of the curve P(t) where t ranges between and subdivide the curve at the point t. This can be done with our divideand-conquer procedure, defined in this Unit. But it also can be done by modifying the parameters of the curve. That is, by defining a new curve Q(t) which is equal to P( t ). This new curve is a cubic polynomial, and traces out the desired portion first half of P as t ranges between and. We can calculate the Bézier control polygon for Q by using the matrix

form of the curve P, and by substituting t for the parameter. Q(t) P( t ) ( ( t t ( t ) ) ) 6 t t t 6 t t t MS, where we have introduced a new matrix S,. This matrix can be calculated directly by the

following: S, M M 6 6 6 So Q(t) is a Bézier curve, with a control polygon given by S, + + + + + + In the same way, we can obtain the Bézier control polygon for the second half of the curve the

portion where t ranges between and. If we call this new curve Q(t), then Q(t) P( + t ) ( + ) t ( + ) t ( + t ) t t t t t t MS, 6 6 where S, obtaining a matrix that can be applied to the original Bézier control points to produce Bézier control points for the second half of the curve. Now it may take some checking, but this is the identical result to our divide-and-conquer procedure, presented earlier. This difference here is the matrix representation, of course, but also that we used a reparameterization of the curve to obtain our new control points. Using the Matrix Representation to Generate New Sets of Control Points. Once we have used reparameterization to generate new control points, it is useful to do it again! With different reparameterizations. 5

Consider the portion of the cubic curve P(t) where t ranges between and, and let Q(t) be this new Bézier curve. We generate the Bézier control points of Q(t) by reparameterization of the original curve namely by replacing t by t + to obtain Q(t) P(t + ) (t + ) (t + ) (t + ) 6 t t t 6 t t t MS, where, after some calculation, S, is given by S, 6 Now, using a combination of S,, S, and S,, we can produce Bézier control polygons along the curve similar to methods developed with divided differences. To see what I mean here, first notice that S, S, S, This states that by applying S, to obtain a Bézier control polygon for the first half of the curve, we can then apply S, to this control polygon to obtain the Bézier control polygon for the second half of the curve. Extending this, if we apply S i, Sk, 6

(that is, apply S, k times and then S, i times), we obtain the Bézier control polygon for the portion of the curve where t ranges between i and i+. By repeatedly applying S k k,, we move our control polygons along the curve. Probably confusing for the first-timer, but reparameterization will be necessary when we start piecing Bézier curves together. These will be called B-spline curves. Summary We have developed a matrix form for the cubic Bézier curve. Using reparameterization, we developed matrices which enabled us to produce Bézier control polygons for sections of the curve. One can use reparameterizations over and over to generate new sets of control points for a particular Bézier curve. Thus there are an infinite number of control point sets for any Bézier curve. This gives us a lot of flexibility. Whereas we have developed this for cubic curves here, it can also be done with quadratic curves (the matrices are ), or nth-degree curves (where the matrices are (n + ) (n + )). All contents copyright (c) 997- Computer Science Department, University of California, Davis All rights reserved. 7