VARKON Version 1.16 1998-09-12


sur_nurbsarr - Geometric procedure

Creates a surface


Description

Creates a NURBS surface from knots and control points. Input data is given in arrays. Any order can be used in the U-direction and V-direction respectively. If you dont know what order to use we recommend order = 4. Knots may be uniformly spaced or non uniformly.


Syntax

sur_nurbsarr(id, order_u, order_v, nk_u, nk_v, cpts, uknots, vknots, w:attributes);

REF id;
INT order_u;
INT order_v;
INT nk_u;
INT nk_v;
VECTOR cpts( , );
FLOAT uknots( );
FLOAT vknots( );
FLOAT w( );


Principal parameters

id - Local identity
order_u - The bspline order in the U-direction
order_v - The bspline order in the V-direction
nk_u - Number of knots in U-direction. Note that nk_u=npts_u+order_u where npts_u= no. of control pts in U direction
nk_v - Number of knots in V-direction. Note that nk_v=npts_v+order_v where npts_v= no. of control pts in V direction
cpts - Control points



Optional parameters

uknots - Knots in U-direction. If not specified a uniform knotvector is used.
vknots - Knots in V-direction. If not specified a uniform knotvector is used.
w - Homogenous coordinate. If not specified w=1.0 (non rational).


Attributes

PEN - Pen or colour number
LEVEL - Level number
BLANK - Visible (0) or invisible (1)
SFONT - Solid boundary and dashed midcurves (0)
SDASHL - Dashlength


Example

VECTOR cpts(5,4);

sur_nurbsarr(#3, 4, 4, 5+4, 4+4, cpts);

Creates a new NURBS surface #3 defined by control points in array cpts. Uniform knot distribution will be used and coordinates are non rational.

The number of knot values will be npts+order in order to make the surface pass through the boundary points of the input grid. In the example 5+4 and 4+4. The generated knot vectors will be: uknots= 1,1,1,1,2,3,3,3,3 vknots=1,1,1,1,2,2,2,2. The same surface will be the result with FLOAT uknots(9), vknots(8) and sur_nurbsarr(#3,4,4,9,8,cpts,uknots,vknots);

The order of the points in the array poi should be:

U= 0.0, V= 3.0                                                                                           U=4.0, V= 3.0

poi(1,4)=-2,0.0,0 poi(2,4)= 0,0.0,0 poi(3,4)= 2,0.0,0 poi(4,4)=7,0.0,0 poi(5,4)= 9,0.0,0
poi(1,3)=-2,0.0,1 poi(2,3)= 0,2.5,1 poi(3,3)= 2,3.5,1 poi(4,3)= 7,1.0,1 poi(5,3)= 9,0.0,1
poi(1,2)=-2,0.0,2 poi(2,2)= 0,2.5,2 poi(3,2)= 2,3.5,2 poi(4,2)=7,1.0,2 poi(5,2)= 9,0.5,1
poi(1,1)=-2,0.0,3 poi(2,1)= 0,0.0,3 poi(3,1)= 2,0.0,3 poi(4,1)= 7,0.0,3 poi(5,1)= 9,0.0,3

U= 0.0, V=0.0                                                                                            U= 4.0, V= 0.0


VARKON Homepage Index