中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么用Python實現神奇的樹效果

發布時間:2021-10-28 16:45:37 來源:億速云 閱讀:134 作者:iii 欄目:編程語言

本篇內容主要講解“怎么用Python實現神奇的樹效果”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“怎么用Python實現神奇的樹效果”吧!

turtle是一只神奇的小海龜,可以畫出大千世界。而turtle加入了python大家族,像是如龜得水,變得更加受歡迎。

古人有詩云“庭中有奇樹,綠葉發華滋”,樹之美,或婀娜、或繁茂、或蒼勁、或青翠。python-turtle筆下的樹更是別有一番風味。

怎么用Python實現神奇的樹效果

小園新種紅櫻樹,閑繞花行便當游。

怎么用Python實現神奇的樹效果

# coding=gbk import turtle as Timport randomimport time # 畫櫻花的軀干(60,t) def Tree(branch, t):    time.sleep(0.0005)     if branch > 3:         if 8 <= branch <= 12:             if random.randint(0, 2) == 0:                 t.color('snow')  # 白             else:                 t.color('lightcoral')  # 淡珊瑚色             t.pensize(branch / 3)         elif branch < 8:             if random.randint(0, 1) == 0:                 t.color('snow')             else:                 t.color('lightcoral')  # 淡珊瑚色             t.pensize(branch / 2)         else:             t.color('sienna')  # 赭(zhě)色             t.pensize(branch / 10)  # 6         t.forward(branch)        a = 1.5 * random.random()         t.right(20 * a)         b = 1.5 * random.random()         Tree(branch - 10 * b, t)         t.left(40 * a)         Tree(branch - 10 * b, t)         t.right(20 * a)         t.up()        t.backward(branch)        t.down()# 掉落的花瓣def Petal(m, t):    for i in range(m):         a = 200 - 400 * random.random()         b = 10 - 20 * random.random()         t.up()        t.forward(b)        t.left(90)         t.forward(a)        t.down()        t.color('lightcoral')  # 淡珊瑚色         t.circle(1)         t.up()        t.backward(a)        t.right(90)         t.backward(b)# 繪圖區域t = T.Turtle()# 畫布大小w = T.Screen()# 隱藏畫筆t.hideturtle()  t.getscreen().tracer(5, 0) # wheat小麥w.screensize(bg='white')   t.left(90) t.up()t.backward(150) t.down()t.color('sienna') # 畫櫻花的軀干Tree(60, t) # 掉落的花瓣Petal(200, t) w.exitonclick()

江南有丹橘,經冬猶綠林

怎么用Python實現神奇的樹效果

# coding=gbk from turtle import *from random import * from math import * class Tree:    def __init__(self):        setup(1000, 500)         bgcolor(1, 1, 1)  # 背景色         # ht()  # 隱藏turtle        speed(10)  # 速度 1-10漸進,0 最快         # tracer(1, 100)    # 設置繪圖屏幕刷新頻率,參數1設置在正常刷新頻次的第參數1次刷新,參數2設置每次刷新的時延         tracer(0, 0)         pu()  # 抬筆        backward(100)         # 保證筆觸箭頭方向始終不向下,此處使其左轉90度,而不是右轉         left(90)  # 左轉90度         backward(300)  # 后退300     def tree(self, n, l):        pd()  # 下筆        # 陰影效果        t = cos(radians(heading() + 45)) / 8 + 0.25         pencolor(t, t, t)        pensize(n / 1.2)         forward(l)  # 畫樹枝        if n > 0:             b = random() * 15 + 10  # 右分支偏轉角度             c = random() * 15 + 10  # 左分支偏轉角度             d = l * (random() * 0.25 + 0.7)  # 下一個分支的長度             # 右轉一定角度,畫右分支            right(b)            self.tree(n - 1, d)             # 左轉一定角度,畫左分支            left(b + c)            self.tree(n - 1, d)             # 轉回來            right(c)        else:             # 畫葉子            right(90)             n = cos(radians(heading() - 45)) / 4 + 0.5             pencolor(n, n * 0.8, n * 0.8)             fillcolor(n, n * 0.8, n * 0.8)             begin_fill()            circle(3)             left(90)             end_fill()            # 添加0.3倍的飄落葉子             if random() > 0.7:                 pu()                # 飄落                t = heading()                an = -40 + random() * 40                 setheading(an)                dis = int(800 * random() * 0.5 + 400 * random() * 0.3 + 200 * random() * 0.2)                 forward(dis)                setheading(t)                # 畫葉子                pd()                right(90)                 n = cos(radians(heading() - 45)) / 4 + 0.5                 pencolor(n * 0.5 + 0.5, 0.4 + n * 0.4, 0.4 + n * 0.4)                 fillcolor(n, n * 0.8, n * 0.8)                 begin_fill()                circle(2)                 left(90)                 end_fill()                pu()                # 返回                t = heading()                setheading(an)                backward(dis)                setheading(t)            # pass        pu()        backward(l)  # 退回def main():    tree = Tree()    tree.tree(12, 100)  # 遞歸7層     done()if __name__ == '__main__':     main()

落紅不是無情物,化作春泥更護花

怎么用Python實現神奇的樹效果

# coding=gbk from turtle import * from random import * # 畫樹方法def drawTree(n, l):    pendown()    pencolor('#5d3c3c')     pensize( n / 1.5)     forward(l)    if n > 0:         dr = randint(30, 40)         dl =  randint(30, 40)         move = l * (random() * 0.4 + 0.5)         right(dr)        drawTree(n - 1, move)         left(dr + dl)        drawTree(n - 1, move)         right(dl)    else:         drawPetal(3)     penup()    backward(l)# 花瓣位置生成def petalPlace(m, x, y):    penup()    goto(x, y)     pendown()    setheading(0)     tracer(False)    for i in range(m):         if i == 0:             drawPetal(5)         else:             penup()            goto(x, y)             a = randint(20, 400)             b = randint(-50, 50)             forward(a)            left(90)             forward(b)            right(90)             pendown()            drawPetal(5) # 花朵繪畫方法def drawPetal(n):    colormode(255)     r = randint(200, 255)     g = randint(8, 158)     b = randint(8, 158)     begin_fill()    fillcolor(r, g, b)    pencolor(r, g, b)    circle(n)    end_fill()# 啟動方法def run():    setup(1.0, 1.0)     penup()    goto(-50, -150)     left(90)     pendown()    hideturtle()    tracer(False)    drawTree(13, 150)     petalPlace(160, -100, -150) run()done()

川原秋色靜,蘆葦晚風鳴

怎么用Python實現神奇的樹效果

import turtle import randomstack = []def createWord(max_it, word, proc_rules, x, y, turn):     turtle.up()    turtle.home()    turtle.goto(x, y)    turtle.right(turn)    turtle.down()    t = 0     while t < max_it:         word = rewrite(word, proc_rules)        drawit(word, 5, 20)         tt = t+1 def rewrite(word, proc_rules):     wordList = list(word)    for i in range(len(wordList)):         curChar = wordList[i]        if curChar in proc_rules:             wordList[i] = proc_rules[curChar]    return "".join(wordList) def drawit(newWord, d, angle):     newWordLs = list(newWord)    for i in range(len(newWordLs)):         cur_Char = newWordLs[i]        if cur_Char == 'F':             turtle.forward(d)        elif cur_Char == '+':             turtle.right(angle)        elif cur_Char == '-':             turtle.left(angle)        elif cur_Char == '[':             state_push()        elif cur_Char == ']':             state_pop()def state_push():     global stack     stack.append((turtle.position(), turtle.heading()))def state_pop():     global stack     position, heading = stack.pop()    turtle.up()    turtle.goto(position)    turtle.setheading(heading)    turtle.down()def randomStart():     x = random.randint(-300, 300)     y = random.randint(-320, -280)     heading = random.randint(-100, -80)     return ((x, y), heading) def main():     rule_sets = []    rule_sets.append(((3, 5), 'F', {'F':'F[+F][-F]F'}))     rule_sets.append(((4, 6), 'B', {'B':'F[-B][+ B]', 'F':'FF'}))     rule_sets.append(((2, 4), 'F', {'F':'FF+[+F-F-F]-[-F+F+F]'}))     tree_count = 50     turtle.tracer(10, 0)     for x in range(tree_count):         rand_i = random.randint(0, len(rule_sets) - 1)         selected_ruleset = rule_sets[rand_i]        i_range, word, rule = selected_ruleset        low, high = i_range        i = random.randint(low, high)        start_position, start_heading = randomStart()        start_x, start_y = start_position        createWord(i, word, rule, start_x, start_y, start_heading)if __name__ == '__main__': main()

到此,相信大家對“怎么用Python實現神奇的樹效果”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

怀远县| 江川县| 台湾省| 青田县| 宜州市| 延吉市| 井陉县| 奉化市| 阳西县| 左权县| 龙川县| 深泽县| 霍邱县| 阿坝| 商河县| 山丹县| 余江县| 昂仁县| 屯门区| 大安市| 社旗县| 长武县| 肃北| 张家口市| 兰溪市| 靖安县| 陵川县| 和平区| 莲花县| 汪清县| 蒙城县| 赤峰市| 灵寿县| 汕头市| 赣榆县| 搜索| 济宁市| 泌阳县| 永嘉县| 墨脱县| 含山县|