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

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

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.

Computer Aided Design. B-Splines

Hermite Interpolation with Euclidean Pythagorean Hodograph Curves

Introduction of Singularity Theory on Curves

Introduction. Chapter Points, Vectors and Coordinate Systems

Conversion of Quadrics into Rational Biquadratic Bézier Patches

Cubic Splines; Bézier Curves

Lecture 23: Hermite and Bezier Curves

b 1 b 2.. b = b m A = [a 1,a 2,...,a n ] where a 1,j a 2,j a j = a m,j Let A R m n and x 1 x 2 x = x n

Curves, Surfaces and Segments, Patches

Surface x(u, v) and curve α(t) on it given by u(t) & v(t). Math 4140/5530: Differential Geometry

Constrained Ultraspherical-Weighted Orthogonal Polynomials on Triangle

Christoffel symbols and Gauss Theorema Egregium

The Essentials of CAGD

EXPLICIT ERROR BOUND FOR QUADRATIC SPLINE APPROXIMATION OF CUBIC SPLINE

Lectures 15: Parallel Transport. Table of contents

Approximation of Circular Arcs by Parametric Polynomial Curves

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

Spiral spline interpolation to a planar spiral

A general 4th-order PDE method to generate Bézier surfaces from the boundary

Interpolation and Deformations A short cookbook

Vector Spaces and Subspaces

The Gram-Schmidt Process 1

The Algebra and Geometry of Curve and Surface Inversion

Inner Product Spaces 5.2 Inner product spaces

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

On Rational Minkowski Pythagorean Hodograph Curves

Bernstein polynomials of degree N are defined by

Interpolation and Deformations A short cookbook

Tetrahedral C m Interpolation by Rational Functions

Lecture 20: Bezier Curves & Splines

Algebraic Geometry for CAGD

Chapter y. 8. n cd (x y) 14. (2a b) 15. (a) 3(x 2y) = 3x 3(2y) = 3x 6y. 16. (a)

Reading. w Foley, Section 11.2 Optional

9.5. Polynomial and Rational Inequalities. Objectives. Solve quadratic inequalities. Solve polynomial inequalities of degree 3 or greater.

Continuity of Bçezier patches. Jana Pçlnikovça, Jaroslav Plaçcek, Juraj ç Sofranko. Faculty of Mathematics and Physics. Comenius University

Lecture 23: 6.1 Inner Products

Linear Algebra. Min Yan

A Simple Turbulence Closure Model

Computing the Hausdorff Distance between Two B-Spline Curves. Zachi Shtain

Bézier Curves and Splines

Find two positive factors of 24 whose sum is 10. Make an organized list.

Curvature variation minimizing cubic Hermite interpolants

Lecture 13 The Fundamental Forms of a Surface

3.2 Constructible Numbers

Intrinsic Surface Geometry

CHAPTER 3. Gauss map. In this chapter we will study the Gauss map of surfaces in R 3.

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

Weighted G 1 -Multi-Degree Reduction of Bézier Curves

Superconformal ruled surfaces in E 4

1 The Differential Geometry of Surfaces

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

Math 5378, Differential Geometry Solutions to practice questions for Test 2

CS 536 Computer Graphics NURBS Drawing Week 4, Lecture 6

Construction of rational surface patches bounded by lines of curvature

Chapter 6: Rational Expr., Eq., and Functions Lecture notes Math 1010

Cubic Helices in Minkowski Space

A Distance Property of the Feuerbach Point and Its Extension

FMIA. Fluid Mechanics and Its Applications 113 Series Editor: A. Thess. Moukalled Mangani Darwish. F. Moukalled L. Mangani M.

Lectures in Discrete Differential Geometry 2 Surfaces

Bi-quartic parametric polynomial minimal surfaces

B.7 Lie Groups and Differential Equations

Coordinate Systems. Recall that a basis for a vector space, V, is a set of vectors in V that is linearly independent and spans V.

Practical Linear Algebra: A Geometry Toolbox

VARIATIONAL INTERPOLATION OF SUBSETS

Practical Linear Algebra: A Geometry Toolbox

Math 115 ( ) Yum-Tong Siu 1. Euler-Lagrange Equations for Many Functions and Variables and High-Order Derivatives

Elementary Linear Algebra

Lecture 17: Section 4.2

A Simple Turbulence Closure Model. Atmospheric Sciences 6150

Investigation of non-lightlike tubular surfaces with Darboux frame in Minkowski 3-space

Jordan normal form notes (version date: 11/21/07)

LINES IN P 3. Date: December 12,

ORTHOGONALITY AND LEAST-SQUARES [CHAP. 6]

Chapter 5 Eigenvalues and Eigenvectors

Vector Spaces ปร ภ ม เวกเตอร

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

Curves and Surfaces Represented by Support Function

FastTrack - MA109. Exponents and Review of Polynomials

9. Numerical linear algebra background

Class notes: Approximation

MTH 102A - Linear Algebra II Semester

Computing roots of polynomials by quadratic clipping

A PROOF OF THE GAUSS-BONNET THEOREM. Contents. 1. Introduction. 2. Regular Surfaces

Chapter 4. The First Fundamental Form (Induced Metric)

Geometric meanings of the parameters on rational conic segments

Interpolated Rigid-Body Motions and Robotics

Dierential Geometry Curves and surfaces Local properties Geometric foundations (critical for visual modeling and computing) Quantitative analysis Algo

9. Numerical linear algebra background

Math 4377/6308 Advanced Linear Algebra

Review for Exam 2 Solutions

Chapter 1: Systems of Linear Equations

Test 1 Review Problems Spring 2015

12.3 Curvature, torsion and the TNB frame

UNIVERSITY LIBRARY & TOWER, EDUATION BUILDING, LIBERAL ARTS ANNEX & UTILITY METERING VOL #3-

Math 497C Mar 3, Curves and Surfaces Fall 2004, PSU

10. Linear Systems of ODEs, Matrix multiplication, superposition principle (parts of sections )

MATRICES. a m,1 a m,n A =

Linear-Quadratic-Gaussian (LQG) Controllers and Kalman Filters

Transcription:

Rational Bézier Patch Differentiation using the Rational Forward Difference Operator Xianming Chen Richard Riesenfeld Elaine Cohen School of Computing University of Utah CGI 05 p.1/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension Zheng and Sederberg [Zheng03] derive simple formulation for rational surface curvature, emphasizing the geometric intuition CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension Zheng and Sederberg [Zheng03] derive simple formulation for rational surface curvature, emphasizing the geometric intuition We focus on the derivation of a general formulation for differentiation based on rational control mesh CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension Zheng and Sederberg [Zheng03] derive simple formulation for rational surface curvature, emphasizing the geometric intuition We focus on the derivation of a general formulation for differentiation based on rational control mesh specialization to polynomial case. CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension Zheng and Sederberg [Zheng03] derive simple formulation for rational surface curvature, emphasizing the geometric intuition We focus on the derivation of a general formulation for differentiation based on rational control mesh specialization to polynomial case. dimension extension CGI 05 p.2/37

Introduction For polynomial Bézier patches, the formulation is elegant and well-known [Farin02, Hoschek93, Cohen01]. For rational Bézier patches, Use quotient rule. Complicated for higher order and/or dimension Zheng and Sederberg [Zheng03] derive simple formulation for rational surface curvature, emphasizing the geometric intuition We focus on the derivation of a general formulation for differentiation based on rational control mesh specialization to polynomial case. dimension extension simple and unified implementation CGI 05 p.2/37

Recall: Polynomial Fwd Diff & Deriv Curves: 0 [i] = P [i] r [i] = r 1 [i + 1] r 1 [i] x r (0) = n! (n r)! r[0] CGI 05 p.3/37

Recall: Polynomial Fwd Diff & Deriv Curves: Surfaces: 0 [i] = P [i] r [i] = r 1 [i + 1] r 1 [i] x r (0) = 00 [i][j] = P [i][j] n! (n r)! r[0] rs [i][j] = r 1,s [i + 1][j] r 1,s [i][j] or rs [i][j] = r,s 1 [i][j + 1] r,s 1 [i][j] x rs (0, 0) = m! (m r)! n! (n s)! rs[0][0] CGI 05 p.3/37

Question? Can we find similar formulations for rational Bézier curves/surfaces? CGI 05 p.4/37

Answer Partly Yes, CGI 05 p.5/37

Answer Partly Yes, We are able to define, the rational forward difference operator. CGI 05 p.5/37

Answer Partly Yes, We are able to define, the rational forward difference operator. Have similar formulation for curve differentiation of 1 st, 2 nd, and 3 rd order. CGI 05 p.5/37

Answer Partly Yes, We are able to define, the rational forward difference operator. Have similar formulation for curve differentiation of 1 st, 2 nd, and 3 rd order. Have similar formulation for surface differentiation of 1 st and 2 nd order. CGI 05 p.5/37

Shape Computation κ = x x x 3 τ = [x x x ] x x = (x x ) x 2 x x ( ) 2 L M II =, where L = x M N uu N = x uu (x u x v ) x u x v, etc CGI 05 p.6/37

Shape Computation κ = x x x 3 τ = [x x x ] x x = (x x ) x 2 x x ( ) 2 L M II =, where L = x M N uu N = x uu (x u x v ) x u x v, etc Components depending on lower order derivatives: No Effect on shape computation! CGI 05 p.6/37

Equivalent Derivatives For any coefficients a and b Curves x = x + ax x = x + ax + bx CGI 05 p.7/37

Equivalent Derivatives For any coefficients a and b Curves x = x + ax Surfaces x = x + ax + bx x uv = x uv + ax u + bx v x uu = x uu + ax u + bx v x vv = x vv + ax u + bx v CGI 05 p.7/37

Equivalent Derivatives For any coefficients a and b Curves x = x + ax Surfaces x = x + ax + bx x uv = x uv + ax u + bx v x uu = x uu + ax u + bx v x vv = x vv + ax u + bx v x and x have the same effect for shape computation CGI 05 p.7/37

Example x [x ] x CGI 05 p.8/37

Fast Forward: Results of Rational Bézier Curve Rational Case x (0) = n 1 [0] x (0) = n(n 1) 2 [0] x (0) = n(n 1)(n 2) 3 [0] CGI 05 p.9/37

Fast Forward: Results of Rational Bézier Curve Rational Case x (0) = n 1 [0] x (0) = n(n 1) 2 [0] x (0) = n(n 1)(n 2) 3 [0] Polynomial case x (0) = n 1 [0] x (0) = n(n 1) 2 [0] x (0) = n(n 1)(n 2) 3 [0] CGI 05 p.9/37

Fast Forward: Results of Rational Bézier Curve Rational Case x (0) = n 1 [0] x (0) = n(n 1) 2 [0] x (0) = n(n 1)(n 2) 3 [0] CGI 05 p.9/37

Fast Forward: Results of Rational Bézier Surface Rational Case x u (0, 0) = m 10 [0][0] x v (0, 0) = m 01 [0][0] x uu (0, 0) = m(m 1) 20 [0][0] x uv (0, 0) = mn 11 [0][0] x vv (0, 0) = n(n 1) 02 [0][0] CGI 05 p.10/37

Fast Forward: Results of Rational Bézier Surface Rational Case x u (0, 0) = m 10 [0][0] x v (0, 0) = m 01 [0][0] x uu (0, 0) = m(m 1) 20 [0][0] x uv (0, 0) = mn 11 [0][0] x vv (0, 0) = n(n 1) 02 [0][0] Polynomial Case x u (0, 0) = m 10 [0][0] x v (0, 0) = m 01 [0][0] x uu (0, 0) = m(m 1) 20 [0][0] x uv (0, 0) = mn 11 [0][0] x vv (0, 0) = n(n 1) 02 [0][0] CGI 05 p.10/37

Fast Forward: Results of Rational Bézier Surface Rational Case x u (0, 0) = m 10 [0][0] x v (0, 0) = m 01 [0][0] x uu (0, 0) = m(m 1) 20 [0][0] x uv (0, 0) = mn 11 [0][0] x vv (0, 0) = n(n 1) 02 [0][0] CGI 05 p.10/37

Curvature and Torsion κ = x x x 3 = n 1 n = x x x 3 1 2 1 3 CGI 05 p.11/37

Curvature and Torsion κ = x x x 3 = n 1 n = x x x 3 1 2 1 3 τ = [x x x ] x x 2 = [x x x ] x x 2 = n 2 n [ 1 2 3 ] 1 2 2 CGI 05 p.11/37

First Fundamental Form ( ) E F I = = F G ( ) xu x u x u x v x v x u x v x v = ( mm 10 10 mn 10 01 nm 01 10 nn 01 01 ) CGI 05 p.12/37

Second Fundamental Form ( ) L M II = M N = x uu n x uv N = x vu n x vv N x uu n x uv N x vu n x vv N = m(m 1) [ 10 01 20 ] 10 01 mn [ 10 01 11 ] 10 01 nm [ 10 01 11 ] 10 01 n(n 1) [ 10 01 02 ] 10 01 CGI 05 p.13/37

To Be Defined So, What is the Rational Forward Operator,? CGI 05 p.14/37

Homogeneous Point [0, 12, 4] [4, 6, 2] homogeneous point [P, W ], where P R n, W R represents the Euclidean point P/W R n [4, 0, 2] CGI 05 p.15/37

Rational Forward Operator For a rational control mesh of points [P, W ], P R n and W R, define where r : r (P, W )[s] = r(p )[s]w [s] r (W )[s]p [s] W [s] 2 the orders of all (partial) derivatives, such as 2 (curves), 02 (surfaces) etc. s : the indices to the control point, where the r-th order rational forward difference is evaluated, such as [1] or [0][1]. r (P )[s] : the usual polynomial forward difference of order r at the s-th control point of control mesh P in R n r (W )[s] : the usual polynomial forward difference of order r at the s-th control point of control mesh W in R 1 CGI 05 p.16/37

Side Note:Implementation Apply polynomial forward difference operator to the control mesh CGI 05 p.17/37

Side Note:Implementation Apply polynomial forward difference operator to the control mesh If rational Bézier, i.e., controls points actually in homogeneous form, apply the rationalization procedure in the definition CGI 05 p.17/37

Side Note:Implementation Apply polynomial forward difference operator to the control mesh If rational Bézier, i.e., controls points actually in homogeneous form, apply the rationalization procedure in the definition Shape computation based on rational/polynomial forward difference CGI 05 p.17/37

Why? Bézier Curve Bézier Surface x (0) = n 1 [0] x (0) = n(n 1) 2 [0] x (0) = n(n 1)(n 2) 3 [0] x u (0, 0) = m 10 [0][0], x v (0, 0) = m 01 [0][0] x uu (0, 0) = m(m 1) 20 [0][0] x uv (0, 0) = mn 11 [0][0] x vv (0, 0) = n(n 1) 02 [0][0] CGI 05 p.18/37

Bézier Curves: 1 st Order Derivative x(t) = p(t) w(t), x (t) = (p w w p) w 2, p = n(p [1] P [0] = n 1 (P ), w = n(w [1] W [0]) = n 1 (W ), x = n 1(P )W [0] 1 (W )P [0] W [0] 2, CGI 05 p.19/37

Bézier Curves: 1 st Order Derivative x = n 1. x(t) = p(t) w(t), x (t) = (p w w p) w 2, p = n(p [1] P [0] = n 1 (P ), w = n(w [1] W [0]) = n 1 (W ), x = n 1(P )W [0] 1 (W )P [0] W [0] 2, CGI 05 p.19/37

Bézier Curves: 1 st Order Derivative x = n 1. x(t) = p(t) w(t), x (t) = (p w w p) w 2, p = n(p [1] P [0] = n 1 (P ), w = n(w [1] W [0]) = n 1 (W ), x = n 1(P )W [0] 1 (W )P [0] W [0] 2, CGI 05 p.19/37

Bézier Curves: 2 nd Order Derivative x = (p w w p) w 2 x = (p w w p) w 2 + (p w w p ) w 2 + (p w w p) ( 1 w 2 ) CGI 05 p.20/37

Bézier Curves: 2 nd Order Derivative x = (p w w p) w 2 x = (p w w p) w 2 + (p w w p ) w 2 + (p w w p) ( 1 w 2 ) 2 nd term is 0 CGI 05 p.20/37

Bézier Curves: 2 nd Order Derivative x = (p w w p) w 2 x = (p w w p) w 2 + (p w w p ) w 2 + (p w w p) ( 1 w 2 ), 2 nd term is 0, 3 rd term is parallel to x. Therefore CGI 05 p.20/37

Bézier Curves: 2 nd Order Derivative x = (p w w p) w 2 x = (p w w p) w 2 + (p w w p ) w 2 + (p w w p) ( 1 w 2 ), 2 nd term is 0, 3 rd term is parallel to x. Therefore x = (p w w p) w 2 x = n(n 1) 2 CGI 05 p.20/37

Bézier Curves: 2 nd Order Derivative x = (p w w p) w 2 x = (p w w p) w 2 + (p w w p ) w 2 + (p w w p) ( 1 w 2 ), 2 nd term is 0, 3 rd term is parallel to x. Therefore x = (p w w p) w 2 x = n(n 1) 2 CGI 05 p.20/37

Bézier Curves: 3 rd Order Derivative x = (p w w p) w 2 + (p w w p) ( 1 w 2 ) CGI 05 p.21/37

Bézier Curves: 3 rd Order Derivative x = (p w w p) w 2 + (p w w p) ( 1 w 2 ) Differentiating 2 nd term generates only terms which are spanned by x and x, and can be discarded x = p w w p + p w w p w 2 w 2 CGI 05 p.21/37

Bézier Curves: 3 rd Order Derivative x = (p w w p) w 2 + (p w w p) ( 1 w 2 ) Differentiating 2 nd term generates only terms which are spanned by x and x, and can be discarded x = p w w p + p w w p w 2 w 2 If p w w p w 2 is spanned by (x, x ), i.e., (p w w p, p w w p), we would have x = n(n 1)(n 2) 3 CGI 05 p.21/37

Bézier Curves: 3 rd Order Derivative x = (p w w p) w 2 + (p w w p) ( 1 w 2 ) Differentiating 2 nd term generates only terms which are spanned by x and x, and can be discarded x = p w w p + p w w p w 2 w 2 If p w w p w 2 is spanned by (x, x ), i.e., (p w w p, p w w p), we would have x = n(n 1)(n 2) 3 CGI 05 p.21/37

Proof for 3 rd Order Equivalent Derivative Vanishing triple scalar product. (p w w p) (p w w p) (p w w p ) = ((p p )w 2 (p p )ww (p p)ww ) (p w w p ) = (p p )ww w p (p p)ww p w = 0 CGI 05 p.22/37

Bézier Surfaces: 1 st Order Derivative x(u, v) = p(u, v) w(u, v) x u = (p uw w u p), x w 2 v = (p vw w v p) w 2 x u = m 10(P )W [0][0] 10 (W )P [0][0] W [0][0] 2 = m 10 x v = n 01(P )W [0][0] 01 (W )P [0][0] W [0][0] 2 = n 01 CGI 05 p.23/37

Bézier Surfaces: 2 nd Order Derivative x uu = m(m 1) 20, x vv = n(n 1) 02 CGI 05 p.24/37

Bézier Surfaces: 2 nd Order Derivative x uu = m(m 1) 20, x vv = n(n 1) 02 x u = (p uw w u p) w 2 x uv = (p uvw w uv p) + (p uw v w u p v ) w 2 w 2 CGI 05 p.24/37

Bézier Surfaces: 2 nd Order Derivative x uu = m(m 1) 20, x vv = n(n 1) 02 x u = (p uw w u p) w 2 x uv = (p uvw w uv p) + (p uw v w u p v ) w 2 w 2 2 nd term in the tangent plane, ((p u w w u p) (p v w w v p)) (p u w v w u p v ) = (w 2 p u p v w u wp p v ww v p u p) (p u w v w u p v ) = w u ww v [pp v p u ] + ww v w u [p u pp v ] = 0 CGI 05 p.24/37

Bézier Surfaces: 2 nd Order Derivative x uu = m(m 1) 20, x vv = n(n 1) 02 x u = (p uw w u p) w 2 x uv = (p uvw w uv p) + (p uw v w u p v ) w 2 w 2 2 nd term in the tangent plane, ((p u w w u p) (p v w w v p)) (p u w v w u p v ) = (w 2 p u p v w u wp p v ww v p u p) (p u w v w u p v ) = w u ww v [pp v p u ] + ww v w u [p u pp v ] = 0 x uv = mn 11 CGI 05 p.24/37

Bézier Surfaces: 2 nd Order Derivative x uu = m(m 1) 20, x vv = n(n 1) 02 x u = (p uw w u p) w 2 x uv = (p uvw w uv p) + (p uw v w u p v ) w 2 w 2 2 nd term in the tangent plane, ((p u w w u p) (p v w w v p)) (p u w v w u p v ) = (w 2 p u p v w u wp p v ww v p u p) (p u w v w u p v ) = w u ww v [pp v p u ] + ww v w u [p u pp v ] = 0 x uv = mn 11 CGI 05 p.24/37

Ex.1: Curvature of Ellipse [0, 2b, 2 ] [a, b, 1] Consider first quadrant The control mesh, x 2 a 2 + y2 b 2 = 1 [P, W ][0] = [a, 0, 1] [P, W ][1] = [a, b, 1] [P, W ][2] = [0, 2b, 2] Y Z X [a, 0, 1] CGI 05 p.25/37

Ex. 1: Curvatures of An Ellipse -Cont. 1 First order polynomial forward differences at the 0-th control point. 1 (P )[0] = P [1] P [0] = [a, b] [a, 0] = [0, b] 1 (W )[0] = W [1] W [0] = 0 CGI 05 p.26/37

Ex. 1: Curvatures of An Ellipse -Cont. 1 First order polynomial forward differences at the 0-th control point. 1 (P )[0] = P [1] P [0] = [a, b] [a, 0] = [0, b] 1 (W )[0] = W [1] W [0] = 0 First order rational forward differences at the 0-th control point. 1 [0] = 1(P )[0] W [0] 1 (W )[0] P [0] W [0] 2 = [0, b] + 0[a, 0] 1 = [0, b] CGI 05 p.26/37

Ex. 1: Curvatures of An Ellipse -Cont. 2 1 (P )[1] = P [2] P [1] = [0, 2b] [a, b] = [ a, b] 1 (W )[1] = W [2] W [1] = 1 2 (P )[0] = 1 (P )[1] 1 (P )[0] = [ a, 0] 2 (W )[0] = 1 (W )[1] 1 (W )[0] = 1 CGI 05 p.27/37

Ex. 1: Curvatures of An Ellipse -Cont. 2 1 (P )[1] = P [2] P [1] = [0, 2b] [a, b] = [ a, b] 1 (W )[1] = W [2] W [1] = 1 2 (P )[0] = 1 (P )[1] 1 (P )[0] = [ a, 0] 2 (W )[0] = 1 (W )[1] 1 (W )[0] = 1 2 [0] = 2(P )[0] W [0] 2 (W )[0] P [0] W [0] 2 = [ a, 0] [a, 0] 1 = [ 2a, 0] CGI 05 p.27/37

Ex. 1: Curvatures of An Ellipse -Cont. 3 At (a, 0), the ellipse has a curvature of, x 2 a 2 + y2 b 2 = 1, κ = n 1 n = 2ab 2b 3 1 2 = a/b2 1 3 CGI 05 p.28/37

Rational Fwd Diff in the Context of NURBS [-a, 3b, 3] [a, b, 1] Y Z X Same ellipse, but defined with knot vector 1, 0, 1, 2, [a, -b, 1] CGI 05 p.29/37

What Changes We Have to Make Polynomial forward difference has to be normalized CGI 05 p.30/37

What Changes We Have to Make Polynomial forward difference has to be normalized Apply rationalization the same way to get our rational forward difference CGI 05 p.30/37

NURBS: Normalized Polynomial Fwd Diff knot vector: 1, 0, 1, 2, control mesh: [P, W ][0] = [a, b, 1], [P, W ][1] = [a, b, 1], [P, W ][2] = [ a, 3b, 3] CGI 05 p.31/37

NURBS: Normalized Polynomial Fwd Diff knot vector: 1, 0, 1, 2, control mesh: [P, W ][0] = [a, b, 1], [P, W ][1] = [a, b, 1], [P, W ][2] = [ a, 3b, 3] 1 st order polynomial forward differences at the 0-th control point. 1 (P )[0] = 1 (W )[0] = P [1] P [0] = 1 ( 1) W [1] W [0] 1 ( 1) [a, b] [a, b] 2 = 0 = [0, b] CGI 05 p.31/37

NURBS: Normalized Polynomial Fwd Diff knot vector: 1, 0, 1, 2, control mesh: [P, W ][0] = [a, b, 1], [P, W ][1] = [a, b, 1], [P, W ][2] = [ a, 3b, 3] 1 st order polynomial forward differences at the 0-th control point. 1 (P )[0] = 1 (W )[0] = Normalization factor P [1] P [0] = 1 ( 1) W [1] W [0] 1 ( 1) [a, b] [a, b] 2 = 0 = [0, b] CGI 05 p.31/37

NURBS: Normalized Polynomial Fwd Diff knot vector: 1, 0, 1, 2, control mesh: [P, W ][0] = [a, b, 1], [P, W ][1] = [a, b, 1], [P, W ][2] = [ a, 3b, 3] 1 st order polynomial forward differences at the 0-th control point. 1 (P )[0] = 1 (W )[0] = Normalization factor P [1] P [0] = 1 ( 1) W [1] W [0] 1 ( 1) [a, b] [a, b] 2 = 0 from the knot vector. = [0, b] CGI 05 p.31/37

NURBS: 1 st Order Rational Fwd Diff 1 [0] = 1(P )[0] W [0] 1 (W )[0] P [0] W [0] 2 = [0, b] 0[a, b] 1 2 = [0, b] CGI 05 p.32/37

NURBS: 2 nd Order Rational Fwd Diff Normalized polynomial forward differences P [2] P [1] [ a, 3b] [a, b] 1 (P )[1] = = = [ a, b], 2 0 2 W [2] W [1] 1 (W )[1] = = 1. 2 0 2 (P )[0] = 1(P )[1] 1 (P )[0] = [ a, b] [0, b] = [ a, 0], 1 0 2 (W )[0] = 1(W )[1] 1 (W )[0] = 1. 1 0 CGI 05 p.33/37

NURBS: 2 nd Order Rational Fwd Diff Normalized polynomial forward differences Rationalization P [2] P [1] [ a, 3b] [a, b] 1 (P )[1] = = = [ a, b], 2 0 2 W [2] W [1] 1 (W )[1] = = 1. 2 0 2 (P )[0] = 1(P )[1] 1 (P )[0] = [ a, b] [0, b] = [ a, 0], 1 0 2 (W )[0] = 1(W )[1] 1 (W )[0] = 1. 1 0 2 [0] = 2(P )[0] W [0] 2 (W )[0] P [0] W [0] 2 = [ a, 0] [a, b] 1 2 = [ 2a, b] CGI 05 p.33/37

Curvature of B-spline Ellipse [-a, 3b, 3] [a, b, 1] Y Z X [a, -b, 1] κ = n 1 n = 2ab 2b 3 = a b 2 1 2 1 3 CGI 05 p.34/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i CGI 05 p.35/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i CGI 05 p.35/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i x ti t j = (p t i t j w w ti t j p) + (p t i w tj w ti p tj ) w 2 w 2 CGI 05 p.35/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i x ti t j = (p t i t j w w ti t j p) + (p t i w tj w ti p tj ) w 2 w 2 Again, the 2 nd term is in the tangent hyper-plane, because [(p t0 w w t0 p) (p tm 1 w w tm 1 p) (p ti w tj w ti p tj )] = [( w m 1 w ti ) p t0 p ti 1 p p ti+1 p tm 1 (p ti w tj )] = 0 [( w m 1 w tj ) p t0 p tj 1 p p tj+1 p tm 1 (p tj w ti )] CGI 05 p.35/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i x ti t j = (p t i t j w w ti t j p) + (p t i w tj w ti p tj ) w 2 w 2 Again, the 2 nd term is in the tangent hyper-plane, because [(p t0 w w t0 p) (p tm 1 w w tm 1 p) (p ti w tj w ti p tj )] = [( w m 1 w ti ) p t0 p ti 1 p p ti+1 p tm 1 (p ti w tj )] = 0 [( w m 1 w tj ) p t0 p tj 1 p p tj+1 p tm 1 (p tj w ti )] x ti t i = n i (n i 1) ti t i, i = 0,, m 1 x ti t j = n i n j ti t j, i, j = 0,, m 1, i j CGI 05 p.35/37

Rational Bézier Hyper-Surfaces: 2 nd order derivatives x ti = t i ( ) p(t 0,,t m 1 ) w(t 0,,t m 1 ) = p t i w w ti p w 2 = n i i x ti t j = (p t i t j w w ti t j p) + (p t i w tj w ti p tj ) w 2 w 2 Again, the 2 nd term is in the tangent hyper-plane, because [(p t0 w w t0 p) (p tm 1 w w tm 1 p) (p ti w tj w ti p tj )] = [( w m 1 w ti ) p t0 p ti 1 p p ti+1 p tm 1 (p ti w tj )] = 0 [( w m 1 w tj ) p t0 p tj 1 p p tj+1 p tm 1 (p tj w ti )] x ti t i = n i (n i 1) ti t i, i = 0,, m 1 x ti t j = n i n j ti t j, i, j = 0,, m 1, i j CGI 05 p.35/37

Any Questions? CGI 05 p.36/37

Thanks! CGI 05 p.37/37

References [Cohen01] [Farin02] Elaine Cohen, Richard F. Riesenfeld, and Gershon Elber. Geometric Modeling with Splines:An Introduction. A K Peters, 1 edition, 2001. Gerald Farin. Curves and Surfaces for CAGD: A Practical Guide. Academic Press, 5 edition, 2002. [Hoschek93] Josef Hoschek, Dieter Lasser, and Larry L. Schumaker. Fundamentals of computer aided geometric design. A. K. Peters, Ltd., 1993. ISBN 1-56881-007-5. [Zheng03] Jianmin Zheng and T. W. Sederberg. Gaussian and mean curvatures of rational Bézier patches. Computer Aided Geometric Design, 20(6):297 301, 2003. 37-1