[R] Random Rectangles
Jim Lemon
jim at bitwrit.com.au
Thu Jan 10 03:48:53 CET 2013
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
More information about the R-help
mailing list