最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用turtle庫(kù)繪制科赫雪花詳細(xì)代碼

 更新時(shí)間:2024年05月23日 10:43:07   作者:南宮幻雅  
科赫曲線是一種分形,其形態(tài)非常像雪花,因此又被稱作科赫雪花、雪花曲線,這篇文章主要給大家介紹了關(guān)于Python使用turtle庫(kù)繪制科赫雪花的相關(guān)資料,需要的朋友可以參考下

實(shí)驗(yàn)題目:

turtle庫(kù)的使用

實(shí)驗(yàn)?zāi)康模?/h2>

掌握Python語(yǔ)言程序的基本結(jié)構(gòu)

掌握turtle庫(kù)的使用方法

編寫(xiě)python程序,實(shí)現(xiàn)以下功能:

3.1把繪制科赫雪花的代碼封裝為函數(shù),繪制3朵以上的雪花,雪花出現(xiàn)的位置并不固定,并填充不同的顏色

# 導(dǎo)入turtle模塊
import turtle
# 定義繪制科赫雪花的函數(shù)
def koch_snowflake(size, level):
    # 如果繪制的級(jí)數(shù)為0,直接向前走
    if level == 0:
        turtle.forward(size)
    else:
        # 否則,按照科赫曲線的規(guī)則,分四段繪制
        koch_snowflake(size / 3, level - 1) # 第一段
        turtle.left(60) # 左轉(zhuǎn)60度
        koch_snowflake(size / 3, level - 1) # 第二段
        turtle.right(120) # 右轉(zhuǎn)120度
        koch_snowflake(size / 3, level - 1) # 第三段
        turtle.left(60) # 左轉(zhuǎn)60度
        koch_snowflake(size / 3, level - 1) # 第四段

# 設(shè)置畫(huà)筆速度和顏色
turtle.speed(10)
turtle.pencolor("black")
# 隱藏海龜
turtle.hideturtle()
# 提起畫(huà)筆,移動(dòng)到左下角
turtle.penup()
turtle.goto(-200, -100)
# 放下畫(huà)筆,開(kāi)始繪制
turtle.pendown()
# 繪制第一朵雪花,填充紫色
turtle.fillcolor("purple")
turtle.begin_fill()
for i in range(3): # 三次循環(huán),繪制三條邊
    koch_snowflake(200, 3) # 調(diào)用函數(shù),繪制邊長(zhǎng)為200,級(jí)數(shù)為3的科赫曲線
    turtle.right(120) # 右轉(zhuǎn)120度,準(zhǔn)備繪制下一條邊
turtle.end_fill()
# 提起畫(huà)筆,移動(dòng)到右上角
turtle.penup()
turtle.goto(100, 150)
# 放下畫(huà)筆,開(kāi)始繪制
turtle.pendown()
# 繪制第二朵雪花,填充橙色
turtle.fillcolor("orange")
turtle.begin_fill()
for i in range(3):
    koch_snowflake(100, 3) # 調(diào)用函數(shù),繪制邊長(zhǎng)為100,級(jí)數(shù)為3的科赫曲線
    turtle.right(120)
turtle.end_fill()
# 提起畫(huà)筆,移動(dòng)到右下角
turtle.penup()
turtle.goto(200, -50)
# 放下畫(huà)筆,開(kāi)始繪制
turtle.pendown()
# 繪制第三朵雪花,填充米色
turtle.fillcolor("beige")
turtle.begin_fill()
for i in range(3):
    koch_snowflake(150, 3) # 調(diào)用函數(shù),繪制邊長(zhǎng)為150,級(jí)數(shù)為3的科赫曲線
    turtle.right(120)
turtle.end_fill()
# 結(jié)束繪制,保持窗口
turtle.done()

運(yùn)行結(jié)果

3.2分析花千樹(shù)的結(jié)構(gòu),設(shè)計(jì)遞歸算法,畫(huà)一棵花千樹(shù),如下圖所示,顏色自選

# 導(dǎo)入turtle模塊
import turtle
# 導(dǎo)入random模塊
import random

# 定義一個(gè)繪制樹(shù)枝的函數(shù)
def draw_branch(t, length, angle, color):
    # 如果長(zhǎng)度大于5,繼續(xù)繪制
    if length > 5:
        # 設(shè)置畫(huà)筆顏色
        t.color(color)
        # 向前移動(dòng)指定長(zhǎng)度
        t.forward(length)
        # 向右轉(zhuǎn)指定角度
        t.right(angle)
        # 遞歸繪制右邊的樹(shù)枝
        draw_branch(t, length - random.randint(10, 20), angle - random.randint(10, 20), color)
        # 向左轉(zhuǎn)兩倍的角度
        t.left(2 * angle)
        # 遞歸繪制左邊的樹(shù)枝
        draw_branch(t, length - random.randint(10, 20), angle - random.randint(10, 20), color)
        # 向右轉(zhuǎn)回原來(lái)的角度
        t.right(angle)
        # 后退指定長(zhǎng)度
        t.backward(length)

# 定義一個(gè)繪制花朵的函數(shù)
def draw_flower(t, x, y, size, color):
    # 抬起畫(huà)筆
    t.penup()
    # 移動(dòng)到指定位置
    t.goto(x, y)
    # 放下畫(huà)筆
    t.pendown()
    # 設(shè)置畫(huà)筆顏色
    t.color(color)
    # 開(kāi)始填充
    t.begin_fill()
    # 循環(huán)八次
    for i in range(8):
        # 向前移動(dòng)指定大小
        t.forward(size)
        # 向左轉(zhuǎn)45度
        t.left(45)
    # 結(jié)束填充
    t.end_fill()

# 創(chuàng)建一個(gè)turtle對(duì)象
t = turtle.Turtle()
# 設(shè)置畫(huà)筆粗細(xì)
t.pensize(3)
# 設(shè)置畫(huà)筆速度
t.speed(10)
# 抬起畫(huà)筆
t.penup()
# 后退200像素
t.backward(200)
# 放下畫(huà)筆
t.pendown()
# 設(shè)置畫(huà)筆顏色為棕色
t.color("brown")
# 向左轉(zhuǎn)90度
t.left(90)
# 調(diào)用繪制樹(shù)枝的函數(shù),參數(shù)為turtle對(duì)象,長(zhǎng)度為100,角度為30,顏色為棕色
draw_branch(t, 100, 30, "brown")
# 抬起畫(huà)筆
t.penup()
# 隱藏畫(huà)筆
t.hideturtle()
# 獲取屏幕對(duì)象
s = turtle.Screen()
# 獲取屏幕上所有的畫(huà)筆對(duì)象
pens = s.turtles()
# 遍歷所有的畫(huà)筆對(duì)象
for p in pens:
    # 獲取畫(huà)筆的位置
    x, y = p.pos()
    # 獲取畫(huà)筆的顏色
    color = p.color()[0]
    # 如果顏色是棕色,說(shuō)明是樹(shù)枝
    if color == "brown":
        # 以一定的概率在樹(shù)枝上繪制花朵
        if random.random() < 0.3:
            # 隨機(jī)選擇一個(gè)花朵的顏色
            flower_color = random.choice(["pink", "red", "purple", "yellow"])
            # 隨機(jī)選擇一個(gè)花朵的大小
            flower_size = random.randint(5, 10)
            # 調(diào)用繪制花朵的函數(shù),參數(shù)為turtle對(duì)象,位置,大小,顏色
            draw_flower(t, x, y, flower_size, flower_color)
# 保持窗口
turtle.done()

運(yùn)行結(jié)果

總結(jié) 

到此這篇關(guān)于Python使用turtle庫(kù)繪制科赫雪花的文章就介紹到這了,更多相關(guān)Python turtle庫(kù)繪制科赫雪花內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python基于whois模塊簡(jiǎn)單識(shí)別網(wǎng)站域名及所有者的方法

    Python基于whois模塊簡(jiǎn)單識(shí)別網(wǎng)站域名及所有者的方法

    這篇文章主要介紹了Python基于whois模塊簡(jiǎn)單識(shí)別網(wǎng)站域名及所有者的方法,簡(jiǎn)單分析了Python whois模塊的安裝及使用相關(guān)操作技巧,需要的朋友可以參考下
    2018-04-04
  • Python的語(yǔ)言類型(詳解)

    Python的語(yǔ)言類型(詳解)

    下面小編就為大家?guī)?lái)一篇Python的語(yǔ)言類型(詳解)。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2017-06-06
  • 解決python-redis-lock分布式鎖的問(wèn)題

    解決python-redis-lock分布式鎖的問(wèn)題

    這篇文章主要介紹了python-redis-lock分布式鎖的問(wèn)題,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-10-10
  • Python類屬性與實(shí)例屬性用法分析

    Python類屬性與實(shí)例屬性用法分析

    這篇文章主要介紹了Python類屬性與實(shí)例屬性用法,實(shí)例分析了Python類屬性與實(shí)例屬性的功能、定義與使用技巧,需要的朋友可以參考下
    2015-05-05
  • python celery分布式任務(wù)隊(duì)列的使用詳解

    python celery分布式任務(wù)隊(duì)列的使用詳解

    這篇文章主要介紹了python celery分布式任務(wù)隊(duì)列的使用詳解,Celery 是一個(gè) 基于python開(kāi)發(fā)的分布式異步消息任務(wù)隊(duì)列,通過(guò)它可以輕松的實(shí)現(xiàn)任務(wù)的異步處理, 如果你的業(yè)務(wù)場(chǎng)景中需要用到異步任務(wù),就可以考慮使用celery,需要的朋友可以參考下
    2019-07-07
  • 利用Python搶回在螞蟻森林逝去的能量(實(shí)現(xiàn)代碼)

    利用Python搶回在螞蟻森林逝去的能量(實(shí)現(xiàn)代碼)

    螞蟻森林是一項(xiàng)旨在帶動(dòng)公眾低碳減排的公益項(xiàng)目,每個(gè)人的低碳行為在螞蟻森林里可計(jì)為"綠色能量",很多小伙伴都玩過(guò),今天小編給大家分享一篇教程關(guān)于Python搶回在螞蟻森林逝去的能量,感興趣的朋友跟隨小編一起看看吧
    2022-03-03
  • Python osgeo庫(kù)安裝失敗問(wèn)題的解決方案

    Python osgeo庫(kù)安裝失敗問(wèn)題的解決方案

    Osgeo是一個(gè)支持開(kāi)源地理空間數(shù)據(jù)處理的基金會(huì),我們可以在python中使用“osgeo”庫(kù)來(lái)訪問(wèn)其提供的高效地理空間數(shù)據(jù),在PyCharm安裝osgeo庫(kù)的時(shí)候,顯示報(bào)錯(cuò),所以本文記錄一下解決這個(gè)麻煩的步驟,需要的朋友可以參考下
    2025-04-04
  • Python中time模塊與datetime模塊在使用中的不同之處

    Python中time模塊與datetime模塊在使用中的不同之處

    這篇文章主要介紹了Python中time模塊與datetime模塊在使用中的不同之處,是Python入門(mén)學(xué)習(xí)中的基礎(chǔ)知識(shí),需要的朋友可以參考下
    2015-11-11
  • 使用Python將JSON,XML和YAML數(shù)據(jù)寫(xiě)入Excel文件

    使用Python將JSON,XML和YAML數(shù)據(jù)寫(xiě)入Excel文件

    JSON、XML和YAML作為主流結(jié)構(gòu)化數(shù)據(jù)格式,因其層次化表達(dá)能力和跨平臺(tái)兼容性,已成為系統(tǒng)間數(shù)據(jù)交換的通用載體,本文將介紹如何使用Python導(dǎo)入JSON、XML和YAML格式數(shù)據(jù)到Excel文件中,需要的可以參考下
    2025-04-04
  • Python實(shí)現(xiàn)加密接口測(cè)試方法步驟詳解

    Python實(shí)現(xiàn)加密接口測(cè)試方法步驟詳解

    這篇文章主要介紹了Python實(shí)現(xiàn)加密接口測(cè)試方法步驟詳解,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06

最新評(píng)論

阿克苏市| 通河县| 湘乡市| 梁平县| 小金县| 罗田县| 普兰店市| 胶州市| 老河口市| 东乡县| 贵德县| 教育| 湖南省| 牙克石市| 马龙县| 黑水县| 玉龙| 凌源市| 抚顺县| 福建省| 宁海县| 治县。| 尚志市| 临安市| 洛隆县| 宝清县| 保康县| 巴彦县| 海晏县| 汝城县| 乌拉特前旗| 怀仁县| 班戈县| 婺源县| 扎兰屯市| 张家川| 鹤峰县| 靖宇县| 高州市| 北辰区| 广宁县|