Code : Tout sélectionner
polyg2 <- function(xcenter,ycenter,radius,angle,bg,fg,lwd=1,edges=3) {
angle <- angle*pi/180
theta <- ((0:(edges-1)))*2*pi/edges
centers <- cbind(xcenter,ycenter)
if (length(radius)==1) radius <- rep(radius,nrow(centers))
for (i in 1:nrow(centers)) {
x <- cos(theta+angle[i])*radius[i] ; x <- x-x[1]
y <- sin(theta+angle[i])*radius[i] ; y <- y-y[1]
polygon(centers[i,1]+x,centers[i,2]+y,border=fg,col=bg,lwd=lwd,density=-1)
points(centers[i,1]+x[1],centers[i,2]+y[1],col="red",pch=16)
}
}
df <- expand.grid(x=1:5, y=1:5)
plot(df$x,df$y,xlim=c(0,6),ylim=c(0,6), asp=1) ; grid(col="black")
df$angle <- (0:(nrow(df)-1)*10) ## en degrés
df$radius <- (1:nrow(df))/nrow(df)*0.4 + 0.1
polyg2(df$x,df$y,radius=df$radius,angle=df$angle,bg="yellow",fg="blue",lwd=1)