alphaMaskGrob {gridpattern} | R Documentation |
Mask grob using another grob to specify the (alpha) mask
Description
alphaMaskGrob()
masks a grob using another grob to specify the (alpha) mask.
Usage
alphaMaskGrob(
maskee,
masker,
use_R4.1_masks = getOption("ggpattern_use_R4.1_masks",
getOption("ggpattern_use_R4.1_features")),
png_device = NULL,
res = getOption("ggpattern_res", 72),
name = NULL,
gp = gpar(),
vp = NULL
)
Arguments
maskee |
Grob to be masked |
masker |
Grob that defines masking region |
use_R4.1_masks |
If |
png_device |
“png” graphics device to save intermediate raster data with if |
res |
Resolution of desired |
name |
A character identifier. |
gp |
An object of class |
vp |
A Grid viewport object (or NULL). |
Value
A grid
grob
Examples
# Once took more >10s on a CRAN autocheck
if (capabilities("png") && require("grid")) {
maskee <- patternGrob("circle", gp = gpar(col = "black", fill = "yellow"),
spacing = 0.1, density = 0.5)
angle <- seq(2 * pi / 4, by = 2 * pi / 6, length.out = 7)
x_hex_outer <- 0.5 + 0.5 * cos(angle)
y_hex_outer <- 0.5 + 0.5 * sin(angle)
x_hex_inner <- 0.5 + 0.25 * cos(rev(angle))
y_hex_inner <- 0.5 + 0.25 * sin(rev(angle))
gp <- gpar(lwd = 0, col = NA, fill = "white")
masker <- grid::pathGrob(x = c(x_hex_outer, x_hex_inner),
y = c(y_hex_outer, y_hex_inner),
id = rep(1:2, each = 7),
rule = "evenodd", gp = gp)
masked <- alphaMaskGrob(maskee, masker, use_R4.1_masks = FALSE)
grid.draw(masked)
}
if (capabilities("png") && require("grid")) {
maskee_transparent <- rectGrob(gp = gpar(col = NA, fill = "blue"))
gp <- gpar(lwd = 20, col = "black", fill = grDevices::rgb(0, 0, 0, 0.5))
masker_transparent <- editGrob(masker, gp = gp)
masked_transparent <- alphaMaskGrob(maskee_transparent,
masker_transparent,
use_R4.1_masks = FALSE)
grid.newpage()
grid.draw(masked_transparent)
}