VARKON Version 1.15 1997-12-29
cur_conic - Geometric procedure
Creates a curve
Description
Creates a rational cubic parametric segmented curve that interpolates two or more positions and tangents. cur_conic does not care about the length of tangents, only the direction. For every segment a Midpoint or P-value must also be specified. A Midpoint is just any intermediate position while a P-value is a scalar float that controls the "fullness" of the segment.
If tangents are chosen in such a way that they intersect and form a nice triangle with the segment chord as baseline then the resulting segment becomes a classical plane conic segment (quadric rational). If the tangents are chosen in such a way that inflexion or twist is forced the resulting segment becomes a cubic rational generalized (3D-) conic.
A type parameter is used to control whether to project positions and tangents onto the XY-plane of the active coordinate system or not before creating the curve.
Syntax
cur_conic(id, type, p1, tp1, MP, p2, tp2,MPn,pn,tpn:attributes);
REF id; STRING type*4; VECTOR p1; VECTOR tp1; VECTOR/FLOAT MP; VECTOR p2; VECTOR tp2; VECTOR/FLOAT MPn; VECTOR pn; VECTOR tpn;
Principal parameters
id - Local identity type - The string "FREE" or "PROJ" p1 - First position (beginning of first segment) tp1 - First tangent position MP - Midpoint or P-value for first segment p2 - Second position (end of first segment) tp2 - Second tangent position
Optional parameters
MPn - Additional Midpoints or P-values, one per additional segment pn - Additional positions, one per additional segment tpn - Additional tangent positions, one per additional segment 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
Example
cur_conic(#1,"PROJ", vec(0, 0), vec(1, 1), 0.4,
vec(5, 0), vec(6, -1), vec(8, -1),
vec(10, 0), vec(11, 1));
Creates a conic curve with two segments. First segment has a P-value of 0.4 and second segment is defined by a Midpoint position = (8,-1).
Comments
A true 3D spacecurve can only be defined in a 3D module with type set to "FREE". In a 2D module or with type set to "PROJ" a planar curve with torsion = 0 is always created even if defining positions are not in the same plane.
cur_conic is intended for curves with relatively few defining positions, maximum = 50. To interpolate large number of positions use cur_conarr.
P-values should be positive values in the range 0 <= P < 0.85. A value of zero gives a straight line segment and the cooresponding tangent positions are left without notice. Watch out for kinks !
VARKON Homepage | Index |