suppressPackageStartupMessages(library(sf))
bb = st_bbox(c(xmin=0, ymin=1, xmax=3, ymax=2))
xx <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "polygons")
plot(xx, border = 'green', main = "pointy topped")
x <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "points")
plot(x, add = TRUE)
x <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "corners")
plot(x, col = 'orange', add = TRUE)
plot(st_as_sfc(bb), add = TRUE, border = 'red')
st_overlaps(xx) |> 
	lengths() |> 
	sum()

st_as_sfc(bb) |>
	st_difference(st_union(xx)) |>
	st_area()

xx <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "polygons", flat_topped = TRUE)
plot(xx, border = 'green', main = "flat topped")
x <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "points", flat_topped = TRUE)
plot(x, add = TRUE)
x <- st_make_grid(st_as_sfc(bb), square = FALSE, what = "corners", flat_topped = TRUE)
plot(x, col = 'orange', add = TRUE)
plot(st_as_sfc(bb), add = TRUE, border = 'red')
st_overlaps(xx) |> 
	lengths() |> 
	sum()

st_as_sfc(bb) |>
	st_difference(st_union(xx)) |>
	st_area()
