You are looking at historical revision 30032 of this page. It may differ significantly from its current revision.
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 -> BOOLReturns #t if the given object is a parametric curve, #f otherwise.
[procedure] simple-curve :: N * K * FS * TMIN * TMAX -> PCURVEBasic 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
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 * K * COEFFS * TMIN * TMAX -> PCURVEConstructor for a linear curve of the form c1 * x + c2.
- 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)
- COEFFS
- supplies c1 and c2 for the different dimensions
- TMIN
- minimum value for the curve parameter
- TMAX
- maximum value for the curve parameter
Maps the given functions to the parametric curve.
[procedure] iterate-curve :: PCURVE * N -> POINT LISTSamples a parametric curve at N regular intervals in the range xmin..xmax inclusive.
[procedure] range-curve :: PCURVE * N * (X1,XN) LIST -> POINT LISTSamples a parametric curve at regular intervals in the given ranges.
Examples
About this egg
Author
Version history
- 1.0
- Initial release
License
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 it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. A full copy of the GPL license can be found at <http://www.gnu.org/licenses/>.