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