在图像上叠加图像

时间:2014-02-08 01:49:33

标签: python

  

实现以多个切片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

然而,它给出的图像是不同的。我做错了什么?

2 个答案:

答案 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