ME3261-IV Surface Models & Fitting (1-On-1)
ME3261-IV Surface Models & Fitting (1-On-1)
u = ui
r(u i , v j)
r u (u i , v j )
P 00 P 11
v = vj
u
v= 0
u=1
P 10
Properties of A Surface Patch
P 01
u = ui
r(u i , v j )
r u (u i , v j )
P 00 P 11
v = vj
u
v=0
u=1
P 10
Properties of A Surface Patch
(1) 4 corner points: r(0, 0), r(1, 0), r(0, 1), r(1, 1).
(2) 4 boundary curve segments: r(0, v), r(u, 0), r(1, v), r(u, 1).
(3) 2 partial derivatives at any point (tangent vectors):
ru = r (u, v) / u; rv = r (u, v) / v
ru and rv define the tangent plane.
(4) 1 twist vector: ruv = r (u, v) / u v
(5) Surface normal vector (normal in short): N(u, v) = ru rv
unit normal vector n
n(u, v) = (rurv) / | ru rv |
Application example: an offset surface (with a distance d) is given by
ro(u, v) = r(u,v) + d n(u,v)
Solution P (x, y, z)
The normal vector of the plane is
N = (a, b, c).
Given any point, P = (x, y, z), on the plane, the vector from
the origin O (0, 0, 0) to this point is given as OP = (x, y, z)
r (u, v) = with 0 u, v 1
D=
Standard Polynomial Patch Model
The bi‐cubic polynomial surface patch may be used in constructing a
smooth surface interpolating to a 4 4 array of 3D data points {Pij}.
See the example below:
{Pij: i = 0, 1, 2, 3; j = 0, 1, 2, 3}
The parameter values at the corners may be assigned as follows:
u = v = 0 at P00;
u = 0, v = 1 at P03;
u = 1, v = 0 at P30;
u = v = 1 at P33
Standard Polynomial Patch Model
Parameter values at the remaining data points (?) may be determined
based on chord‐lengths.
E.g., the value of u at P11 can be determined as
u = |P11–P01| / (|P11 – P01|+|P21–P11|+|P31–P21|)
The 16 data points can then produce 16 linear equations containing dij,
which can be obtained by solving the 16 linear equation system.
Problems:
If the degrees of the surface patch are raised, the resulting surface tends
to show unwanted oscillations.
Ferguson Surface Patch Model
A surface patch interpolating over 4 corner points {Pij: i, j = 0, 1}.
o 12 corner conditions
sij: u ‐ tangent vector at Pij
tij: v ‐ tangent vector at Pij
r(u, v)
xij: twist vector at Pij
Ferguson Surface Patch Model
Assuming the above 16 vectors are given, we have the
following relations at the 4 corners of the surface patch:
r(i, j) = Pij
ru(i, j) = sij
rv(i, j) = tij i, j = 0, 1
ruv(i, j) = xij
where,
r (u, v) = U D VT
ru (u,v) = r(u, v) / u
rv (u,v) = r(u, v) / v
ruv(u,v) = 2r(u, v) / uv
Ferguson Surface Patch Model
Solving the 16 linear equations for the unknown coefficients dij
gives us a bi‐cubic Ferguson patch equation:
r (u, v) = U D VT = U C Q CT VT for 0 u, v 1
C=
Q=
r(u) = =U MR
V1
V2 V2
V1
V3 V3 V0
V1 V3 V2
V0 V0
M=
B=
Evaluation: At u = 0, v = 0:
r(0,0) = V00
s00 = 3(V10 – V00)
t00 = 3(V01 – V00)
N=
Surface Construction (Surface Fitting)
Input Summary
{Pij} i = 0, 1, 2, …, m; j = 0, 1, 2, …, n: Data points
{s0j, smj} j = 0, 1, 2, …, n: u‐direction tangents at boundary points
{ti0, tin} i = 0, 1, 2, …, m: v‐direction tangents at boundary points
x00, xm0, x0n, xmn: twist vectors at the 4 corner points
Surface Construction Methods
si, j si, j 1 0 0
si1, j si1, j 1 0 0
FMILL Surface Fitting
Summary
A composite surface composed of mn Ferguson patches
r1(u, v), r2(u, v), and r3(u, v) Pi 1, j 1 Pi 1, j t i 1, j 1 t i 1, j
sharing the mesh point Pij P Pi , j t i , j 1 t i , j
Q1 = i , j 1
s i 1, j 1 s i 1, j x i 1, j 1 x i 1, j
r1(u, v) = U C Q1 CT VT
for 0 u, v 1 s i , j 1 si,j x i , j 1 x i , j
Ferguson Surface Fitting
Applying the C2‐condition to the common boundary of r1(u, v)
and r2(u, v), and to that of r1(u, v) and r3(u, v), we have
We have
ruu1 (1, v) = [6 -6 2 4] Q1 CT VT
[6 -6 2 4] Q1 = [-6 6 -4 -2] Q2
Ferguson Surface Fitting
• Totally 4 linear equations. The 2nd equation is (for i = 1, 2, …, m – 1)
(1) Solving (a) to obtain all the {sij} at j = 0, 1, 2, …, n - ({s0j, smj} are known)
(2) Solving (c) to obtain all the {tij} at i = 0, 1, 2, …, m - ({ti0, tin} are known)
(3) Solving (b) at j = 0 and j = n to obtain {xi0} and {xin} for i = 1, 2, …, m – 1
(4) Solving (d) to obtain {xij} at i = 0, 1, 2, …, m.
Surface Construction (Fitting)
Input Summary
Pij: i = 0, 1, 2, …, m; j = 0, 1, 2, …, n
{s0j, smj}: u‐direction tangents at boundary points
{ti0, tin}: v‐direction tangents at boundary points
{x00, xm0, x0n, xmn}: twist vectors at corner points
Ferguson Surface Fitting
N=
B‐Spline Surface Fitting (The Final Control Points)
Question:
When one control point is changed, how many patches
are affected?
Input Data Preparation for Surface Fitting
Assumption for the surface fitting methods
The input data were given in the standard “matrix” form
Implicitly assumed that the input data were “true” coordinate values on
the surface
In reality
The input data are usually given as a collection of data paths (possibly
obtained from a CMM or laser scanner).
Individual data paths may consist of unequal number of data points that
are subject to errors
Thus, in order to construct a smooth composite surface from a
collection of data paths, 3 phases of input data preparation:
Curve fairing
Re‐meshing
Estimation of boundary tangents and corner twist vectors.
Curve Fairing
Fairing is a term used to mean the adjustment of the position of input data
points in order to improve the smoothness of interpolating curves.
Interactive fairing
No unwanted inflections