34 lines
1.1 KiB
R
34 lines
1.1 KiB
R
## Recursive FT plotting
|
|
plotftree <- function(x, y, a, d, c) {
|
|
x2=y2=0; d2r=pi/180.0; a1 <- a*d2r; d1=0;
|
|
if(d<=0) {return()}
|
|
if(d>0)
|
|
{ d1=d*10.0;
|
|
x2=x+cos(a1)*d1;
|
|
y2=y+sin(a1)*d1;
|
|
segments(x*c, y*c, x2*c, y2*c, col='darkgreen');
|
|
plotftree(x2,y2,a-20,d-1,c);
|
|
plotftree(x2,y2,a+20,d-1,c);
|
|
#return(2);
|
|
}
|
|
}
|
|
## Plotting Fractal Tree. aev 3/27/17
|
|
## ord - order/depth, c - scale, xsh - x-shift, fn - file name,
|
|
## ttl - plot title.
|
|
pFractalTree <- function(ord, c=1, xsh=0, fn="", ttl="") {
|
|
cat(" *** START FRT:", date(), "\n");
|
|
m=640;
|
|
if(fn=="") {pf=paste0("FRTR", ord, ".png")} else {pf=paste0(fn, ".png")};
|
|
if(ttl=="") {ttl=paste0("Fractal tree, order - ", ord)};
|
|
cat(" *** Plot file -", pf, "title:", ttl, "\n");
|
|
##plot(NA, xlim=c(0,m), ylim=c(-m,0), xlab="", ylab="", main=ttl);
|
|
plot(NA, xlim=c(0,m), ylim=c(0,m), xlab="", ylab="", main=ttl);
|
|
plotftree(m/2+xsh,100,90,ord,c);
|
|
dev.copy(png, filename=pf, width=m, height=m);
|
|
dev.off(); graphics.off();
|
|
cat(" *** END FRT:",date(),"\n");
|
|
}
|
|
## Executing:
|
|
pFractalTree(9);
|
|
pFractalTree(12,0.6,210);
|
|
pFractalTree(15,0.35,600);
|