Paul and Michael, Thanks for the information. Yes, it appears that what I want is to be able to present R with a convex polygon for the clipping path. As I waited for comments (for some reason Michael's email did not get to me), I began working on my own methods. I am essentially using a matrix in R to represent pixel-space and using my own edge-detection algorithm. As I write this, I believe I am almost there, but testing awaits tomorrow. The real question will be how fast it actually runs. I'll report back later this week.
Mark Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry Indiana University School of Medicine 15032 Hunter Court, Westfield, IN 46074 (317) 490-5129 Work, & Mobile & VoiceMail (317) 204-4202 Home (no voice mail please) mwkimpel<at>gmail<dot>com ****************************************************************** Paul Murrell wrote: > Hi > > > Michael Lawrence wrote: >> On Feb 7, 2008 4:49 PM, Mark W Kimpel <[EMAIL PROTECTED]> wrote: >> >>> I'm doing some work on a potential patch to the Bioconductor package >>> Rgraphviz and have some questions on code that is contained in engine.c. >>> In particular, I am developing some custom shapes using polygon and need >>> to make sure that, with rendering, the line connecting the centers of >>> two polygons stops at the border of each polygon. The polygons can be >>> transparent, so the option of just rendering the lines first won't work. >>> >>> Is there some help for me with an R internal or perhaps a higher level >>> function? >>> >> I have to admit I am not that familiar with R graphics, but a very common >> way to achieve this in general is to use clipping. That is, you would set >> the regions covered by your node polygons as the "clip" and then draw your >> edges. Anything drawn onto the clip region is discarded. You would then >> reset the clip and continue drawing. >> >> I'm pretty sure that base R does not support the complex clip regions you >> would require. However, it would be possible to do this in R by rendering to > > > That's right. R's graphics engine only copes with rectangular clipping > regions. > > OTOH, the 'grid' package does have a facility to determine locations on > the edges of objects (see grobX() abnd grobY()). This is not > fully-featured, but for convex polygons it might give you what you want. > There's an example or two in > http://www.stat.auckland.ac.nz/~paul/Talks/rgraphs.pdf > > Paul > > >> pixmaps in memory and then compositing the pixmaps. The first part is >> supported by the cairoDevice package and the latter part by RGtk2 (in >> particular its binding to GDK). I'm sure you'd rather not introduce such a >> dependency on Rgraphviz, but it's an option. I think the graphviz developers >> are moving towards GTK+/Cairo in terms of plugins and other work. >> >> I checked libgd (already a dependency of graphviz) but found that it only >> supports a single rectangle for clipping. >> >> Anyway, I hope this helps a little and good luck, >> Michael >> >> >>> Thanks, >>> Mark >>> -- >>> >>> Mark W. Kimpel MD ** Neuroinformatics ** Dept. of Psychiatry >>> Indiana University School of Medicine >>> >>> 15032 Hunter Court, Westfield, IN 46074 >>> >>> (317) 490-5129 Work, & Mobile & VoiceMail >>> (317) 204-4202 Home (no voice mail please) >>> >>> mwkimpel<at>gmail<dot>com >>> >>> ______________________________________________ >>> R-devel@r-project.org mailing list >>> https://stat.ethz.ch/mailman/listinfo/r-devel >>> >> [[alternative HTML version deleted]] >> >> ______________________________________________ >> R-devel@r-project.org mailing list >> https://stat.ethz.ch/mailman/listinfo/r-devel > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel