亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Python使用turtle庫繪制科赫雪花詳細代碼

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

實驗題目:

turtle庫的使用

實驗目的:

掌握Python語言程序的基本結構

掌握turtle庫的使用方法

編寫python程序,實現以下功能:

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

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

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

運行結果

3.2分析花千樹的結構,設計遞歸算法,畫一棵花千樹,如下圖所示,顏色自選

# 導入turtle模塊
import turtle
# 導入random模塊
import random

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

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

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

運行結果

總結 

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

相關文章

  • pytest注解使用小結

    pytest注解使用小結

    本文介紹了pytest測試框架中常用的一些裝飾器,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-02-02
  • OpenCV-Python實現圖像平滑處理操作

    OpenCV-Python實現圖像平滑處理操作

    圖像平滑處理的噪聲取值主要有6種方法,本文主要介紹了這6種方法的具體使用并配置實例方法,具有一定的參考價值,感興趣的可以了解一下
    2021-06-06
  • 你可能不知道的Python 技巧小結

    你可能不知道的Python 技巧小結

    有許許多多文章寫了 Python 中的許多很酷的特性,例如變量解包、偏函數、枚舉可迭代對象,但是關于 Python 還有很多要討論的話題,因此在本文中,我將嘗試展示一些我知道的和在使用的,但很少在其它文章提到過的特性。那就開始吧
    2020-01-01
  • Django項目創(chuàng)建的圖文教程

    Django項目創(chuàng)建的圖文教程

    本文主要介紹了Django項目創(chuàng)建的圖文教程,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • pandas讀取文件夾下所有excel文件的實現

    pandas讀取文件夾下所有excel文件的實現

    最近需要做一個需求,要求匯總一個文件夾所有的excel文件,所以本文就來介紹一下pandas讀取文件夾下所有excel文件的實現,具有一定的參考價值,感興趣的可以了解一下
    2023-09-09
  • python實現井字棋游戲

    python實現井字棋游戲

    這篇文章主要為大家詳細介紹了python實現井字棋游戲的相關資料,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2016-02-02
  • Django添加favicon.ico圖標的示例代碼

    Django添加favicon.ico圖標的示例代碼

    這篇文章主要介紹了Django添加favicon.ico圖標的示例代碼,小編覺得挺不錯的,現在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-08-08
  • Pytorch+PyG實現EdgeCNN過程示例詳解

    Pytorch+PyG實現EdgeCNN過程示例詳解

    這篇文章主要為大家介紹了Pytorch+PyG實現EdgeCNN過程示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-04-04
  • 老生常談Python基礎之字符編碼

    老生常談Python基礎之字符編碼

    下面小編就為大家?guī)硪黄仙U凱ython基礎之字符編碼。小編覺得挺不錯的,現在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-06-06
  • python圖形繪制奧運五環(huán)實例講解

    python圖形繪制奧運五環(huán)實例講解

    在本文里我們給大家整理了一篇關于python圖形繪制奧運五環(huán)的實例內容,大家可以跟著學習下。
    2019-09-09

最新評論