Rev 81097 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed
library(grid)HersheyLabel <- function(x, y=unit(.5, "npc")) {lines <- strsplit(x, "\n")[[1]]if (!is.unit(y))y <- unit(y, "npc")n <- length(lines)if (n > 1) {y <- y + unit(rev(seq(n)) - mean(seq(n)), "lines")}grid.text(lines, y=y, gp=gpar(fontfamily="HersheySans"))}r1 <- rectGrob(x=1/3, y=2/3, width=.5, height=.5,gp=gpar(col=NA, fill=rgb(.7, 0, 0, .8)))r2 <- rectGrob(x=2/3, y=1/3, width=.5, height=.5,gp=gpar(col=NA, fill=rgb(0, 0, .9, .4)))group <- function(op) {grid.rect()grid.group(r2, op, r1)HersheyLabel(op, y=1/4)}porterDuff <- function() {grid.newpage()pushViewport(viewport(layout=grid.layout(3, 4, respect=TRUE)))pushViewport(viewport(layout.pos.row=1, layout.pos.col=1))group("over")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=2))group("clear")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=3))group("source")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=4))group("in")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=1))group("out")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=2))group("atop")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=3))group("dest")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=4))group("dest.over")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=1))group("dest.in")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=2))group("dest.out")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=3))group("dest.atop")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=4))group("xor")popViewport()}blendModes <- function() {grid.newpage()pushViewport(viewport(layout=grid.layout(3, 4, respect=TRUE)))pushViewport(viewport(layout.pos.row=1, layout.pos.col=1))group("add")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=2))group("saturate")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=3))group("multiply")popViewport()pushViewport(viewport(layout.pos.row=1, layout.pos.col=4))group("screen")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=1))group("overlay")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=2))group("darken")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=3))group("lighten")popViewport()pushViewport(viewport(layout.pos.row=2, layout.pos.col=4))group("color.dodge")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=1))group("color.burn")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=2))group("hard.light")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=3))group("soft.light")popViewport()pushViewport(viewport(layout.pos.row=3, layout.pos.col=4))group("difference")popViewport()}porterDuff()blendModes()