DEPARTMENT OF TECHNOLOGY

Size: px
Start display at page:

Download "DEPARTMENT OF TECHNOLOGY"

Transcription

1 STUDIES FROM THE DEPARTMENT OF TECHNOLOGY AT ÖREBRO UNIVERSITY ISSN Implementation of NURBS curves into the VARKON CAD system Sören Larsson, Johan Kjellander No:8 July 14, 2003 Örebro universitet Institutionen för teknik Örebro Örebro University Department of technology SE Örebro, Sweden

2 Abstract This paper describes the implementation of NURBS-curves into the VARKON CAD-system. NURBS is an acronym for Non Uniform Rational B-Spline and is widely used in Computer Aided Design (CAD) to represent both curves and surfaces. The software sources of the VARKON CAD system is released under GNU/GPL licence, and is now maintained by the CAD-research group at Örebro University. The document gives a background to the area of curves in Computer Aided Design, different curve types, their main properties etc. This introduction is followed by a detailed explanation of the theory behind NURBS and the implementation in VARKON. During the implementation an effort has been made to benefit from the structure of previously implemented curve types. This made it possible to reduce the need of new code mainly to the evaluation routines. The possibility to make geometrical analyzes on a curve is an important part of a CAD-system. The theories and implementations of derivatives, normals and curvature are explained here as well as the calculation of an analytical offset curve. The document can serve as an introduction to curves in Computer Aided Design as well as an example of what kind of problem one has to deal with when implementing geometric entities in a CAD-system.

3 CONTENTS 1 Contents 1 Introduction 3 2 The use of curves Early curve modeling techniques Curves in Computer Aided Design Polynomial curve Offset curve Intersect curve Silhouette curve Geodesic curve Polynomial curve by approximation Planar curves Non planar curves Parametric curve representation 8 4 Polynomial curves Conic sections Cubic polynomial segments Higher degree polynomial curves Rational polynomials Splines Bezier curves B-splines and NURBS Curve continuity The VARKON CAD system Background The use of VARKON Curves in VARKON Data structure Creation and evaluation Introduction to NURBS Degree and order The knot vector Weights Summary Implementation in VARKON Data structure Evaluation of positions Definition of B-spline The evaluation steps Rational curves Implementation Calculation of basis values Derivatives

4 CONTENTS Theory Implementation of the first derivative Implementation of the second derivative Curve Geometry Curvature Tangents and normals Offset curve Position in offset First derivative in offset Second derivative in offset List of figures 36 References 37 Appendix A: GEevalnc.c 38 Appendix B: Manual page 49

5 1 INTRODUCTION 3 1 Introduction In mechanical engineering we design and manufacture real world objects. To do that we need to model their geometry so that we can simulate their behavior and control the machines needed to manufacture them. Geometric modeling has always been of great importance in mechanical engineering, even in the old times when everything was done manually. With the introduction of computers geometric modeling became easier and more accurate. In recent years Computer Aided Design has radically increased the use of geometric models. We are now approaching a point when it will be very difficult to do any design work at all without a CAD-system. It should be remembered though that most of the mathematics on which todays tools are based was developed a long time ago and in use by engineers long before computers existed. The line and the circle are probably the most common shapes in geometric modeling. Try to imagine though a world built with straight lines and circles only as the basic shape elements. It is rather obvious that we need more complex shapes to describe the world we live in. Think of the spiral curve that forms the shell of a snail or the helix curve that is used by the DNA molecule. Think of the shape of a car or a ship or an aeroplane, or think of the shape of a nice looking art object. In fact, the straight line and the circular arc are relatively uncommon shapes in real life. This paper is concerned with the modeling of curves that are not straight lines or circles. There are many such curves with specific names like the spiral or the helix but in modern geometric modeling we also use curves like conics and splines and offsets and many others. From a users point of view these curves have different geometric properties and require different kind of input and understanding. From the systems implementers point of view they usually have different mathematical representation and may need different data structures and algorithms to be implemented. Since we are primarily interested with the problem of implementing curve modeling functions in a CAD system we would of course like to find one single mathematical representation general enough to cover all curve types, ie. a mathematical model that would be capable to exactly represent a helix or a spiral or an ellipse or an offset or an intersect or a spline etc. Unfortunately this is not possible but a curve representation which covers many of the basic curve types and is commonly in use is the NURBS curve. When the VARKON system was originally developed in NURBS curves were not commonly used in commercial software and the NURBS representation was therefore not implemented but as NURBS have become more and more popular we see a need for NURBS also in VARKON. Örebro university is currently the maintainer of the GNU/GPL sources of the VARKON system and it was therefore decided to implement support for NURBS curves in VARKON, mainly as an exercise. This paper describes the background and the actual implementation done by Phd student Sören Larsson with help from his supervisor Dr. JohanKjellander during 2002.

6 2 THE USE OF CURVES 4 2 The use of curves 2.1 Early curve modeling techniques Ship design is an early application of mechanical engineering, at least some thousand years old. In those days drawings were not common, most of the modeling was done in one mans head and transferred to the next generation by the spoken word only. Still, many ships were built and all of them used the curve as its main shape element. It was only a few hundred years ago that engineers started to use paper drawings and mathematical methods to describe the geometry of their products. A ships hull was often described by a longitudinal curve representing the keel or backbone (spine) of the hull along with a set of curves in the transverse direction representing the frames or sections (ribs) of the hull. See figure 1. Figure 1: Keel curve with sections. The actual construction of a hull was quite similar. First you build the backbone of the hull and then you set up the frames like ribs on the backbone. Finally you add planking outside the frames to form the actual 3-dimensional surface of the hull. The backbone and frames are planar curves. See figure 2. With the introduction of paper drawings the shape of a hull could be described by simply drawing these curves on paper, usually not in full scale of course. To build the hull from the drawings require that you somehow transfer the shape from the paper to the construction material (usually wood). One way to do this is to measure the coordinates of points on the drawing, scale them to full size and plot them on the construction material. If you transfer a large number of points for each curve you can then connect them into a full scale curve with reasonable accuracy, at least after some training. It was now that tools like the duck and the spline was invented. This process required a flat surface large enough to fit the actual size of the part to shape. The loft floor of the building was an ideal place and so the process was named lofting. The technique developed for ships was easy to adopt to new products as they were invented. First automobiles and then aeroplanes were modeled and built using the same lofting technique. With mass production and the introduction of new manufacturing processes however the low accuracy of manual lofting slowly became a problem. In the middle of the 1900:s the first electronically controlled plotting machines came to use. These could draw curves in full scale with very high accuracy if fed with accurate data. So, the paper drawing was replaced by the mathematical model. Instead of drawing a section of the hull on paper a loftsman would now define the section using the exact mathematical representation of the curve to be used. He would

7 2 THE USE OF CURVES 5 Figure 2: Backbone with frames (upside down). then calculate points on the curve using a mechanical calculating machine and send these points to the electronic drawing machine for full size plotting. This was a big step forward as far as accuracy is concerned. On the other hand it required loftsmen with good knowledge in the mathematics of geometry. The invention of the computer made life much easier for loftsmen. Very soon they started to develop software for mathematical modeling of curves and surfaces. At the same time the first electronically controlled manufacturing machines came to use and the time was now ready to let the lofting programs control the manufacturing processes directly. The aeroplane and automobile industry were pioneers in this development. Lofting programs developed by specialists for specialists slowly became easier and easier to use. With the introduction of interactive computer graphics some time around 1970 it became possible to develop software that could be used even by non specialists, at least for limited applications. This development is still going on and today we see large international companies compete in the development of the most powerful and easy to use software for Computer Aided Design. Geometric modeling has become a multi billion dollar industry! 2.2 Curves in Computer Aided Design Modern CAD-systems usually include a number of different ways to create and manipulate curves of several different types. Curves are also very often created indirectly by the system as the result of more complex modeling operations Polynomial curve This is the obvious way to create a curve. Depending on what kind of polynomial curve you want to create you will have to define a number of data that controls the shape of the curve.

8 2 THE USE OF CURVES 6 With an ellipse for example, this could be the coordinates of the center of the ellipse and it s minor and major radius. With a spline it could be a number of points, optionally with tangents. Splines, Bezier curves and NURBS are all polynomial curves. Even conics, circles or circular arcs can be represented by polynomials if these are permitted to become rational, ie. one polynomial divided by another polynomial. Chapter 4 describes polynomial curves more in detail Offset curve An offset curve is a curve that is defined by the size of its offset distance to another curve. Offset curves are very important when modeling objects of constant thickness and to generate tool paths for numerically controlled machines. Offset curves are best represented by their offset distance and a reference to the original curve. Chapter 7.5 describes the implementation of offset curves in VARKON Intersect curve Intersect curves are curves defined by the intersection of two surfaces. Intersect curves can be defined directly by intersecting one surface with another or indirectly as the result of an operation between two solid bodies or a solid and a surface. Intersect curves can be used to define some interesting part of an object but are also often used to define a part of a surface to remove by trimming. Intersect curves are usually computed as a set of points along the curve. For practical purposes these points are then often interpolated (splined) to a continuous curve and stored in the database as such Silhouette curve This curve is defined by the visible edge of a surface as viewed from a specific direction. Computation and storage is similar to the intersect curve Geodesic curve This curve represents the shortest possible path between two points on a surface. Computation and storage is similar to the intersect curve Polynomial curve by approximation Due to the different mathematical representation of the curves described above they are not always compatible with each other or with surface geometry. This may result in situations where the system will not let you use a curve to define a new curve or surface the way you might have expected. In one system for example it may not be possible to create an offset curve if the original curve is not a polynomial curve. In other systems it may not be possible to define a surface if the limiting curves are not polynomial. To overcome this you can usually define a polynomial curve by approximating a curve which is not polynomial and use the approximate curve where the non polynomial curve did not work. Some systems do this automatically. It should be noted though that uncontrolled use of this functionality may impose problems with accuracy in later stages of the design work.

9 2 THE USE OF CURVES Planar curves Most curves can be planar. This means that they lie entirely in one plane and can be described in terms of 2-dimensional coordinates X and Y only. Some curves, like conics are planar by definition but most curves need not be planar in all cases Non planar curves Many curves need not be planar. The spline for example may very well twist out of the plane and become truly 3-dimensional. The general conic defined by a third degree rational polynomial may also be non planar.

10 3 PARAMETRIC CURVE REPRESENTATION 8 3 Parametric curve representation The first decision to make when implementing a new curve type into a CAD system is its mathematical representation. This will influence the data structures needed to store the curve in the CAD database and it will also influence the way to implement all the routines needed to use and to manipulate the curve. The most important routine is the one used to evaluate coordinates and derivatives of different points on the curve. This routine is used by all higher level routines needed for visualization as well as large numbers of geometric operations. It is of great advantage from the implementors viewpoint if all curves in the CAD system have a similar representation. This makes it possible to treat all curves in a similar manner, to a large extent using the same code. To achieve this a two layer implementation is needed where the low layer is curve dependant and the higher level is the same for all curves. A mathematical representation which has showed to be very useful in this context is the parametric representation. A parametric curve is defined by a parametric equation P (u) where P (u) = (x(u), y(u), z(u)) (3.1) and the parameter u is defined in some interval, 0 to 1 for example. Polynomial curves are easy to represent parameterically. A cubic polynomial curve for example has the following parametric representation x(u) = k 0x + k 1x u + k 2x u 2 + k 3x u 3 (3.2) y(u) = k 0y + k 1y u + k 2y u 2 + k 3y u 3 (3.3) z(u) = k 0z + k 1z u + k 2z u 2 + k 3z u 3 (3.4) or with vector notation P (u) = k 0 + k 1 u + k 2 u 2 + k 3 u 3 (3.5) where k i are 12 scalar constants that define the shape of the curve. Evaluating the coordinates for a point on the curve is straight forward and computationally very fast. It is also easy to evaluate the curve tangent P and higher order derivatives used by higher level routines. Offset curves, intersect curves and other curves are also possible to represent parameterically. With the parametric representation as the common factor the high level routines may not need to know the exact equations or algorithms that implement each type of curve. This is taken care of by low level routines. The important thing here is that the low level routines are relatively few. The high level routines are numerous and often very complex. When VARKON was developed it was decided to use this technique, mainly because it would make it possible to add new curve types at a later stage with a minimum of programming. First

11 3 PARAMETRIC CURVE REPRESENTATION 9 version of VARKON included support for cubic polynomial and offset curves but not NURBS curves. Some years later the intersect and silhouette curve was added. Since NURBS curves are relatively easy to represent parameterically it was then decided, more than 15 years after the original design of the system, to add NURBS curves to VARKON. We then expected only to have to implement routines on the lower level and reuse all code on the higher level. This turned out to be almost true, but to get everything working we had to modify one or two routines on the higher level as well. Still, this is a good result that shows that the initial design of the system is well justified.

12 4 POLYNOMIAL CURVES 10 4 Polynomial curves Different polynomial curve types have different mathematical representation as well as different geometrical properties. This chapter briefly describes the most common polynomial curve types used in geometric modeling. 4.1 Conic sections A conic section is a curve defined by the intersect between a plane and a cone. Depending on the orientation of the plane the section will become a circle, an ellipse, a parabola or a hyperbola. See figure 3. pictures/conics Figure 3: Different conic sections, from left to right: circle, ellipse, hyperbola, parabola Conic sections are planar curves without inflexion and thus well suited as section curves in lofting. Many ships and aeroplanes have been designed with conic sections defining their hulls. A common parametric representation for conic sections is the rational quadratic polynomial, see below. 4.2 Cubic polynomial segments The cubic parametric polynomial is defined by 12 coefficients, see equations (3.1) - (3.5). If we prescribe the x, y and z coordinates for the two points P0 and P1 where the curve starts and ends we still have 6 degrees of freedom left to control the shape of the curve. One way to do this is by supplying a start tangent T0 and end tangent T1 each with x, y and z coordinates, see figure 4. If we use these 4 boundary conditions to solve equation (3.5) for the constants k i we get the following form of the cubic polynomial P (u) = P 0(1 3u 2 + 2u 3 ) + P 1(3u 2 2u 3 ) + T 0(u 2u 2 u 3 ) + T 1(u 3 u 2 ) (4.1) which is sometimes referred to as the geometrical form of equation (3.5). It can be shown [1] that the cubic polynomial curve as defined above is a good approximation of an elastic beam

13 4 POLYNOMIAL CURVES 11 Figure 4: Cubic parametric curve segment under load. For an engineer this is an important property of the cubic polynomial. It is easier to work with a curve that behaves similar to some well known phenomena of the real world than a curve which is a pure mathematical construction. A cubic polynomial as defined by equation (3.5) or (4.1) is often referred to as a cubic segment. The reason for this is that several cubic polynomials (segments) are usually needed in order to define a complex shape. The spline for example is a composite curve defined by two or more cubic segments. Cubic segments differ from conic sections in that they may have at most one inflexion point. This means that locally curvature may be zero. See figure 5. Figure 5: Cubic parametric curve segment with inflexion 4.3 Higher degree polynomial curves An alternative to the composite curve defined by two or more cubic segments is to use only one segment but raise the degree of the polynomial to a higher value than 3. The CAD system CATIA for example uses this technique and allows for polynomials all the way up to degree 21. It is commonly not recommended though to use polynomials of high degree due to the risk for numerical instability in calculations. 4.4 Rational polynomials A rational polynomial is defined by one polynomial divided by another polynomial. Rational polynomials of second degree (quadratics) can be used to represent conic sections. A common

14 4 POLYNOMIAL CURVES 12 way to simplify the expression of rational segments is in terms of 4-dimensional homogenous coordinates, ie. P = (xw, yw, zw, w) where w is the 4:th coordinate. With this notation the rational segment becomes similar to the non rational segment with the difference that all operations include 4 coordinates instead of three. A 3-dimensional real world coordinate is derived from the 4-dimensional homogenous coordinates by dividing xw, yw, and zw respectively with w. x = xw w (4.2) y = yw w (4.3) z = zw w (4.4) For details on rational quadratics, rational cubics and homogenous coordinates see Faux and Pratt [2] chapters 3 and Splines A spline curve is a curve composed of two or more segments where each segment is defined by its own polynomial. To create a spline the user specifies three or more points for the spline to interpolate. The CAD system then automatically sets up the right equations to calculate the tangents at all points and then stores the spline in the database as a number of consecutive polynomial segments. The exact way to calculate tangents can differ between systems. VARKON includes three algorithms, Ferguson, Chordlength and Stiffness that give slightly different results. It is also sometimes possible for the user to control the shape of a spline by supplying a geometrical constraint at each end of the spline. Splines are easy to create when you have a number of points you want to connect with a smooth curve. If cubic segments are used a spline is a good approximation of the old wooden spline used for lofting. See Kjellander [1] for more details on cubic splines. 4.6 Bezier curves The Bezier curve is a curve that is defined by a number of points but it only interpolates the first and last point. The rest of the points are control points that influence the shape of the curve but the curve does not pass through them as the spline does. The Bezier curve is an approximating curve with a lot of smoothness and well suited for sketching. A Bezier curve is always described by one single polynomial even if it is defined by a large number of points. The polynomial is produced by a sum of terms. See Kjellander [3] chapter 4 or Faux and Pratt [2] chapter 5. For each new control point a new term with higher degree is added. A special situation arises if two control points have the same coordinates. Such a point is said to have multiplicity and it has a stronger effect on the curve than normal points, ie. the curve passes closer to this point than other points.

15 4 POLYNOMIAL CURVES B-splines and NURBS The B-spline reminds of the Bezier curve. It is an approximating curve and it is created and used in a similar way as the Bezier but it is not based on a single polynomial of high degree. The B-spline is more like the ordinary spline in this sense, ie. composed of separate pieces each described by its own polynomial. An effect of this is that if you move a B-spline control point only the portion of the curve close to the control point will alter its shape. This is often referred to as the local control property of the B-spline. If you move a Bezier control point the entire Bezier curve will change. As stated above, the control points of a B-spline are normally not passed by the curve. It is possible though, to calculate node points on the curve and it is also possible from node points on the curve to calculate the corresponding control points. This makes it possible to use the B-spline either as an interpolating curve or as an approximating curve. The user can specify points to interpolate and the system can calculate and store the corresponding control points instead. If the user needs sketching capabilities, he can use the control points directly instead. This makes the B-spline formulation for curves very flexible. B-splines can be rational just like other polynomials and can then be used to represent also conic sections. The capability of the B-spline to be used as an approximating or interpolating curve and to represent conic sections as well as cubic splines or polynomials of higher degree has made it popular from the implementors point of view. Many CAD systems have the rational B-splines implemented and they are then usually called NURBS. Chapter 6 and 7 include more details about B-splines and NURBS. 4.8 Curve continuity Depending on the type of curve used and how it it created it can have a higher or lower degree of continuity, ie. C0, C1, C2 etc. C0 continuity means that the curve is continuous with no gaps but not necessarily continuous with respect to its first derivative (tangent). A C0 curve may thus have sharp kinks. A C1 curve has continuous first derivative and a C2 curve is also continuous in its second derivative. C2 also implies continuous variation of curvature. For higher degree polynomials C3 and more may also apply. Single polynomial segments are usually C2 continuous or higher but a curve defined by two or more segments like the spline (and even the B-spline) is not necessarily C2 or even C1 continuous. This depends on the algorithm used to create the spline. The Ferguson spline in VARKON is C2 continuous but the Chordlength and Stiffness splines are only C1 continuous. NURBS may or may not be C2 or more but are usually at least C1 although even C0 is possible by the use of multiplicity. In some systems composite curves can be created by assembling segments of different types. A curve could then start out as a B-spline then turn into a high degree polynomial and finally end as a Bezier or even an offset or intersect. The total degree of continuity for such a curve depends on the lowest degree of continuity of the individual pieces and how they are connected.

16 5 THE VARKON CAD SYSTEM 14 5 The VARKON CAD system 5.1 Background VARKON was originally developed by a group at the University of Linkoping in Sweden during under the leadership of Dr. Johan Kjellander who was then the president of Microform AB. From 1986 the system was owned, marketed and further developed by Microform AB. The source code of VARKON is now maintained by the CAD research group at the Department of Technology at Örebro University in Sweden. VARKON is written in ANSI portable C and has been compiled and successfully executed on many different platforms. The UNIX version has a user interface based on X-Windows and the PC version uses Microsoft WIN The use of VARKON VARKON is a powerful geometric modeller. Basic 3D entities are points, lines, arcs, curves, surfaces, coordinate systems and transformations. Several representations of parametric curves are implemented including rational polynomial, analytical offset and curves on surfaces so called UV-curves. Surface representations include rational polynomial, lofted procedural, analytical offset and a faceted surface for approximations. Operations include intersects, closest point, silhouette, curvatures, transformation, trimming, export, import and approximation. Though VARKON can be used as a traditional CAD-system with drafting, modelling and visualization, the real power of the system is in parametric modelling and CAD applications development. VARKON includes interactive parametric modelling in 2D or 3D but also the MBS programming language integrated in the graphical environment. More information about VARKON and MBS can be found at VARKON s home page: Curves in VARKON VARKON uses two different representation schemes for curves. The first is the rational cubic parametric multisegment. This representation is used for splines and conics and 3D circular arcs. A spline is created using positions and optional tangents in the following way... cur_spline(id,type,pos_1,tan_1,pos_2,tan_2... pos_n, tan_n); There is no upper limit for the number of points but a minimum of two is always needed. Where no tangents are given VARKON calculates (splines) tangents automatically using the algorithm specified by the type parameter. You can choose between Ferguson, Chordlength and Variable Stiffness. End tangents if not specified are calculated using the free end constraint (curvature = 0). A multi segment conic is created using positions, tangents and intermediate points or P-values (I/P)... cur_conic(id, "FREE", pos_1, tan_1, I/P_1, pos_2, tan_2, I/P_2... pos_n, tan_n);

17 5 THE VARKON CAD SYSTEM 15 A cur conic becomes a true planar quadric if possible otherwise a general twisted cubic rational. For those who wish to define cubic rationals using other methods or to import them from other systems there is also a low level routine cur usrdef where you set all coefficients yourself. For curves on surfaces VARKON uses a representation based on multi segmented cubic rationals in the UV-plane of the surface. An intersect between two surfaces for example... cur_int(id,surface_id_1,surface_id_2); creates a UV-curve. Other methods are cur iso for curves of constant U or V and cur sil for silhouette curves. The UV-representation is computationally much heavier than the cubic rational but necessary to achieve accuracy enough for complex modelling. The final representation is the analytical offset which is actually an extension of the two schemes described above. Any plane curve, cubic rational, UV-curve or offset-curve can be used to create a new curve on a constant offset using... cur\_offs(id,other\_curve,offset); VARKON treats offset curves as true analytical offsets to the original curves by first evaluating the original curve and then adding the desired offset. If the original curve is a UV-curve this is a very heavy computation but the only way to act if you want highest possible accuracy. If you want to change an offset curve or a UV-curve into an ordinary cubic you can do this using cur approx. You will then have to supply a maximum value for the error of approximation that you can tolerate. 5.4 Data structure All curves in VARKON is built from segments of one of the types: 1. Rational cubic segment. Also the uv-curves is of this type (they are 2-dimensional rational cubic segments on the parameter plane). 2. Offset segment. In VARKON the offset curve is evaluated by first evaluating the desired point on the original curve and thereafter adding the offset. I.e. no approximating curve is generated to represent the offset curve. Therefore the original curve + the offset value is enough to define the offset curve. What is mentioned above implies that all curve segments could have a common data structure. We need basically only elements for the coefficients (4 x 4), an optional offset value, and a pointer to the next segment. The implementation of the data structure (before adding the NURBS curves) is listed below. There is some user defined data-types, but the names of them and and the comments should explain them sufficiently. The different segments in a curve is connected via a linked list by means of the pointer in nxt_seg. For each curve there is also a header with some common information about the whole curve, and a pointer to the first segment in the list. The structure is visualized in figure 6 and the type definition in C-code is found here.

18 5 THE VARKON CAD SYSTEM 16 Curve segment: typedef struct DBfloat c0x,c0y,c0z,c0; Segment-coefficients. DBfloat c1x,c1y,c1z,c1; UV_SEG only use 12. DBfloat c2x,c2y,c2z,c2; DBfloat c3x,c3y,c3z,c3; DBptr nxt_seg; GM-Pointer to next segment DBfloat ofs; Optional offset DBfloat sl; Arclength in R3 DBshort typ; Segment type CUB_SEGU or UV_SEG DBshort subtyp; Sub type DBptr spek_gm; Optional GM-pointer to surface DBptr spek2_gm; Optional GM-pointer to surface GMSEG; Curve header: typedef struct GMRECH hed_cu; Header DBshort fnt_cu; Font DBfloat lgt_cu; Dash length DBfloat al_cu; Arclength in R3 DBshort ns_cu; Number of geometric segments DBTmat csy_cu; Optional curve plane tbool plank_cu; TRUE if curve is planar DBptr pcsy_cu; GM-pointer to coordinate system DBshort nsgr_cu; Number of graphical segments DBfloat wdt_cu; Linewidth GMCUR; \bigskip pictures/databas Curve header Segment data Segment data Curve #1 No off segments=2 Segment #1 Coefficients (16 pce) Segment #2 Coefficients (16 pce) First segment Next segment NULL Figure 6: The database structure for curves in VARKON. 5.5 Creation and evaluation What is important to understand is the difference between the creation of an entity, and the evaluation of it. When an entity (e.g. a curve) is created the system checks the input from the user, perform suitable calculations to get the segment coefficients and stores the entity in the data base. If the input is wrong, the system returns suitable error message. So far no calculation of positions etc. is actually needed. The system do not know the positions in 3D space on the curve unless they are evaluated.

19 5 THE VARKON CAD SYSTEM 17 When the curve is evaluated the system retrieves the segment data from the database and calls suitable functions to evaluate position, tangent, normal or whatever is needed. In this stage the system do not know how the curve segment was created (Ferguson spline, conic section etc.). An evaluation of a position on the curve could be initiated by the user with a MBS-statement such as on(#10,0.3) or tang(#10,0.3). It could also be initiated by the system when for example painting the curve on the screen.

20 6 INTRODUCTION TO NURBS 18 6 Introduction to NURBS NURBS is an acronym for Non Uniform Rational B-Spline. Those words shall be deeper explained further ahead in this text. For the time being we can state that the NURBS curve is a curve, widely used in Computer Aided Design (CAD). It has the ability to exact represent most of the common more specialized curve types e.g. B-spline and bezier-curves, circular arcs, conics and straight lines. The NURBS curve can be used in arbitrary dimension, the definition remains the same. Sketches and initial explanations in this text is for the sake of simplicity made in two dimensions. As we shall discover in... an extension to three dimensions is straight forward. In this section NURBS-curves are presented from a users point of view. I.e., we are discussing how the different parameters that defines the curve will affect the shape of the curve. The exact procedure for the evaluation of he curve, and its mathematical definition will be further explained in section 7 Se also the NURBS book [4], in which detailed descriptions of various implementation tasks is explained. pictures/nurbs_1 Figure 7: A NURBS curve and its corresponding control polygon. A NURBS curve is briefly defined by the user by means of so called control points. These points can be regarded as vertices in a polygon, the control polygon. The curve does not necessarily interpolate the points (which is the case for an ordinary spline-curve). Normally the NURBS-curve is given such parameters that actually makes it interpolate the first an last point. The intermediate points operate as magnets on the curve, see figure 7. The control points will from here be designated P i, the number of control points will be designated n. Other parameters that control the shape of the curve is: the degree oft the curve, the weights of the control points and the so called knot vector. Those designations shall be deeper explained below. 6.1 Degree and order Although a NURBS curve is not evaluated in the same way as a polynomial curve, we can still talk about the the degree of a NURBS curve. The higher degree the smother curve we get. The lowest degree, 1, gives straight lines between the control points. Degree 2 gives an approximating curve that will touch and share tangent with the control polygon between the

21 6 INTRODUCTION TO NURBS 19 control points. Higher degrees gives more smooth curves. As an alternative, we can talk about the order of the curve. The order is always the degree+1. We will from here be designating the degree of the curve: p (power). pictures/nurbs_deg p=1 p=2 p=5 p=3 From the polygon it- Figure 8: NURBS curves with same control polygon, but different degree. self;degree=1, to the smoothest curve, degree=5. If a control point is moved, it will not affect the whole curve, but a limited region around that control point. How much of the curve that will bee affected depends on the degree. A lower degree give more local control (only part near the point is moved). This property of B-spline curves is called the local control property. Maximal allowed degree for a NURBS curve is p = number of control points +1. Such a curve is equivalent to a Bezier curve with the same degree and same control points. Moving a control point in a Bezier curve will affect the whole curve, i.e. the local control property is lost when the NURBS degree is increased to its maximal value. pictures/loc_prop a b Figure 9: The local control property of NURBS curves. The figure shows an order 4 NURBS curve with 12 control points. Moving one control point only affects the curve between a and b. 6.2 The knot vector The knot vector is a part of the definition for a NURBS-curve. To fully understand the meaning of the knot vector, it may be easiest to look at the implementation of the evaluation routines in section 7.2. The knotvector affects the parametrization of the curve, and also the shape of it. The knotvector is a one-dimensional array of float values.

22 6 INTRODUCTION TO NURBS 20 The knot vector is built up from n+p+1 values. A normal knotvector for a NURBS curve of degree 3, with 6 control points could bee: 0, 0, 0, 0, 1, 2, 3, 3, 3, 3. The first and the last knot value is repeated p+1 times. The steps between the other knot values are uniform. A B-spline with these properties is said to be uniform. The repeated values at both ends make the curve interpolate the start and end control points. It is actually the size-relations between the intervals in the knot vector that affects the shape of the curve. The knotvector 0, 0, 0, 0, 1 3, 2 3, 1, 1, 1, 1 and the one given above gives identical curves. In some CAD systems the knotvector is always generated in this way, since then the whole curve will be parameterized from 0.0 to 1.0. The knotvector could also have irregular intervals, such as 0, 0, 0, 0, 1, 2.5, 3, 3, 3, 3, we then have a non uniform knot vector and hence a Non Uniform B-spline. The part of a NURBS curve that is defined by means of a parameter interval between two knot values i.e. 1.0 < u < 2.0 is called a span. Inside a span the set of control points that affect the curve is intact. When the parameter enter next span, the curve lose contact with one control point and begin to get influenced by a new. 6.3 Weights Each control point could, beside its cartesian coordinates, also have a weight. The weight is normally 1.0, but a higher weight for any point will move the curve closer to that point. A curve with one or more weights unequal is rational. The weight is evaluated by means of so called homogenous coordinates. This is not unique for the NURBS curve, the method is used for other rational curves as well. What happens is that the 3 dimensions is mapped to a 4-dimensional space, the evaluation is carried out as for a non-rational curve and thereafter the result is mapped back to 3D. Rational segments is needed to be able to represent circular arcs exactly. e:sln urbs_artikelpictures urbs_wei w=5.0 w=1.0 w=1.0 w=1.0 w=1.0 w=1.0 Figure 10: The effect of weights 6.4 Summary We have introduced the properties of the NURBS-curve from a users point of view. The curve is defined by following parameters: A set of n control points,p i in 2D or 3D, forming the control polygon of the curve.

23 6 INTRODUCTION TO NURBS 21 A weight, w bound to each control point. If all weights are equal, the curve is nonrational, else it is rational. The degree,p of the curve. As an alternative we use the order of the curve. Order = p + 1. A knotvector, an array of n + p + 1 float values. A uniform knotvector has equal distance between knot values.

24 7 IMPLEMENTATION IN VARKON 22 7 Implementation in VARKON 7.1 Data structure As described in section 5.4, all curve segments in VARKON share the same data structure. It was desirable to keep it that way during the implementation of NURBS curves. If this could be achieved a lot of functions would not need to be changed. The reason for this is that these functions do not know what type of segments they are operating on. The key is to handle each NURBS span as a curve segment, and to let the parametrization point out what segment (span) we are working on. This is the same as for ordinary multisegment polynomial curves in VARKON, where parameter values between 0 and 1 implies first segment, parameter values between 1 and 2 implies second segment etc. The implementation of NURBS in VARKON follows this rule of parametrization regardless of the values in the knotvector, but the shape of the curve is still maintained the correct for a NURBS curve. pictures/databas1 Curve header Curve #1 No off segments=2 Segment data Segment #1 Coefficients First segment Control points (4D) Control points p1 p2 p3 p4 p5 knots k1=0.0 k2=0.0 k3=0.0 k4=0.0 k5=1.0 k6=2.0 k7=2.0 k8=2.0 k9=2.0 No off control pts=5 Offset in c-pts=1 Knotvector No off knots=9 Offset in knotvector=5 NURBS order=4 Next segment Segment data Segment #2 Coefficients Control points (4D) No off control pts=5 Offset in c-pts=0 Knotvector No off knots=9 Offset in knotvector=4 NURBS order=4 NULL Figure 11: The database structure for NURBS segments, note that the space for coefficients (tot 16 pce) are not used for NURBS curves. All segments (spans) in the NURBS curve is given access to the knotvector and the control points, but they only use some limited part of them. Therefore the knotvector and the control points is stored only once for each curve. Each curve segment points to these arrays, but do also store offset values for their own position in the arrays. To handle this some data elements has been added to the data structure of a curve segment, see code below (compare to section 5.4).

25 7 IMPLEMENTATION IN VARKON 23 typedef struct DBfloat c0x,c0y,c0z,c0; Segment-coefficients. DBfloat c1x,c1y,c1z,c1; UV_SEG only use 12. DBfloat c2x,c2y,c2z,c2; NURB_SEG use none DBfloat c3x,c3y,c3z,c3; DBptr nxt_seg; GM-Pointer to next segment DBfloat ofs; Optional offset DBfloat sl; Arclength in R3 DBshort typ; Segment type CUB_SEGU or UV_SEG DBshort subtyp; Sub type DBptr spek_gm; Optional GM-pointer to surface DBptr spek2_gm; Optional GM-pointer to surface DBptr cpts_db; DB-pointer to 4D controlpoints DBHvector *cpts_c; C-pointer to 4D controlpoints DBint ncpts; Number of cpts DBint offset_cpts; Offset for this span DBptr knots_db; DB-pointer to knotvector DBfloat *knots_c; C-pointer to knotvector DBint nknots; Number of knots DBint offset_knots; Offset for this span DBshort nurbs_degree; Degree (order-1) for NURB span GMSEG; This change of the data structure for curve segments made it necessary to adjust the database functions for storing and reading them. These changes where made, but is no further described here since our main concern in this paper is the implementation of the evaluation routines for NURBS segments which will be described in forthcoming sections. 7.2 Evaluation of positions The theory of NURBS will be presented here and in following sections together with corresponding algorithms and our implementation. The code-snips is cut-outs from the file geevalnc.c. A printout of the whole file is found in appendix A. The evaluation of a point could for example be initiated by the user via an on() -statement in MBS, or it could be one of the sample points needed to draw the curve on the screen. The calling function demands what to be evaluated e.g: position, 1:st derivative, 2:nd derivative, curvature etc. This is done by means of the global variable (structure) p_evalc ->evltyp Definition of B-spline In this section the definition and theory of NURBS will be presented. Following designations will be used: p P i w i n u i N i,p u - the degree of the curve - the control points - the weights - number of control points - the knot vector - base value number i for degree p - the parameter value to be evaluated We shall initially cover non rational B-splines. When we are familiar with its definitions and algorithms, it will be straight forward to let our theories also comprehend the rational curves. More reading about B-splines can be found in several books, see for example references [3],[4], [5] and [6].

26 7 IMPLEMENTATION IN VARKON 24 The important thing is to understand the fundamentals of B-splines, the step from there to the more general NURBS-curves is not far. A B-spline curve of degree p is defined as: C(u) = n N i,p (u)p i a u b (7.1) i=0 where P i is the control points, n is the number of control points and N i,p is the basis values for degree p. There exist one basis value for each control point (index i). The basis functions sometimes is denominated blending functions. The basis values is derived from the knot vector by means of the basis functions. Basis functions for degree 0 is defined as: N i,0 (u) = 1 if ui u < u i+1 0 in other cases (7.2) Basis function for higher degrees is defined recursively as: N i,p (u) = u u i N i,p 1 (u) + u i+p+1 u N i+1,p 1 (u) (7.3) u i+p u i u i+p+1 u i+1 where u is actual parameter on the curve, u i is the knot value with index i. Hence we must always calculate the basis values of all degrees up to and including the degree of the curve. In the equation (7.1) above, it is however only the basis values of degree p that is used. The other basis values are needed indirectly by the recursively definition. To calculate the basis values you need the degree of the curve, actual parameter u, and the knot vector. The control points does not affect the basis values. The sum of all basis values for a certain parameter, u is always 1. Some basis values will, for a certain parameter value, be zero. This means that corresponding control point shall not influence the curve. According to the definition above it then arises a division 0/0. The result of this division is defined to be zero. In practice it is possible to know in forehand where this will happen. Hence this division need never to be done The evaluation steps As input to the evaluation you need to perform following steps: 1. Determine in what span of the curve you are working. 2. Calculate the basis values for that span. (the other basis values are zero and need not to be calculated). 3. Loop through the control points and sum up the influence of each point on the curve (only points in actual span need to be summarized).

27 7 IMPLEMENTATION IN VARKON 25 I the NURBS book[4] these steps corresponds to the algorithms A2.1, A2.3 and A3.1 respectively. As we shall see in section 7.2.5, our implementation will be slightly different since step 1 is already performed by the system when the evaluation reaches our function. Furthermore the basis values for position and if needed, for the derivatives, is calculated at the same time, in the same algorithm, therefore the exact algorithm will be presented in section 7.3 together with the derivatives Rational curves Evaluation of a point is done in the same way for each of the components x,y and z respectively. The same basis values i used, the only difference is which component x, y or z that is summarized. Rational curves is evaluated by means of Homogeneous coordinates. This means that each control point in 3D is transformed to a 4-dimensional space by means of the weight, w. The 4 components x,y,z and w is then each of them evaluated in exactly the same way as if we had an non rational 2D or 3D curve as described before. When the evaluation is made the position on the curve is transformed back from homogeneous coordinates back to 3D space. This is done by dividing x,y and z with the calculated w-coordinate. This technique is used for other curve types as well, it is not unique for NURBS, see section Implementation Following code is a part of the function GEevalnc() in the file geevalnc.c. A printout of the whole file can be found in appendix A. The evaluation of a position on the curve can be divided into following steps. When the evaluation process reaches this function it has formerly pointed out the correct segment (span) of the NURBS curve. 1. Calculate basis values. Note that the calling function has already determined in what segment of the curve the actual point is situated. This is done earlier in the evaluation process in the same way regardless of the curve type. As the segments here corresponds to the NURBS spans (see section.??), and the correct offset in the knotvector was stored together with this actual span, we already know the correct offset in the knot vector offs_u. Compare with the NURBS book [4], where corresponding task is performed by algorithm A2.3 The function DersBasisFuns is explained in section *** Calculate basis values status=dersbasisfuns (offs_u,u,degree,no_der,p_seg->knots_c,ders); 2. Determine if the position is to be calculated. It is possible that the calling function has only ordered calculation of, let say the 1:st derivative. Then there is no need to calculate the position. The desired evaluation (position, derivatives etc.) is situated in the global variable p_evalc-> evltyp. *** Calculate position *** (always needed for a rational curve) if ((p_evalc ->evltyp & EVC_R) (ratseg == TRUE))

Dgp _ lecture 2. Curves

Dgp _ lecture 2. Curves Dgp _ lecture 2 Curves Questions? This lecture will be asking questions about curves, their Relationship to surfaces, and how they are used and controlled. Topics of discussion will be: Free form Curves

More information

VALLIAMMAI ENGINEERING COLLEGE

VALLIAMMAI ENGINEERING COLLEGE VALLIAMMAI ENGINEERING COLLEGE SRM Nagar, Kattankulathur 603 203 DEPARTMENT OF MECHANICAL ENGINEERING QUESTION BANK M.E: CAD/CAM I SEMESTER ED5151 COMPUTER APPLICATIONS IN DESIGN Regulation 2017 Academic

More information

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques

GL9: Engineering Communications. GL9: CAD techniques. Curves Surfaces Solids Techniques 436-105 Engineering Communications GL9:1 GL9: CAD techniques Curves Surfaces Solids Techniques Parametric curves GL9:2 x = a 1 + b 1 u + c 1 u 2 + d 1 u 3 + y = a 2 + b 2 u + c 2 u 2 + d 2 u 3 + z = a

More information

Curves and Surfaces. Chapter 7. Curves. ACIS supports these general types of curves:

Curves and Surfaces. Chapter 7. Curves. ACIS supports these general types of curves: Chapter 7. Curves and Surfaces This chapter discusses the types of curves and surfaces supported in ACIS and the classes used to implement them. Curves ACIS supports these general types of curves: Analytic

More information

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

(Refer Slide Time: 00:02:24 min) CAD / CAM Prof. Dr. P. V. Madhusudhan Rao Department of Mechanical Engineering Indian Institute of Technology, Delhi Lecture No. # 9 Parametric Surfaces II So these days, we are discussing the subject

More information

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

Curve Representation ME761A Instructor in Charge Prof. J. Ramkumar Department of Mechanical Engineering, IIT Kanpur Curve Representation ME761A Instructor in Charge Prof. J. Ramkumar Department of Mechanical Engineering, IIT Kanpur Email: jrkumar@iitk.ac.in Curve representation 1. Wireframe models There are three types

More information

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

LECTURE #6. Geometric Modelling for Engineering Applications. Geometric modeling for engineering applications LECTURE #6 Geometric modeling for engineering applications Geometric Modelling for Engineering Applications Introduction to modeling Geometric modeling Curve representation Hermite curve Bezier curve B-spline

More information

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

3D Modeling Parametric Curves & Surfaces. Shandong University Spring 2013 3D Modeling Parametric Curves & Surfaces Shandong University Spring 2013 3D Object Representations Raw data Point cloud Range image Polygon soup Surfaces Mesh Subdivision Parametric Implicit Solids Voxels

More information

3D Modeling Parametric Curves & Surfaces

3D Modeling Parametric Curves & Surfaces 3D Modeling Parametric Curves & Surfaces Shandong University Spring 2012 3D Object Representations Raw data Point cloud Range image Polygon soup Solids Voxels BSP tree CSG Sweep Surfaces Mesh Subdivision

More information

Introduction to the Mathematical Concepts of CATIA V5

Introduction to the Mathematical Concepts of CATIA V5 CATIA V5 Training Foils Introduction to the Mathematical Concepts of CATIA V5 Version 5 Release 19 January 2009 EDU_CAT_EN_MTH_FI_V5R19 1 About this course Objectives of the course Upon completion of this

More information

Geometric Modeling of Curves

Geometric Modeling of Curves Curves Locus of a point moving with one degree of freedom Locus of a one-dimensional parameter family of point Mathematically defined using: Explicit equations Implicit equations Parametric equations (Hermite,

More information

B-spline Curves. Smoother than other curve forms

B-spline Curves. Smoother than other curve forms Curves and Surfaces B-spline Curves These curves are approximating rather than interpolating curves. The curves come close to, but may not actually pass through, the control points. Usually used as multiple,

More information

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

Keyword: Quadratic Bézier Curve, Bisection Algorithm, Biarc, Biarc Method, Hausdorff Distances, Tolerance Band. Department of Computer Science Approximation Methods for Quadratic Bézier Curve, by Circular Arcs within a Tolerance Band Seminar aus Informatik Univ.-Prof. Dr. Wolfgang Pree Seyed Amir Hossein Siahposhha

More information

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

Fall CSCI 420: Computer Graphics. 4.2 Splines. Hao Li. Fall 2014 CSCI 420: Computer Graphics 4.2 Splines Hao Li http://cs420.hao-li.com 1 Roller coaster Next programming assignment involves creating a 3D roller coaster animation We must model the 3D curve

More information

Rational Bezier Curves

Rational Bezier Curves Rational Bezier Curves Use of homogeneous coordinates Rational spline curve: define a curve in one higher dimension space, project it down on the homogenizing variable Mathematical formulation: n P(u)

More information

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves

OUTLINE. Quadratic Bezier Curves Cubic Bezier Curves BEZIER CURVES 1 OUTLINE Introduce types of curves and surfaces Introduce the types of curves Interpolating Hermite Bezier B-spline Quadratic Bezier Curves Cubic Bezier Curves 2 ESCAPING FLATLAND Until

More information

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

Splines. Parameterization of a Curve. Curve Representations. Roller coaster. What Do We Need From Curves in Computer Graphics? Modeling Complex Shapes CSCI 420 Computer Graphics Lecture 8 Splines Jernej Barbic University of Southern California Hermite Splines Bezier Splines Catmull-Rom Splines Other Cubic Splines [Angel Ch 12.4-12.12] Roller coaster

More information

Flank Millable Surface Design with Conical and Barrel Tools

Flank Millable Surface Design with Conical and Barrel Tools 461 Computer-Aided Design and Applications 2008 CAD Solutions, LLC http://www.cadanda.com Flank Millable Surface Design with Conical and Barrel Tools Chenggang Li 1, Sanjeev Bedi 2 and Stephen Mann 3 1

More information

NURBS: Non-Uniform Rational B-Splines AUI Course Denbigh Starkey

NURBS: Non-Uniform Rational B-Splines AUI Course Denbigh Starkey NURBS: Non-Uniform Rational B-Splines AUI Course Denbigh Starkey 1. Background 2 2. Definitions 3 3. Using NURBS to define a circle 4 4. Homogeneous coordinates & control points at infinity 9 5. Constructing

More information

A Comprehensive Introduction to SolidWorks 2011

A Comprehensive Introduction to SolidWorks 2011 A Comprehensive Introduction to SolidWorks 2011 Godfrey Onwubolu, Ph.D. SDC PUBLICATIONS www.sdcpublications.com Schroff Development Corporation Chapter 2 Geometric Construction Tools Objectives: When

More information

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016

Computergrafik. Matthias Zwicker Universität Bern Herbst 2016 Computergrafik Matthias Zwicker Universität Bern Herbst 2016 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling 2 Piecewise Bézier curves Each

More information

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

CSE 167: Introduction to Computer Graphics Lecture #13: Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 CSE 167: Introduction to Computer Graphics Lecture #13: Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2017 Announcements Project 4 due Monday Nov 27 at 2pm Next Tuesday:

More information

Lecture IV Bézier Curves

Lecture IV Bézier Curves Lecture IV Bézier Curves Why Curves? Why Curves? Why Curves? Why Curves? Why Curves? Linear (flat) Curved Easier More pieces Looks ugly Complicated Fewer pieces Looks smooth What is a curve? Intuitively:

More information

Computergrafik. Matthias Zwicker. Herbst 2010

Computergrafik. Matthias Zwicker. Herbst 2010 Computergrafik Matthias Zwicker Universität Bern Herbst 2010 Today Curves NURBS Surfaces Parametric surfaces Bilinear patch Bicubic Bézier patch Advanced surface modeling Piecewise Bézier curves Each segment

More information

Curves. Computer Graphics CSE 167 Lecture 11

Curves. Computer Graphics CSE 167 Lecture 11 Curves Computer Graphics CSE 167 Lecture 11 CSE 167: Computer graphics Polynomial Curves Polynomial functions Bézier Curves Drawing Bézier curves Piecewise Bézier curves Based on slides courtesy of Jurgen

More information

The Free-form Surface Modelling System

The Free-form Surface Modelling System 1. Introduction The Free-form Surface Modelling System Smooth curves and surfaces must be generated in many computer graphics applications. Many real-world objects are inherently smooth (fig.1), and much

More information

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

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 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 1. Divide and Conquer If we are going to build useful

More information

Curves and Surfaces Computer Graphics I Lecture 9

Curves and Surfaces Computer Graphics I Lecture 9 15-462 Computer Graphics I Lecture 9 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.1-10.6] February 19, 2002 Frank Pfenning Carnegie

More information

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

Until now we have worked with flat entities such as lines and flat polygons. Fit well with graphics hardware Mathematically simple Curves and surfaces Escaping Flatland Until now we have worked with flat entities such as lines and flat polygons Fit well with graphics hardware Mathematically simple But the world is not composed of

More information

Curve and Surface Basics

Curve and Surface Basics Curve and Surface Basics Implicit and parametric forms Power basis form Bezier curves Rational Bezier Curves Tensor Product Surfaces ME525x NURBS Curve and Surface Modeling Page 1 Implicit and Parametric

More information

COMPUTER AIDED ENGINEERING DESIGN (BFF2612)

COMPUTER AIDED ENGINEERING DESIGN (BFF2612) COMPUTER AIDED ENGINEERING DESIGN (BFF2612) BASIC MATHEMATICAL CONCEPTS IN CAED by Dr. Mohd Nizar Mhd Razali Faculty of Manufacturing Engineering mnizar@ump.edu.my COORDINATE SYSTEM y+ y+ z+ z+ x+ RIGHT

More information

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

Parametric curves. Reading. Curves before computers. Mathematical curve representation. CSE 457 Winter Required: Reading Required: Angel 10.1-10.3, 10.5.2, 10.6-10.7, 10.9 Parametric curves CSE 457 Winter 2014 Optional Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics and Geometric

More information

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

CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves. Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 CSE 167: Introduction to Computer Graphics Lecture #11: Bezier Curves Jürgen P. Schulze, Ph.D. University of California, San Diego Fall Quarter 2016 Announcements Project 3 due tomorrow Midterm 2 next

More information

Curves and Surfaces 1

Curves and Surfaces 1 Curves and Surfaces 1 Representation of Curves & Surfaces Polygon Meshes Parametric Cubic Curves Parametric Bi-Cubic Surfaces Quadric Surfaces Specialized Modeling Techniques 2 The Teapot 3 Representing

More information

COMP3421. Global Lighting Part 2: Radiosity

COMP3421. Global Lighting Part 2: Radiosity COMP3421 Global Lighting Part 2: Radiosity Recap: Global Lighting The lighting equation we looked at earlier only handled direct lighting from sources: We added an ambient fudge term to account for all

More information

COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg

COMPUTER AIDED GEOMETRIC DESIGN. Thomas W. Sederberg COMPUTER AIDED GEOMETRIC DESIGN Thomas W. Sederberg January 31, 2011 ii T. W. Sederberg iii Preface This semester is the 24 th time I have taught a course at Brigham Young University titled, Computer Aided

More information

Central issues in modelling

Central issues in modelling Central issues in modelling Construct families of curves, surfaces and volumes that can represent common objects usefully; are easy to interact with; interaction includes: manual modelling; fitting to

More information

Bezier Curves. An Introduction. Detlef Reimers

Bezier Curves. An Introduction. Detlef Reimers Bezier Curves An Introduction Detlef Reimers detlefreimers@gmx.de http://detlefreimers.de September 1, 2011 Chapter 1 Bezier Curve Basics 1.1 Linear Interpolation This section will give you a basic introduction

More information

Lesson 2: Wireframe Creation

Lesson 2: Wireframe Creation Lesson 2: Wireframe Creation In this lesson you will learn how to create wireframes. Lesson Contents: Case Study: Wireframe Creation Design Intent Stages in the Process Reference Geometry Creation 3D Curve

More information

Curves and Surface I. Angel Ch.10

Curves and Surface I. Angel Ch.10 Curves and Surface I Angel Ch.10 Representation of Curves and Surfaces Piece-wise linear representation is inefficient - line segments to approximate curve - polygon mesh to approximate surfaces - can

More information

Geometric Modeling Systems

Geometric Modeling Systems Geometric Modeling Systems Wireframe Modeling use lines/curves and points for 2D or 3D largely replaced by surface and solid models Surface Modeling wireframe information plus surface definitions supports

More information

Information Coding / Computer Graphics, ISY, LiTH. Splines

Information Coding / Computer Graphics, ISY, LiTH. Splines 28(69) Splines Originally a drafting tool to create a smooth curve In computer graphics: a curve built from sections, each described by a 2nd or 3rd degree polynomial. Very common in non-real-time graphics,

More information

CS3621 Midterm Solution (Fall 2005) 150 points

CS3621 Midterm Solution (Fall 2005) 150 points CS362 Midterm Solution Fall 25. Geometric Transformation CS362 Midterm Solution (Fall 25) 5 points (a) [5 points] Find the 2D transformation matrix for the reflection about the y-axis transformation (i.e.,

More information

Bezier Curves, B-Splines, NURBS

Bezier Curves, B-Splines, NURBS Bezier Curves, B-Splines, NURBS Example Application: Font Design and Display Curved objects are everywhere There is always need for: mathematical fidelity high precision artistic freedom and flexibility

More information

Curves and Surfaces Computer Graphics I Lecture 10

Curves and Surfaces Computer Graphics I Lecture 10 15-462 Computer Graphics I Lecture 10 Curves and Surfaces Parametric Representations Cubic Polynomial Forms Hermite Curves Bezier Curves and Surfaces [Angel 10.1-10.6] September 30, 2003 Doug James Carnegie

More information

CATIA V4/V5 Interoperability Project 2 : Migration of V4 surface : Influence of the transfer s settings Genta Yoshioka

CATIA V4/V5 Interoperability Project 2 : Migration of V4 surface : Influence of the transfer s settings Genta Yoshioka CATIA V4/V5 Interoperability Project 2 : Migration of V4 surface : Influence of the transfer s settings Genta Yoshioka Version 1.0 03/08/2001 CATIA Interoperability Project Office CIPO IBM Frankfurt, Germany

More information

CATIA V5 Parametric Surface Modeling

CATIA V5 Parametric Surface Modeling CATIA V5 Parametric Surface Modeling Version 5 Release 16 A- 1 Toolbars in A B A. Wireframe: Create 3D curves / lines/ points/ plane B. Surfaces: Create surfaces C. Operations: Join surfaces, Split & Trim

More information

Sung-Eui Yoon ( 윤성의 )

Sung-Eui Yoon ( 윤성의 ) CS480: Computer Graphics Curves and Surfaces Sung-Eui Yoon ( 윤성의 ) Course URL: http://jupiter.kaist.ac.kr/~sungeui/cg Today s Topics Surface representations Smooth curves Subdivision 2 Smooth Curves and

More information

An Introduction to B-Spline Curves

An Introduction to B-Spline Curves An Introduction to B-Spline Curves Thomas W. Sederberg March 14, 2005 1 B-Spline Curves Most shapes are simply too complicated to define using a single Bézier curve. A spline curve is a sequence of curve

More information

Parametric curves. Brian Curless CSE 457 Spring 2016

Parametric curves. Brian Curless CSE 457 Spring 2016 Parametric curves Brian Curless CSE 457 Spring 2016 1 Reading Required: Angel 10.1-10.3, 10.5.2, 10.6-10.7, 10.9 Optional Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics

More information

SOLIDWORKS 2016: A Power Guide for Beginners and Intermediate Users

SOLIDWORKS 2016: A Power Guide for Beginners and Intermediate Users SOLIDWORKS 2016: A Power Guide for Beginners and Intermediate Users The premium provider of learning products and solutions www.cadartifex.com Table of Contents Dedication... 3 Preface... 15 Part 1. Introducing

More information

Geometric Entities for Pilot3D. Copyright 2001 by New Wave Systems, Inc. All Rights Reserved

Geometric Entities for Pilot3D. Copyright 2001 by New Wave Systems, Inc. All Rights Reserved Geometric Entities for Pilot3D Copyright 2001 by New Wave Systems, Inc. All Rights Reserved Introduction on Geometric Entities for Pilot3D The best way to develop a good understanding of any Computer-Aided

More information

Need for Parametric Equations

Need for Parametric Equations Curves and Surfaces Curves and Surfaces Need for Parametric Equations Affine Combinations Bernstein Polynomials Bezier Curves and Surfaces Continuity when joining curves B Spline Curves and Surfaces Need

More information

Intro to Modeling Modeling in 3D

Intro to Modeling Modeling in 3D Intro to Modeling Modeling in 3D Polygon sets can approximate more complex shapes as discretized surfaces 2 1 2 3 Curve surfaces in 3D Sphere, ellipsoids, etc Curved Surfaces Modeling in 3D ) ( 2 2 2 2

More information

Geometry. Chapter 5. Types of Curves and Surfaces

Geometry. Chapter 5. Types of Curves and Surfaces Chapter 5. Geometry Geometry refers to the physical items represented by the model (such as points, curves, and surfaces), independent of their spatial or topological relationships. The ACIS free form

More information

Intro to Curves Week 1, Lecture 2

Intro to Curves Week 1, Lecture 2 CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University Outline Math review Introduction to 2D curves

More information

Knot Insertion and Reparametrization of Interval B-spline Curves

Knot Insertion and Reparametrization of Interval B-spline Curves International Journal of Video&Image Processing and Network Security IJVIPNS-IJENS Vol:14 No:05 1 Knot Insertion and Reparametrization of Interval B-spline Curves O. Ismail, Senior Member, IEEE Abstract

More information

Computer Graphics. Curves and Surfaces. Hermite/Bezier Curves, (B-)Splines, and NURBS. By Ulf Assarsson

Computer Graphics. Curves and Surfaces. Hermite/Bezier Curves, (B-)Splines, and NURBS. By Ulf Assarsson Computer Graphics Curves and Surfaces Hermite/Bezier Curves, (B-)Splines, and NURBS By Ulf Assarsson Most of the material is originally made by Edward Angel and is adapted to this course by Ulf Assarsson.

More information

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

Further Graphics. Bezier Curves and Surfaces. Alex Benton, University of Cambridge Supported in part by Google UK, Ltd Further Graphics Bezier Curves and Surfaces Alex Benton, University of Cambridge alex@bentonian.com 1 Supported in part by Google UK, Ltd CAD, CAM, and a new motivation: shiny things Expensive products

More information

CHAPTER 6 Parametric Spline Curves

CHAPTER 6 Parametric Spline Curves CHAPTER 6 Parametric Spline Curves When we introduced splines in Chapter 1 we focused on spline curves, or more precisely, vector valued spline functions. In Chapters 2 and 4 we then established the basic

More information

ME COMPUTER AIDED DESIGN COMPUTER AIDED DESIGN 2 MARKS Q&A

ME COMPUTER AIDED DESIGN COMPUTER AIDED DESIGN 2 MARKS Q&A ME6501 - COMPUTER AIDED DESIGN COMPUTER AIDED DESIGN 2 MARKS Q&A Unit I 1. What is CAD? Computer aided design (CAD) is the technology concerned with the use of computer systems to assist the creation,

More information

Lecture 9: Introduction to Spline Curves

Lecture 9: Introduction to Spline Curves Lecture 9: Introduction to Spline Curves Splines are used in graphics to represent smooth curves and surfaces. They use a small set of control points (knots) and a function that generates a curve through

More information

A story about Non Uniform Rational B-Splines. E. Shcherbakov

A story about Non Uniform Rational B-Splines. E. Shcherbakov A story about Non Uniform Rational B-Splines E. Shcherbakov Speakers 09-06: B-spline curves (W. Dijkstra) 16-06: NURBS (E. Shcherbakov) 30-06: B-spline surfaces (M. Patricio) Seminar 16-06-2004 2 Outline

More information

15.10 Curve Interpolation using Uniform Cubic B-Spline Curves. CS Dept, UK

15.10 Curve Interpolation using Uniform Cubic B-Spline Curves. CS Dept, UK 1 An analysis of the problem: To get the curve constructed, how many knots are needed? Consider the following case: So, to interpolate (n +1) data points, one needs (n +7) knots,, for a uniform cubic B-spline

More information

2D Spline Curves. CS 4620 Lecture 13

2D Spline Curves. CS 4620 Lecture 13 2D Spline Curves CS 4620 Lecture 13 2008 Steve Marschner 1 Motivation: smoothness In many applications we need smooth shapes [Boeing] that is, without discontinuities So far we can make things with corners

More information

Surface Modeling Tutorial

Surface Modeling Tutorial Surface Modeling Tutorial Complex Surfacing in SolidWorks By Matthew Perez By Matthew Perez Who is this tutorial for? This tutorial assumes that you have prior surfacing knowledge as well as a general

More information

Lesson 3: Surface Creation

Lesson 3: Surface Creation Lesson 3: Surface Creation In this lesson, you will learn how to create surfaces from wireframes. Lesson Contents: Case Study: Surface Creation Design Intent Stages in the Process Choice of Surface Sweeping

More information

Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006

Curves and Curved Surfaces. Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006 Curves and Curved Surfaces Adapted by FFL from CSE167: Computer Graphics Instructor: Ronen Barzel UCSD, Winter 2006 Outline for today Summary of Bézier curves Piecewise-cubic curves, B-splines Surface

More information

To Do. Resources. Algorithm Outline. Simplifications. Advanced Computer Graphics (Spring 2013) Surface Simplification: Goals (Garland)

To Do. Resources. Algorithm Outline. Simplifications. Advanced Computer Graphics (Spring 2013) Surface Simplification: Goals (Garland) Advanced omputer Graphics (Spring 213) S 283, Lecture 6: Quadric Error Metrics Ravi Ramamoorthi To Do Assignment 1, Due Feb 22. Should have made some serious progress by end of week This lecture reviews

More information

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

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 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 Announcements Homework assignment 5 due tomorrow, Nov

More information

Characterization of the Northwest Coast Native Art Ovoid

Characterization of the Northwest Coast Native Art Ovoid Characterization of the Northwest Coast Native Art Ovoid By: Nathaniel P. Wilkerson July 10, 2010 Probably the most predominant design unit in the art work, the Ovoid takes many shapes and forms. In theory

More information

form. We will see that the parametric form is the most common representation of the curve which is used in most of these cases.

form. We will see that the parametric form is the most common representation of the curve which is used in most of these cases. Computer Graphics Prof. Sukhendu Das Dept. of Computer Science and Engineering Indian Institute of Technology, Madras Lecture - 36 Curve Representation Welcome everybody to the lectures on computer graphics.

More information

Scheme Extensions Aa thru Mz

Scheme Extensions Aa thru Mz Chapter 2. Scheme Extensions Aa thru Mz Topic: Ignore Scheme is a public domain programming language, based on the LISP language, that uses an interpreter to run commands. ACIS provides extensions (written

More information

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

CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 CS 536 Computer Graphics Intro to Curves Week 1, Lecture 2 David Breen, William Regli and Maxim Peysakhov Department of Computer Science Drexel University 1 Outline Math review Introduction to 2D curves

More information

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

The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a The goal is the definition of points with numbers and primitives with equations or functions. The definition of points with numbers requires a coordinate system and then the measuring of the point with

More information

Module 1: Basics of Solids Modeling with SolidWorks

Module 1: Basics of Solids Modeling with SolidWorks Module 1: Basics of Solids Modeling with SolidWorks Introduction SolidWorks is the state of the art in computer-aided design (CAD). SolidWorks represents an object in a virtual environment just as it exists

More information

Introduction p. 1 What Is Geometric Modeling? p. 1 Computer-aided geometric design Solid modeling Algebraic geometry Computational geometry

Introduction p. 1 What Is Geometric Modeling? p. 1 Computer-aided geometric design Solid modeling Algebraic geometry Computational geometry Introduction p. 1 What Is Geometric Modeling? p. 1 Computer-aided geometric design Solid modeling Algebraic geometry Computational geometry Representation Ab initio design Rendering Solid modelers Kinematic

More information

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

Interactive Graphics. Lecture 9: Introduction to Spline Curves. Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 9: Introduction to Spline Curves Interactive Graphics Lecture 9: Slide 1 Interactive Graphics Lecture 13: Slide 2 Splines The word spline comes from the ship building trade

More information

An introduction to NURBS

An introduction to NURBS An introduction to NURBS Philippe Lavoie January 20, 1999 A three dimensional (3D) object is composed of curves and surfaces. One must find a way to represent these to be able to model accurately an object.

More information

Functions bs3_curve Aa thru Lz

Functions bs3_curve Aa thru Lz Chapter 18. Functions bs3_curve Aa thru Lz Topic: Ignore bs3_curve_accurate_derivs Action: Gets the number of derivatives that bs3_curve_evaluate can calculate. Prototype: int bs3_curve_accurate_derivs

More information

Curves and Surfaces 2

Curves and Surfaces 2 Curves and Surfaces 2 Computer Graphics Lecture 17 Taku Komura Today More about Bezier and Bsplines de Casteljau s algorithm BSpline : General form de Boor s algorithm Knot insertion NURBS Subdivision

More information

Reparametrization of Interval Curves on Rectangular Domain

Reparametrization of Interval Curves on Rectangular Domain International Journal of Video&Image Processing and Network Security IJVIPNS-IJENS Vol:15 No:05 1 Reparametrization of Interval Curves on Rectangular Domain O. Ismail, Senior Member, IEEE Abstract The

More information

Almost Curvature Continuous Fitting of B-Spline Surfaces

Almost Curvature Continuous Fitting of B-Spline Surfaces Journal for Geometry and Graphics Volume 2 (1998), No. 1, 33 43 Almost Curvature Continuous Fitting of B-Spline Surfaces Márta Szilvási-Nagy Department of Geometry, Mathematical Institute, Technical University

More information

Splines. Connecting the Dots

Splines. Connecting the Dots Splines or: Connecting the Dots Jens Ogniewski Information Coding Group Linköping University Before we start... Some parts won t be part of the exam Basically all that is not described in the book. More

More information

An introduction to interpolation and splines

An introduction to interpolation and splines An introduction to interpolation and splines Kenneth H. Carpenter, EECE KSU November 22, 1999 revised November 20, 2001, April 24, 2002, April 14, 2004 1 Introduction Suppose one wishes to draw a curve

More information

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

Shape Control of Cubic H-Bézier Curve by Moving Control Point Journal of Information & Computational Science 4: 2 (2007) 871 878 Available at http://www.joics.com Shape Control of Cubic H-Bézier Curve by Moving Control Point Hongyan Zhao a,b, Guojin Wang a,b, a Department

More information

Computer Graphics Curves and Surfaces. Matthias Teschner

Computer Graphics Curves and Surfaces. Matthias Teschner Computer Graphics Curves and Surfaces Matthias Teschner Outline Introduction Polynomial curves Bézier curves Matrix notation Curve subdivision Differential curve properties Piecewise polynomial curves

More information

Curves & Surfaces. MIT EECS 6.837, Durand and Cutler

Curves & Surfaces. MIT EECS 6.837, Durand and Cutler Curves & Surfaces Schedule Sunday October 5 th, * 3-5 PM * Review Session for Quiz 1 Extra Office Hours on Monday Tuesday October 7 th : Quiz 1: In class 1 hand-written 8.5x11 sheet of notes allowed Wednesday

More information

CATIA Electrical Space Reservation TABLE OF CONTENTS

CATIA Electrical Space Reservation TABLE OF CONTENTS TABLE OF CONTENTS Introduction...1 Manual Format...2 Electrical Reservations...3 Equipment Reservations...5 Pathway Reservations...31 Advanced Reservations...49 Reservation Analysis...67 Clash...69 Sectioning...73

More information

2D Spline Curves. CS 4620 Lecture 18

2D Spline Curves. CS 4620 Lecture 18 2D Spline Curves CS 4620 Lecture 18 2014 Steve Marschner 1 Motivation: smoothness In many applications we need smooth shapes that is, without discontinuities So far we can make things with corners (lines,

More information

TO DUY ANH SHIP CALCULATION

TO DUY ANH SHIP CALCULATION TO DUY ANH SHIP CALCULATION Ship Calculattion (1)-Space Cuvers 3D-curves play an important role in the engineering, design and manufature in Shipbuilding. Prior of the development of mathematical and computer

More information

Rational Bezier Surface

Rational Bezier Surface Rational Bezier Surface The perspective projection of a 4-dimensional polynomial Bezier surface, S w n ( u, v) B i n i 0 m j 0, u ( ) B j m, v ( ) P w ij ME525x NURBS Curve and Surface Modeling Page 97

More information

CGT 581 G Geometric Modeling Curves

CGT 581 G Geometric Modeling Curves CGT 581 G Geometric Modeling Curves Bedrich Benes, Ph.D. Purdue University Department of Computer Graphics Technology Curves What is a curve? Mathematical definition 1) The continuous image of an interval

More information

Intro to Curves Week 4, Lecture 7

Intro to Curves Week 4, Lecture 7 CS 430/536 Computer Graphics I Intro to Curves Week 4, Lecture 7 David Breen, William Regli and Maxim Peysakhov Geometric and Intelligent Computing Laboratory Department of Computer Science Drexel University

More information

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

MA 323 Geometric Modelling Course Notes: Day 14 Properties of Bezier Curves MA 323 Geometric Modelling Course Notes: Day 14 Properties of Bezier Curves David L. Finn In this section, we discuss the geometric properties of Bezier curves. These properties are either implied directly

More information

An Introduction to Bezier Curves, B-Splines, and Tensor Product Surfaces with History and Applications

An Introduction to Bezier Curves, B-Splines, and Tensor Product Surfaces with History and Applications An Introduction to Bezier Curves, B-Splines, and Tensor Product Surfaces with History and Applications Benjamin T. Bertka University of California Santa Cruz May 30 th, 2008 1 History Before computer graphics

More information

A Curve Tutorial for Introductory Computer Graphics

A Curve Tutorial for Introductory Computer Graphics A Curve Tutorial for Introductory Computer Graphics Michael Gleicher Department of Computer Sciences University of Wisconsin, Madison October 7, 2003 Note to 559 Students: These notes were put together

More information

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

Graphing Techniques. Domain (, ) Range (, ) Squaring Function f(x) = x 2 Domain (, ) Range [, ) f( x) = x 2 Graphing Techniques In this chapter, we will take our knowledge of graphs of basic functions and expand our ability to graph polynomial and rational functions using common sense, zeros, y-intercepts, stretching

More information

Engineering designs today are frequently

Engineering designs today are frequently Basic CAD Engineering designs today are frequently constructed as mathematical solid models instead of solely as 2D drawings. A solid model is one that represents a shape as a 3D object having mass properties.

More information

Geometry Clean-up in. Numerical Simulations

Geometry Clean-up in. Numerical Simulations Geometry Clean-up in Numerical Simulations Scope of the this Presentation The guidelines are very generic in nature and has been explained with examples. However, the users may need to check their software

More information