polygon() draws non-transparent border, erase.screen draws non-transparent border (PR#1881)

oehl_list@gmx.de oehl_list@gmx.de
Tue, 6 Aug 2002 18:16:22 +0200 (MET DST)


# polygon ignores requests to have its border transparent, look at
par(bg="transparent")
plot(c(0, 3), 0:1)
polygon(c(0, 1, 1, 0), c(0, 0, 1, 1), border=NA, col = 0)
polygon(c(1, 2, 2, 1), c(0, 0, 1, 1), border="transparent", col = 0)
polygon(c(2, 3, 3, 2), c(0, 0, 1, 1), border=0, col = 0)

# a quick fix for erase.screen() is the following
erase.screen <-
function (n = .split.cur.screen)
{
    if (!exists(".split.screens", envir = .GlobalEnv))
        return(FALSE)
    if (!(n %in% .split.valid.screens) && n != 0)
        stop("Invalid screen number\n")
    old <- par(usr = c(0, 1, 0, 1), mar = c(0, 0, 0, 0), fig = if (n >
        0)
        .split.screens[[n]]$fig
    else c(0, 1, 0, 1), xaxs = "i", yaxs = "i")
    on.exit(par(old))
    par(new = TRUE)
    plot.new()
    # bug in polygon, ignores border="transparent"
    # was: polygon(c(0, 1, 1, 0), c(0, 0, 1, 1), border=NA, col = 0)  
    rect(0, 0, 1, 1, col=0, border=0)
    par(new = TRUE)
    invisible()
}

as borders are overlapping between subscreens, erasing one subscreen will
set parts of borders of neighbor subscreens to background color. I guess this
is better than not beeing able to erase the borders at all. However, if border
shall not be erased have 
  rect(0, 0, 1, 1, col=0, border="tranparent")
instead. Alternatively we could introduce a new parameter border= to
erase.screen(), screen() and split.screen()

Best regards


Jens Oehlschlägel



> version
         _              
platform i386-pc-mingw32
arch     i386           
os       mingw32        
system   i386, mingw32  
status                  
major    1              
minor    5.1            
year     2002           
month    06             
day      17             
language R 


-- 




-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-.-
r-devel mailing list -- Read http://www.ci.tuwien.ac.at/~hornik/R/R-FAQ.html
Send "info", "help", or "[un]subscribe"
(in the "body", not the subject !)  To: r-devel-request@stat.math.ethz.ch
_._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._._