polyminkowski | R Documentation |
Compute the Minkowski Sum of a polygon with a path or paths.
polyminkowski(A, B, ..., eps, x0, y0,
closed=TRUE)
A |
Data specifying a polygon or polygons. See Details. |
B |
Data specifying a path or paths. See Details. |
... |
Ignored. |
eps |
Spatial resolution for coordinates. |
x0 , y0 |
Spatial origin for coordinates. |
closed |
Logical value indicating whether the resulting path should be interpreted as closed (last vertex joined to first vertex and interior filled in). |
This is an interface to the function MinkowskiSum
in
Angus Johnson's C++
library Clipper.
It computes the Minkowski Sum of the polygon A
(including its interior) with the path or paths B
(excluding their interior).
The argument A
should be
a list containing two components x
and y
giving the coordinates of the vertices of a single polygon.
The last vertex should
not repeat the first vertex.
The argument B
should be either
a list containing two components x
and y
giving the coordinates of the vertices of a single polygon or path.
The last vertex should
not repeat the first vertex.
a list
of list(x,y)
structures giving
the coordinates of the vertices of several polygons or paths.
Calculations are performed in integer arithmetic
after subtracting x0,y0
from the coordinates,
dividing by eps
, and rounding to the nearest integer.
Thus, eps
is the effective spatial resolution.
The default values ensure reasonable accuracy.
Data specifying polygons, in the same format as A
.
Angus Johnson. Ported to R by Adrian Baddeley Adrian.Baddeley@curtin.edu.au.
Clipper Website: http://www.angusj.com
polyclip
,
polyoffset
,
polylineoffset
,
polysimplify
A <- list(list(x=c(-3,3,3,-3),y=c(-3,-3,3,3)))
B <- list(list(x=c(-1,1,1,-1),y=c(-1,-1,1,1)))
C <- polyminkowski(A, B)
opa <- par(mfrow=c(1,3))
rr <- c(-4, 4)
plot(rr, rr, type="n", axes=FALSE, xlab="", ylab="", main="A")
polygon(A[[1]], col="blue")
plot(rr,rr, type="n", axes=FALSE, xlab="", ylab="", main="B")
polygon(B[[1]], border="red", lwd=4)
plot(rr,rr, type="n", axes=FALSE, xlab="", ylab="", main="A+B")
polygon(C[[1]], col="green")
polygon(C[[2]], col="white")
par(opa)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.