Re: [R] How to draw holes generated by gpclib using plot function

About this list Date view Thread view Subject view Author view Attachment view

From: Ross Ihaka (
Date: Tue 11 May 2004 - 17:40:15 EST

Message-id: <>

Hisaji ONO wrote:
> Hi.
> I've tried to create a polygon with one hole by gpclib using following
> example script.
> holepoly <- read.polyfile(system.file("poly-ex/hole-poly.txt", package
> ="gpclib"), nohole = FALSE)
> area.poly(holepoly)
> plot(holepoly,poly.args=list(col="red",border="blue"))
> And I noticed plot function couldn't draw polygons with holes correctly.
> Does anyone know how to solve this situation?

This is basic constraint in the R graphics system. Polygons must
consist of a single (possibly self-intersecting) ring. It would be
possible to implement a primitive which is bounded by several
non-intersecting rings by joining the interior holes to the outer
boundary to create a simply connected shape. Then you could draw
the interior with the existing polygon primitive. You can find a
more precise description of the process in the FIST (fast
industrial-strength triangulation) paper:

 M. Held (2001):
``FIST: Fast Industrial-Strength Triangulation of Polygons''.
Algorithmica 30(4): 563-596, 2001.

It would be VERY useful to have an implementation of this (hint, hint!)

Alternatively, I think that gpc has an option to return a triangulated
version of the polygon. If you get hold of this you could just draw the
triangles. though this might be slow for complex polygons.

Ross Ihaka                         Email:
Department of Statistics           Phone:  (64-9) 373-7599 x 85054
University of Auckland             Fax:    (64-9) 373-7018
Private Bag 92019, Auckland
New Zealand

______________________________________________ mailing list PLEASE do read the posting guide!

About this list Date view Thread view Subject view Author view Attachment view

This archive was generated by hypermail 2.1.3 : Mon 31 May 2004 - 23:05:08 EST