VARKON Version 1.17D 2003-02-28

## cur_nurbsarr - geometric procedure

Creates a NURBS curve

Description
Creates a NURBS curve from control points and optional weights and knots. Input data is given in arrays. If you dont know what order to use we recomend order = 4 (NURBS order = NURBS degree +1). Knots may be uniformly spaced or non uniformly. To get a rational curve, weights may be given. Default is 1.0 for all weights (non rational).

Syntax
cur_nurbsarr(id, order, ncpts, cpts, weights, knots :attributes);

REF | id
INT | order
INT | ncpts
VECTOR | cpts( )
FLOAT | weights( )
FLOAT | knots( )

Principal parameters
id | - Local identity
order | - Nurbs order (order=degree+1)
ncpts | - Number off control points
cpts( ) | - Array with control points

Optional parameters
weights( ) | - Array with weights (number of weights shall be same as ncpts)
knots( ) | - Array with knot values (number of knot values shall be ncpts + order)

Attributes
PEN | - Pen or colour number
LEVEL | - Level number
BLANK | - Visible(0) or invisible(1)
CFONT | - Solid(0), dashed(1) or centerline(2)
CDASHL | - Dashlength
WIDTH | - Linewidth

Examples
`CONSTANT INT order=4; CONSTANT INT ncpts=5; VECTOR cpts(5); FLOAT weights(5); FLOAT knots(9); cur_nurbsarr(#10,order, ncpts, cpts, weights, knots);`

Comments

A NURBS curve interpolates start and end point if the first and last knot value is repeated order times.
A uniform knotvector for the example above could be: {0 0 0 0 0.5 1 1 1 1} This curve will then have 2 segments (NURBS spans).
The curve will be evaluated with the given (possibly non uniform) knotvector, but the varkon parameterization for successive operations, on( ), norm( ) etc. vill be similar as for other curvetypes, i.e. 0-1 for first segment, 1-2 for second segment etc.
Limitations:
A NURBS curve can not yet be trimmed or included in a composite curve.
inv_arcl( ) may fail for some NURBS-curves.

VARKON Homepage | Index