У меня есть функция под названием «ветвь», которая выводит график с линией от точки а к точке б. Эта функция - просто перестановка функции lines () в R, и она отлично работает.
Теперь я пытаюсь l oop этой функции, чтобы она вывела aws строку с ее источником в точка, в которой заканчивается первая строка, другими словами, точка «b» старой линии становится точкой «a» следующей строки, а длина новой строки равна половине длины родительского элемента.
drawLine <- function(start.x, start.y, end.x, end.y, color='white') {
start <- c(start.x,end.x)
end <- c(start.y,end.y)
line <-lines (start, end, col=color)
return(line)
}
branch <- function(origin,length, color='white'){
branch <- drawLine(origin,100,origin+length,100, col = color)
return(branch)
}
par(bg = "black", mar = c(0,0,0,0))
plot.new(); plot.window(xlim=c(0,400),ylim=c(0,400))
branch(100,100, 'white') #notar, color default es blanco
branch(200,100, 'red')
Здесь вы можете проверить, работает ли он.
tree <- function(origin, length, numberOfBranches, color = 'white'){
numberOfBranches <- vector()
branches <- list()
for(i in numberOfBranches){
branches[[i]] <- branch(origin,length, col = color)
origin = origin+length
length = length/2
}
return(branches)
}
По какой-то причине консоль печатает только пустой список "list ()"
Стоит отметить, что ось Y зафиксирована на высоте 200, так что это не проблема масштабирования.
Почему не выполняется черчение?
Заранее спасибо.