实现以多个切片n和一个符文作为参数的函数树, 并生成一堆符文并叠加在一起的符文。
例如,以下命令树(4,circle_bb)应生成以下内容 深度图:
生成的树必须满足一些属性:树顶部的圆圈bb是 缩放到原始大小的1 = 4(树有4层);下一个较低层按比例缩放 2 = 4,依此类推。请注意,最底层保留其原始大小。不同的 树的水平也必须均匀分开。
将使用overlay_frac(ratio,pattern1,pattern2)和scale(size,pattern)命令。
对于overlay_frac,此参数确定 深度范围的分数占据第一个符文;其余部分 深度范围将由第二个符文占据。
我的具体展示代码(树(4,circle_bb))是:
def tree(n, rune):
a= scale( 1/n, rune)
b = scale( 2/n, rune)
c = scale( 3/n, rune)
Bottom = overlay_frac( 1/2, c,d)
Middle = overlay_frac(1/2, b, Bottom)
Top = overlay_frac(1/2, a, Middle)
return Top
但我需要换成循环,所以我在写:
def tree(n ,rune):
SUM = rune
for i in range(1, n+1):
layer_i = scale(i/n, rune)
SUM = overlay_frac(1/i, layer_i, SUM)
return SUM
然而,它给出的图像是不同的。我做错了什么?
答案 0 :(得分:0)
循环内部有一个return
语句,因此它会在第一次迭代后退出。
答案 1 :(得分:0)
您可以尝试以下方法:
def tree(n, rune):
for i in range(n, 0, -1):
if i == n:
bottom = scale(i/n, rune)
elif i < n:
top = scale(i/n, rune)
bottom = overlay_frac(1/i, top, bottom)
return bottom