jonas garcia <garcia.jonas80 <at> googlemail.com> writes:

> 
> Thanks for your reply,
> 
> My main issue is that I don't have any equations to generate the data, just
> a bunch of points, each corresponding to a polygon.
> 
> I was looking in package "sp" and there is a function to calculate areas (
> areapl()), but not for intersecting polygons. Is there any other package
> that does this?
> Thanks

There is a formula for calculating the area of a polygon from its points,

    A = 1/2 * sum_{i=1}^{n}{x_i*y_{i+1} - x_{i+1}*y_i},
    where (x_{n+1}, y_{n+1}) = (x_0, y_0),
    n the number of points (non-closed),
i.e.
    polygonArea(poly1)  # 6.39605
    polygonArea(poly2)  # 9.35967

You will need to identify the intersection points between the polygons
and merge the appropriate parts of the polygon lines.

Hans Werner

----
polygonArea <- function(P) {
        n <- nrow(P)
        x <- P[, 1]; y <- P[, 2]
        p1 <- sum(x[1:(n-1)]*y[2:n]) + x[n]*y[1]
        p2 <- sum(x[2:n]*y[1:(n-1)]) + x[1]*y[n]
        return(0.5*(p1-p2))
}
----

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to