Learn R Programming

fastmatrix (version 0.5-7721)

bezier: Computation of Bezier curve

Description

Computes the Bezier curve based on \(n+1\) control points using the De Casteljau's method.

Usage

bezier(x, y, ngrid = 200)

Value

A list containing xgrid and ygrid elements used to plot the Bezier curve.

Arguments

x, y

vector giving the coordinates of the control points. Missing values are deleted.

ngrid

number of elements in the grid used to compute the smoother.

Details

Given \(\bold{p}_0,\bold{p}_1,\dots,\bold{p}_n\) control points the Bezier curve is given by \(B(t)\) defined as $$B(t) = \left({\begin{array}{c} x(t) \\ y(t) \end{array}}\right) = \sum\limits_{k=0}^n {n \choose k} t^k (1 - t)^k\bold{p}_k$$ where \(t\in[0,1]\). To evaluate the Bezier curve the De Casteljau's method is used.

Examples

Run this code
# a tiny example
x <- c(1.0, 0.25, 1.25, 2.5, 4.00, 5.0)
y <- c(0.5, 2.00, 3.75, 4.0, 3.25, 1.0)
plot(x, y, type = "o")
z <- bezier(x, y, ngrid = 50)
lines(z$xgrid, z$ygrid, lwd = 2, lty = 2, col = "red")

# other simple example
x <- c(4,6,4,5,6,7)
y <- 1:6
plot(x, y, type = "o")
z <- bezier(x, y, ngrid = 50)
lines(z$xgrid, z$ygrid, lwd = 2, lty = 2, col = "red")

Run the code above in your browser using DataLab