On 01/10/2013 07:37 AM, David Arnold wrote:
Hi,

Just curious. Has anyone out there ever written a script to generate 100
random rectangles such as the ones shown on this page?

http://www2.math.umd.edu/~jlh/214/Random%20Rectangles.pdf


Hi David,
There are a number of ways to generate "random" rectangles, for instance:

# each row specifies the number of rows and columns of squares
rr.df<-data.frame(nrow=sample(1:12,100,TRUE,prob=12:1),
 ncol=sample(1:12,100,TRUE,prob=12:1))

Then just plot the resulting rectangles:

sqrect<-function(x0,y0,x1,y1) {
 nx<-x1-x0-1
 ny<-y1-y0-1
 for(x in 0:nx) {
  for(y in 0:ny)
   rect(x0+x,y0+y,x0+x+1,y0+y+1)
 }
}

rrPlot<-function(rrdf,div=1.3) {
 nrect<-dim(rrdf)[1]
 plotspace<-nrect/div
 plot(c(1,plotspace),c(1,plotspace),type="n",
  axes=FALSE,xlab="",ylab="",main="Random Rectangles")
 xpos<-ypos<-maxypos<-1
 for(rectangle in 1:nrect) {
  if(xpos+rrdf[rectangle,1] > plotspace) {
   xpos<-1
   ypos<-maxypos
   maxypos<-1
  }
  sqrect(xpos,ypos,xpos+rrdf[rectangle,1],
   ypos+rrdf[rectangle,2])
  xpos<-xpos+rrdf[rectangle,1]+1
  if(ypos+rrdf[rectangle,2] > maxypos)
   maxypos<-ypos+rrdf[rectangle,2]+2
 }
}

The example above does not do any sophisticated placing of the rectangles, but more importantly, shows that there are probably unstated constraints on the "randomness" of the rectangles.

Jim

______________________________________________
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.

Reply via email to