Linux and UNIX Man Pages

Linux & Unix Commands - Search Man Pages

math::bezier(3pm) [debian man page]

Bezier(3pm)						User Contributed Perl Documentation					       Bezier(3pm)

NAME
Math::Bezier - solution of Bezier Curves SYNOPSIS
use 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); DESCRIPTION
This 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 "; } AUTHOR
Andy Wardley <abw@kfs.org> SEE ALSO
Graphics 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)

Check Out this Related Man Page

GLUPWLCURVE(3G) 						   OpenGL Manual						   GLUPWLCURVE(3G)

NAME
gluPwlCurve - describe a piecewise linear NURBS trimming curve C SPECIFICATION
void gluPwlCurve(GLUnurbs* nurb, GLint count, GLfloat* data, GLint stride, GLenum type); PARAMETERS
nurb Specifies the NURBS object (created with gluNewNurbsRenderer()). count Specifies the number of points on the curve. data Specifies an array containing the curve points. stride Specifies the offset (a number of single-precision floating-point values) between points on the curve. type Specifies the type of curve. Must be either GLU_MAP1_TRIM_2 or GLU_MAP1_TRIM_3. DESCRIPTION
gluPwlCurve describes a piecewise linear trimming curve for a NURBS surface. A piecewise linear curve consists of a list of coordinates of points in the parameter space for the NURBS surface to be trimmed. These points are connected with line segments to form a curve. If the curve is an approximation to a curve that is not piecewise linear, the points should be close enough in parameter space that the resulting path appears curved at the resolution used in the application. If type is GLU_MAP1_TRIM_2, then it describes a curve in two-dimensional (u and v) parameter space. If it is GLU_MAP1_TRIM_3, then it describes a curve in two-dimensional homogeneous (u, v, and w) parameter space. See the gluBeginTrim() reference page for more information about trimming curves. NOTES
To describe a trim curve that closely follows the contours of a NURBS surface, call gluNurbsCurve(). SEE ALSO
gluBeginCurve(), gluBeginTrim(), gluNewNurbsRenderer(), gluNurbsCurve() COPYRIGHT
Copyright (C) 1991-2006 Silicon Graphics, Inc. This document is licensed under the SGI Free Software B License. For details, see http://oss.sgi.com/projects/FreeB/. AUTHORS
opengl.org opengl.org 06/10/2014 GLUPWLCURVE(3G)
Man Page