"Roger Leenders" <[EMAIL PROTECTED]> wrote in message news:[EMAIL PROTECTED]
> Now I want to fill the polygon with color, such that it starts on the left > with red and ends on the right with green, following the coloring of the > rainbow. I'd recommend using polar coordinates, like shown below. Instead of 2000 points, 200 or even 100 seem to be enough. Break your arc (polygon) into smaller trapezoids and color them with a continuously changing palette: red.to.green <- rainbow(N, start=0, end=0.35)) N <- 200 # points used for a full circle radius <- 3 theta <- seq(0.0, 2*pi, length.out=N) # Plot circle plot(radius*cos(theta), radius*sin(theta), xlim=c(-radius,radius),ylim=c(-radius,radius), type="l", ylab="", xlab="", axes=F) # Break arc into filled trapezoids radius.outer <- 2.7 radius.inner <- 2.0 N2 <- N / 2 theta <- seq(pi, 0.0, length.out=N/2) red.to.green <- rainbow(N2, start=0, end=0.35) for (i in 1:(N2-1)) { x1 <- radius.outer*cos(theta[i]) x2 <- radius.outer*cos(theta[i+1]) x3 <- radius.inner*cos(theta[i+1]) x4 <- radius.inner*cos(theta[i]) y1 <- radius.outer*sin(theta[i]) y2 <- radius.outer*sin(theta[i+1]) y3 <- radius.inner*sin(theta[i+1]) y4 <- radius.inner*sin(theta[i]) polygon( c(x1, x2, x3, x4, x1), c(y1, y2, y3, y4, y1), col=red.to.green[i], border=NA) } # Draw outline of arc x.outer <- radius.outer * cos(theta) y.outer <- radius.outer * sin(theta) x.inner <- radius.inner * cos(theta) y.inner <- radius.inner * sin(theta) polygon(c(x.outer, rev(x.inner), x.outer[1] ), c(y.outer, rev(y.inner), y.outer[1] ) ) efg Earl F Glynn Stowers Institute for Medical Reseach ______________________________________________ R-help@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide http://www.R-project.org/posting-guide.html and provide commented, minimal, self-contained, reproducible code.