Query: math::bezier
OS: debian
Section: 3pm
Format: Original Unix Latex Style Formatted with HTML and a Horizontal Scroll Bar
Bezier(3pm) User Contributed Perl Documentation Bezier(3pm)NAMEMath::Bezier - solution of Bezier CurvesSYNOPSISuse Math::Bezier; # create curve passing list of (x, y) control points my $bezier = Math::Bezier->new($x1, $y1, $x2, $y2, ..., $xn, $yn); # or pass reference to list of control points my $bezier = Math::Bezier->new([ $x1, $y1, $x2, $y2, ..., $xn, $yn]); # determine (x, y) at point along curve, range 0 -> 1 my ($x, $y) = $bezier->point(0.5); # returns list ref in scalar context my $xy = $bezier->point(0.5); # return list of 20 (x, y) points along curve my @curve = $bezier->curve(20); # returns list ref in scalar context my $curve = $bezier->curve(20);DESCRIPTIONThis module implements the algorithm for the solution of Bezier curves as presented by Robert D. Miller in Graphics Gems V, "Quick and Simple Bezier Curve Drawing". A new Bezier curve is created using the new() constructor, passing a list of (x, y) control points. use Math::Bezier; my @control = ( 0, 0, 10, 20, 30, -20, 40, 0 ); my $bezier = Math::Bezier->new(@control); Alternately, a reference to a list of control points may be passed. my $bezier = Math::Bezier->new(@control); The point($theta) method can then be called on the object, passing a value in the range 0 to 1 which represents the distance along the curve. When called in list context, the method returns the x and y coordinates of that point on the Bezier curve. my ($x, $y) = $bezier->point(0.5); print "x: $x y: $y When called in scalar context, it returns a reference to a list containing the x and y coordinates. my $point = $bezier->point(0.5); print "x: $point->[0] y: $point->[1] "; The curve($n) method can be used to return a set of points sampled along the length of the curve (i.e. in the range 0 <= $theta <= 1). The parameter indicates the number of sample points required, defaulting to 20 if undefined. The method returns a list of ($x1, $y1, $x2, $y2, ..., $xn, $yn) points when called in list context, or a reference to such an array when called in scalar context. my @points = $bezier->curve(10); while (@points) { my ($x, $y) = splice(@points, 0, 2); print "x: $x y: $y "; } my $points = $bezier->curve(10); while (@$points) { my ($x, $y) = splice(@$points, 0, 2); print "x: $x y: $y "; }AUTHORAndy Wardley <abw@kfs.org>SEE ALSOGraphics Gems 5, edited by Alan W. Paeth, Academic Press, 1995, ISBN 0-12-543455-3. Section IV.8, 'Quick and Simple Bezier Curve Drawing' by Robert D. Miller, pages 206-209. perl v5.10.1 2000-10-19 Bezier(3pm)
Related Man Pages |
---|
tkspline(3) - centos |
glunurbscurve(3g) - redhat |
qcanvasspline(3qt) - centos |
cairo_curve_to(3) - php |
math::bezier(3pm) - debian |
Similar Topics in the Unix Linux Community |
---|
[ C++ ] Drawing Program. |
EPTS4: Customers, all under control |