A Surface Interpolating Method for 3D Curves-Nets
Ling Huang JianFeng Zhen Xinxiong Zhu Leiyi
(School of Mechanical Engineering & Automation,
Beijing University of Aeronautics &
Astronautics, Beijing, 100083)
Abstract: This paper
presents an algorithm for surface interpolating on 3D curve-nets based on NURBS
boundary Gregory (NBG) patches. By applying this algorithm complicated surfaces
can be generated with curve lofting and sweeping. Based on them a set of
surface generating tools have been developed and applied in the commercial CAD/CAE/CAM
software system – CAXA-ME and greatly enriched its surface generating
capability.
Constructing mesh surfaces from 3D curve-nets is a widely used modeling tool in commercial CAD/CAM systems which make the design of complex free-form surfaces easily and intuitively. Curves in a curve-net should be smooth enough and intersect with each other to form a mesh as shown in Fig.1. The curve-net may have a rectangular topology as shown in Fig.1 (a) and (b) or an irregular topology as shown in Fig.1(c).
F1
(a) Regular rectangular
topology (b) Irregular rectangular topology (c) Irregular
topology
Fig.1. Three types of curve-nets
This memorandum discusses the interpolation of curve-nets with rectangular topology. In our method free-form surface patches over the curve-nets are generated based on localized boundary information and all the adjacent patches are joined together with continuity. Fig.1 (b) illustrates that patch F1 is generated from the region defined by edges E1, E2, E3 and E4. The surface interpolating method presented generates surfaces with continuity and is based on NURBS boundary Gregory (NBG)patches.
This section describes the main steps of constructing surfaces from 3D curve-nets:
l Step1: Split the curves and transform them to a series of Bezier curve segments suitable for NBG patches interpolation.
l Step2: Define the cross boundary derivatives of curves.
l Step3: Construct NBG patches on every rectangular region.
l Step4: Compose all the NBG patches to a composite surface if needed.
A NURBS Boundary Gregory patch is an extension of a general boundary Coons Patch. NBG patch solved the problem of the twist compatibility at patch corners by taking advantages of Gregory patch. Fig.2 illustrates the concept of the NBG patch. An NBG patch is represented by a combination of three surfaces and defined by Equation (1):
(1)
is a surface interpolating two NURBS curves and , and the cross boundary derivatives and . and are represented in NURBS form as follows:
, (2)
where both of and have control points; denotes the degree of the curves; and () denotes the control points and and denotes the weights of and , respectively; is the j-th B-spline basis function of degree defined by knot vector as follows:
(3)
Fig.2. Concept of an NBG patch
Since the cross boundary derivatives and can be represented in NURBS form, should be a NURBS surface defined by Equation (4):
(4)
where is the i-th B-spline basis function of degree 3 defined by the knot vector in the -direction which is described by . A knot vector in the -direction is defined by Equation (3). has a similar representation. To simplify our discussion, we assume that the degree of the boundary curves is 3 ().
is an additional surface. The relationships between and , and and are shown by Equation set (5):
(5)
Where .
can be represented by bicubic rational boundary Gregory patches (Equation (6) and (7)):
(6)
where
(7)
where , denotes control points and denotes the weights of the corresponding control points . By applying Equations (5), we can get the 32 control points and their weights defining 。
The features of an NBG patch are:
l The
cross boundary derivatives in u- and v- directions can be defined independently. By applying this feature, an irregular
mesh can be interpolated smoothly.
l The shape of an NBG patch can be modified by
adjusting the defining control points as NURBS patch does.
l An NBG patch can be exactly converted to a NURBS surface.
Before constructing a surface interpolating the given curve-nets (See Fig.3), we should deal with the curves as follows:
l Split
each curve at intersection points to get all the rectangular regions. We call the intersection points Corner Points.
l Transform every curve to a series of Bezier curve segments by applying the knot inserting algorithm of NURBS. We call the joining point between two Bezier segments Node.
The CBDs have crucial effect on the shape of the result patches, i.e., they can make the patches effectively reflect the shape of the given curves.
The normal vector at the corner point should be perpendicular to the tangent vectors and at the corresponding corner point, as shown in Fig.4.
Fig.3. Corner point and node Fig.4. The normal vectors at corner points
Fig.5. The normal vectors on boundaries Fig.6. The
cross-boundary derivatives
Now calculate the normal vectors at nodes. As show in Fig.5, E is a node between corner points A and B. We can determine the normal vector at node E by taking a linear blending of the normal vectors and at corner points A and B. is perpendicular to tangent vector at node E of the curve and can be calculated by Equation (8):
where (8)
Where is the dot product of two vectors.
The cross boundary derivatives at corner points and nodes should be perpendicular
to the corresponding normal vectors as shown in Fig.6. The length of those
vectors is determined by taking advantages of one third of the distance between
two adjacent curves.
As shown in Fig.7, the shape of
patches and with common
boundary is controlled by
boundaries ,,, and . So the cross boundary derivative of patch on boundary should be
determined by boundaries , and to reflect the
shape change of the adjacent boundaries and . Similarly, the cross boundary derivative of patch on boundary should be
determined by boundaries , and . and are joined with continuity at ; and are joined with continuity at . So and can be joined with continuity on boundary if ,where is a variable changing along . By applying the
same strategy we can determine cross boundary derivatives , and .
Fig.7. Determining CBDs of curve mesh
As show in Fig.8, after defining the cross-boundary derivatives, the control points both sides next to those on common boundary and and and can be calculated.
Fig.8. Joining two NBG patches
Now calculate the inner control points of patches , and . Two NBG patches will join together with continuity along common boundary if they join together with continuity on every Bezier segment of the boundaries. So we can join two patches smoothly and determine the inner control points and their weights of patches and by applying the algorithm of joining rational boundary Gregory patches, as shown in Fig.8. By applying Equation (5), the control points and weights of can be determined。
A number of NBG patches defined on the rectangular regions of the curve-nets can be constructed and all the adjacent patches can be joined together with continuity by the use of the procedure presented. All the patches can be composed into a composite surface if needed.
The algorithm has the following
advantage:
l The shape of the result surfaces can be controlled
and modified easily because only local information is referenced.
l NURBS
Boundary Gregory Patch solves the problem
of twist vectors incompatibility at corner points in the super-linear interpolation
of mesh surface and ensures the smoothness of every patch and continuity
between adjacent patches.
l The shape of result surface can effectively
reflect the shape of the curves in a net by the method determining CBDs.
l The amount of data to represent the mesh surfaces
is less than that of NURBS surfaces.
As shown in Fig.9, Fig.10 and Fig.11, the algorithm has been used to a number of cases in curve-nets interpolation. The algorithm has been realized by ourselves with C and C++, and has been incorporated into our commercial CAD/CAE/CAM software system —CAXA-ME.
(a) Curve-nets
given
(b) Mesh surface generated
Fig.9. Rear axle surface generation
(a) Curve-nets given
(b) Mesh surface generated
Fig.10. Aerodynamic Fairing surface
generation
(a) Curve-net given
(b) Mesh surface generated
Fig.10. Water tank surface
generation
[1] Konno K. And Chiyokura H., A approach of designing and controlling free-form surfaces by using NURBS boundary Gregory patches, Computer aided geometric design, Vol.13, 1996, pp.825-849.
[2] Gregory J.A., Smooth interpolation without twist constrains, Computer Aided Geometric Design, Academic-Press, 1974, pp.27-33.
[3] Chiyokura H., Takamura T., Konno K., Harada T., surface interpolation over irregular meshes with rational curves. In: Farin G., ed., NURBS for curves and surfaces design, SIAM, Philadelphia PA, 1991, pp.15-34.
[4] Piegl,L. and Tiller,W., The NURBS Book, Springer, 1995.
[5] Toriya H. And Chiyokura H., eds., 3D CAD Principles and Application, Springer, 1993.