将图像覆盖在图像上

问题描述 投票:-1回答:2

实现以多个切片n和一个符文为参数的函数树, 并生成一叠缩放并彼此叠加的符文。

例如,以下命令树(4,circle_bb)应产生以下内容: 深度图:

生成的树必须满足一些属性:树顶部的圆圈bb为 缩放到其原始大小的1 = 4(树有4层);下一个下一层的缩放比例为 2 = 4,依此类推。请注意,最底层仍保留其原始大小。不同 树的各个层次也必须均匀间隔。

将使用overlay_frac(ratio,pattern1,pattern2)和scale(size,pattern)命令。

对于overlay_frac,此参数确定深度范围的分数由第一符文占据;其余的深度范围将被第二个符文占据。

我专门用于show(tree(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

但是,它给出的图像是不同的。我在做什么错?

python
2个回答
0
投票

您在循环内有一个return语句,因此它在第一次迭代后退出。


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
© www.soinside.com 2019 - 2024. All rights reserved.