<br />
drawTree <- function(x1, y1, angle, n, lwd = NULL,<br />
len = NULL, col = NULL, fruit = FALSE) {<br />
if (n >= 1) {<br />
x2 <- x1 + cos(angle) * len[n] * 10<br />
y2 <- y1 + sin(angle) * len[n] * 10<br />
lines(c(x1, x2), c(y1, y2), lwd = lwd[n], col = col[n])<br />
if (n == 1 & fruit)<br />
symbols(x2, y2, circles = lwd[n] * 2, inches = FALSE,<br />
add = TRUE, bg = "red", fg = "red")<br />
drawTree(x2, y2, angle - pi/9, n - 1, lwd, len, col, fruit)<br />
drawTree(x2, y2, angle + pi/9, n - 1, lwd, len, col, fruit)<br />
}<br />
}<br />
dev.new(width = 9, height = 6)<br />
par(mar = c(0, 0, 0, 0))<br />
plot(0, 0, xlim = c(-260, 260), ylim = c(0, 450), type = "n", axes = FALSE)<br />
drawTree(0, 0, angle = pi/2, n = 9, lwd = 1:9,<br />
len = 1:9, col = rev(terrain.colors(16)[1:9]), fruit = TRUE) </p>
<p>
</p>
看看婆娑树的成长过程:
<br />
COL <- rev(terrain.colors(16)[1:9])<br />
dev.new(width = 9, height = 6)<br />
par(mar=c(0,0,0,0),ask=TRUE)<br />
for(i in 1:9){<br />
plot(0,0,xlim=c(-260,260), ylim=c(0,450),type="n",axes=FALSE)<br />
drawTree(0, 0, angle=pi/2, n=i, lwd = (10-i):9,<br />
len = (10-i):9, col = COL[(10-i):9], fruit=TRUE)<br />
}<br />
</p>