Calculate ellipse polygon
The function calculates ellipse polygons, given centroid locations and sizing on the x and y axes.
st_ellipse(pnt, ex, ey, res = 30)
pnt |
Object of class |
ex |
Size along x-axis, in CRS units |
ey |
Size along y-axis, in CRS units |
res |
Number of points the ellipse polygon consists of (default |
Object of class sfc
(type "POLYGON"
) containing ellipse polygons
Based on StackOverflow answer by user fdetsch
:
# Sample data dat = data.frame( x = c(1, 1, -1, 3, 3), y = c(0, -3, 2, -2, 0), ex = c(0.5, 2, 2, 0.3, 0.6), ey = c(0.5, 0.2, 1, 1, 0.3), stringsAsFactors = FALSE ) dat = st_as_sf(dat, coords = c("x", "y")) dat # Plot 1 plot(st_geometry(dat), graticule = TRUE, axes = TRUE, main = "Input") text(st_coordinates(dat), as.character(1:nrow(dat)), pos = 2) # Calculate ellipses el = st_ellipse(pnt = dat, ex = dat$ex, ey = dat$ey) # Plot 2 plot(el, graticule = TRUE, axes = TRUE, main = "Output") plot(st_geometry(dat), pch = 3, add = TRUE) text(st_coordinates(dat), as.character(1:nrow(dat)), pos = 2)
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.