python 分形 Sierpinski Carpet 谢尔宾斯基地毯

python 分形 Sierpinski Carpet 谢尔宾斯基地毯好久没更新 趁着中午休息更新一下 这次的是分形中的谢尔宾斯基地毯 3 阶的地毯是下面这个形状 不是二维码哈 源代码如下 python2 使用 Turtle 绘图 coding utf 8importturtl SierpinskiCa COLOR TABLES 000000 000000

python   分形  Sierpinski Carpet 谢尔宾斯基地毯


python   分形  Sierpinski Carpet 谢尔宾斯基地毯

源代码如下 (python 2 使用Turtle绘图):

# coding=utf-8 import turtle PROGNAME = 'Sierpinski Carpet' COLOR_TABLES = [    ["#000000", "#000000", "#000000", "#000000" ],    ["#00649F", "#97ECC5", "#00DBE7", "#01AAC1" ],    ["#085F63", "#EF255F", "#FCCF4D", "#49BEB7" ],    ["#9B5D73", "#FFF1C5", "#C38B8B", "#B0757C" ],    ["#F0F0F0", "#FC5185", "#364F6B", "#43DDE6" ],    ["#F67280", "#355C7D", "#6C5B7B", "#C06C84" ],    ["#F3ECC8", "#0D1B4C", "#3F6699", "#78C2C3" ] ] def box(pen, boxSize):    pen.begin_fill()    # 0 deg.    pen.forward(boxSize)    pen.left(90)    # 90 deg.    pen.forward(boxSize)    pen.left(90)    # 180 deg.    pen.forward(boxSize)    pen.left(90)    # 270 deg.    pen.forward(boxSize)    pen.end_fill()    pen.setheading(0) def move_box(pen, xy, length, color):    (x, y) = xy    pen.color(color)    pen.penup()    pen.goto(x, y)    pen.pendown()    box(pen, length) def draw_all(pen, xy, length, depth, color_table):    if depth <= 0: return    length3 = length / 3    (x, y) = xy    pos1_9 = [  (x-length3*2,       y+length+length3),                (x+length3,         y+length+length3),                (x+length+length3,  y+length+length3),                (x-length3*2,       y+length3),                (x+length+length3,  y+length3),                (x-length3*2,       y-length3*2),                (x+length3,         y-length3*2),                (x+length+length3,  y-length3*2) ]        for pos in pos1_9:        move_box(pen, pos, length3, color_table[depth%len(color_table)])        draw_all(pen, pos, length3, depth-1, color_table)     def main():    length = 270 # size    start_x = -length/2    start_y = -length/2    depth = 3    turtle.setup(width=1.3*turtle.window_width(), height=1.3*turtle.window_height()) # not necessary    for color_table in COLOR_TABLES:        my_pen = turtle.Turtle()        my_pen.ht() # hiden turtle        my_pen.speed(20000) # set speed        move_box(my_pen, (start_x, start_y), length, color_table[0])        draw_all(my_pen, (start_x, start_y), length, depth, color_table)        my_pen.getscreen().getcanvas().postscript(file=color_table[0]+".eps") # save to eps file        my_pen.clear() # clear for next draw if __name__ == "__main__":    main()        pass

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

(↓ - 有些内容只在小龙家发,可关注同名“趣Python”号,谢谢 - ↓) 

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

python   分形  Sierpinski Carpet 谢尔宾斯基地毯

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/226611.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午10:32
下一篇 2026年3月16日 下午10:32


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号