You are looking at historical revision 30033 of this page. It may differ significantly from its current revision.

• egg

## Parametric curve

The parametric-curve library provides an implementation of parametric curves. Parametric curves are n-dimensional curves described by parametric equations, one per each dimension. For example:

``` x = a cos (t)
y = a sin (t)
z = bt```

In this example, t is the parameter, and a and b are constants.

## Usage

(require-extension parametric-curve)

## Documentation

### Procedures

[procedure] parametric-curve? :: OBJECT -> BOOL

Returns #t if the given object is a parametric curve, #f otherwise.

[procedure] simple-curve :: N * K * FS * TMIN * TMAX -> PCURVE

Basic parametric curve constructor.

N
number of interpolation points (N >= 3)
K
continuity class of the interpolating spline for this curve (1 or 2, for first or second derivative)
FS
a list of one-argument procedures that are evaluated to obtain points on the curve. The length of FS determines the dimensionality of the curve
TMIN
minimum value for the curve parameter
TMIN
maximum value for the curve parameter
[procedure] sample-curve :: PCURVE -> (T -> POINT)

Constructs a procedure to sample the curve at the given parameter value.

[procedure] sample-curve* :: PCURVE -> (T LIST -> POINT LIST)

Constructs a procedure to sample the curve at the given parameter values.

[procedure] linear-curve :: N * COEFFS * TMIN * TMAX -> PCURVE

Constructor for a linear curve of the form c1 * x + c2.

N
number of interpolation points (N >= 3)
COEFFS
supplies c1 and c2 for the different dimensions
TMIN
minimum value for the curve parameter
TMAX
maximum value for the curve parameter
[procedure] line-segment:: N * COEFFS -> PCURVE

Creates a line segment whose starting point is zero, and its end points is defined by COEFFS. N is the number of interpolating points.

[procedure] map-curve :: FS * PCURVE -> PCURVE

Maps the given functions to the parametric curve.

[procedure] iterate-curve :: PCURVE * N -> POINT LIST

Samples a parametric curve at N regular intervals in the range xmin..xmax inclusive.

[procedure] range-curve :: PCURVE * N * (X1,XN) LIST -> POINT LIST

Samples a parametric curve at regular intervals in the given ranges.

## Examples

### Version history

1.4
1.0
Initial release

```Copyright 2012-2013 Ivan Raikov and the Okinawa Institute of Science and Technology

This program is free software: you can redistribute it and/or modify