# Curves and surfaces in computer aided geometric design - Yamaguchi F.

**Download**(direct link)

**:**

**61**> 62 63 64 65 66 67 .. 90 >> Next

ef+|ef+;=^- (á.çç>

This equation can be changed into the following form.

a*=p,+j {ë - } «2f-1+e,v;)} • («4)

Letting <5f be the difference between the /ñ-th and (Zc—l)-st iterations of Qt, we obtain:

*+¦;)}• (6.35)

6.1 Uniform Cubic Â-Spline Curves

249

Q,-!

Qn

Q,+1

Fig. 6.15. P-table and Q-table in an inverse transformation algorithm. (a) open curve; (b) closed curve

For initial values, in the case of an open curve for i = 1, 2, n— 1 (in the case of a closed curve for ã = 0, 1, n) Q? = Pt, Qo=P\ and Q° = Pn_j (in the case of a closed curve, Q°_l=Pn, Q„+ X=P0). In addition, in Eqs. (6.34) and (6.35), in the case i= 1, Qo “1 is used in place of Qo (in the case of a closed curve, for i = 0 QkSi is used in place of Q-x). By making such changes that do not affect the essential content of the algorithm, the inverse transformation can be carried out very simply and at high speed. This algorithm is given below. <5S in the algorithm is the allowable error, which is set initially. Symbols outside parentheses give processing for generating an open curve; those inside parentheses, for a closed curve.

Inverse transformation algorithm (refer to Fig. 6.15)

Perform the following processing with respect to each of the x, ó and z coordinates.

Step 1

For i = 1, 2, ..., n — 1 (ã' = 0, 1, ..., n)

Pt —»• Qt

then Qo, Qn-i —*¦ Qn (Qn^Q-i, Qo * Qn +1)•

Step 2

For i = 1, 2, ..., n— 1 (i = 0, 1, ..., n)

ã,=ë-à+|{ë-{(å,-,+à+1)} (â.çá)

s,+Q,^Q,

then Q1 >Q0, Qn-1 * Qn (Qn *(2-i? Qo * Qn+i)-

250

6. The Á-Spline Approximation

Step 3

If max{<5f}><5s, then return to Step 2.

If max{5f}^5SJ the calculation is completed.

Equation (6.36) can be applied for generation of either an open or closed curve, and the algorithm is extremely simple. In addition, the multiplication by \ in Eq. (6.36) can be replaced by a shift operation, so the inverse transformation can be performed at very high speed.

As will be discussed below (refer to Sect. 6.2.3) this inverse transformation algorithm for curves can also be applied to inverse transformation of surfaces.

6.1.5 Change of Polygon Vertices28*

Let us try to change the polygon vertex vectors of a uniform cubic Â-spline curve so that at the starting and end points it will appear to have properties similar to those of a Bezier curve (refer to Sect. 6.1.1).

In Fig. 6.16, the direction of the tangent vector at the end point Pl of the curve segment Pi(t) is the same as that of the vector from Q0 to Q2. Draw a straight line from point Px parallel to line Q0Q2', the intersection of this line with side QiQ2 of the polygon is Qxc. As was mentioned in Sect. 6.1.2, point Pl is on the line joining the midpoint of line segment Q0Q2 to Qu and is 1/3 of the

Fig. 6.16. Change of a polygon vertex in the neighborhood of the starting point of a curve

Fig. 6.17. Change of a polygon vertex in the neighborhood of the end point of a curve

6.2 Uniform Bi-Cubic Â-Spline Surfaces

251

way from Qx. Consequently, when 0Oc, Qx c and 02 are given, the true curve defining vectors 0O and 0t are found as:

0O = 02 + 6(0o,c-01,c) (6-37)

01,ñ 02

01 — 01,c +

2

3 01.C-02

2

(6.38)

Similarly, for the end point of the curve (Fig. 6.17), if 0„_2, 0„-i,c and Qn c are given, the true curve defining vectors Qn-X and Qn are:

e»-.=e,-.,c+-a"''“e”“2

2

3 0„-1,ñ-0È-2

(6.39)

2

0, = 0,-2 + 6(0,lC-0,-ilC). (6.40)

The polygon 0Oc, Ql c, 02, ..., 0„_2, Q„- 1<C, Qn,c and the curve are displayed on the screen. If any of the polygon vertex vectors 0O c, 0l c, 0„_ liC, Qn c that is displayed should vary, 0O, Qx or Qn-X, Qn can be calculated from Eqs. (6.37), (6.38), (6.39) and (6.40). If the curve segment that is affected is recalculated, then it appears to resemble a Bezier curve, and the Â-spline curve shape can be controlled.

6.2 Uniform Bi-Cubic Á-Spline Surfaces

6.2.1 Surface Patch Formulas

A bi-cubic surface patch can be defined using the uniform B-spline functions

(6.16) (Fig. 6.18):

Pl,J(u,w) = [N0A(u) JVlt4(w) N2A(u) N3A(uJ]

¦0-1, ,-1 a-u à-i,J+i 0i —l,j + 2

0.-1 0,J+i Qi,J + 2

0. + U-1 Q.+1.J 0i+i,j+i 0 + 1,, + 2

.01 + 2, j-1 i + 2, j + 1 0i + 2, j + 2 _

'NoaW

N,a(w)

N2A(w) N3A(w)_

(6.41)

- UMRBRMR WT

(6.42)

252

6. The Á-Spline Approximation

Fig. 6.18. Uniform bi-cubic Á-spline surface patch and surface defining vectors

where:

Qi-lJ Qi-lJ+1 Qi-lJ+2

Qu QiJ+1 QiJ + 2

Qi + l,j-l Qi+ij Qi+lJ+l Qi + 1, j + 2

_Qi + 2,j-l Qi + 2J Q-i + 2,j + 1 Qi + 2,j + 2_

è=[èú è2 è 1], W=[w3 w2 w 1].

As shown in Fig. 6.18, one Á-spline surface patch is defined by a net consisting of 16 vertices. In contrast to the case of a Bezier surface patch, the uniform B-spfine surface patch of Eq. (6.41) generally does not pass through any of the surface defining vector (net vertices). The 4 corner points of the surface patch are in the vicinity of the 4 surface defining vectors QUj, Qtj+1, Qi + ij and Q^i + 1,7 + 1’

Let us look at the relation between the Â-spline surface of Eq. (6.41) and the Coons bi-cubic surface. Equating formulas (6.42) and (3.102) gives:

**61**> 62 63 64 65 66 67 .. 90 >> Next