gridBezier (version 1.1-1)

BezierPoints: Calculate Points on a Bezier Curve

Description

Calculate points on a Bezier curve and/or tangents and/or normals to the curve at those points.

Usage

BezierPoints(x, range = NULL)
BezierTangent(x, range = NULL)
BezierNormal(x, range = NULL)

Arguments

x

A "BezierGrob" object.

range

The range of t values within which to calculate points (or tangents or normals). A numeric vector of length 2.

Value

All functions return a list with components x and y. For BezierPoints these are locations on the curve. For BezierTangent and BezierNormal, these are the distances to the end points of tangent or normal line segments. All values are in inches.

Details

The tangents and normals are 1 inch in length.

Examples

Run this code
# NOT RUN {
x <- BezierGrob(c(.2, .2, .8, .8), c(.2, .8, .8, .2),
                stepFn=function(...) seq(0, 1, length.out=10))
grid.draw(x)
pts <- BezierPoints(x)
grid.circle(pts$x, pts$y, default.units="in", r=unit(.5, "mm"),
            gp=gpar(fill="black"))
tan <- BezierTangent(x)
grid.segments(pts$x, pts$y, pts$x + tan$x, pts$y + tan$y,
              default.units="in", gp=gpar(col="green"))
norm <- BezierNormal(x)
grid.segments(pts$x, pts$y, pts$x + norm$x, pts$y + norm$y,
              default.units="in", gp=gpar(col="red"))
# }

Run the code above in your browser using DataLab