tft每日頭條

 > 生活

 > python海龜繪圖簡單實例

python海龜繪圖簡單實例

生活 更新时间:2024-06-28 19:10:55
根據坐标點繪制三角形

功能要求

在平面上給定三個點的坐标,根據三個點繪制出一個三角形。

實例代碼

import turtle

'''

指定平面上的三個點繪制并填充三角形

points列表參數保存三角形三個點的坐标

color參數三角形的填充顔色

'''

def drawTriangle(points, color):

turtle.color(color)

# 設置畫筆的起點為points[0]

turtle.penup()

turtle.goto(points[0])

turtle.pendown()

turtle.begin_fill()

turtle.goto(points[1]) # 走到points[1]

turtle.goto(points[2]) # 走到points[2]

turtle.goto(points[0]) # 回到points[0],完成三角形的繪制

turtle.end_fill()

p = [[-200, -100], [0, 200], [200, -100]]

# 三角形三個頂點分别為(-200, -100)、(0, 200)、(200, -100)

drawTriangle(p, "orange") # 三角形填充orange顔色

turtle.done()

運行結果

python海龜繪圖簡單實例(利用海龜畫筆繪制謝爾賓斯基三角形)1

繪制謝爾賓斯基三角形

功能要求

謝爾賓斯基三角形(英語:Sierpinski triangle)是一種分形,由波蘭數學家謝爾賓斯基在1915年提出。它是自相似集的例子。它的豪斯多夫維是log(3)/log(2) ≈ 1.585。謝爾賓斯基三角形的構造方法。

1.取一個實心的三角形。(多數使用等邊三角形)

2.沿三邊中點的連線,将它分成四個小三角形。

3.去掉中間的那一個小三角形。

4.對其餘三個小三角形重複1。

取一個正方形或其他形狀開始,用類似的方法構作,形狀也會和謝爾賓斯基三角形相近。

python海龜繪圖簡單實例(利用海龜畫筆繪制謝爾賓斯基三角形)2

修改drawTriangle()方法,根據指定的層次,遞歸調用drawTriangle()方法,修改三角形的三個定點繪制出最終的謝爾賓斯基三角形。

實例代碼

import turtle

turtle.speed(0) # 設置畫筆的速度

turtle.hideturtle() # 隐藏畫筆

'''

獲得兩個點的中間點

point1和point2參數表示兩個點的坐标

'''

def getMidPoint(point1, point2):

return (point1[0] point2[0]) / 2, (point1[1] point2[1]) / 2

'''

根據最初的三角形的單個點繪制謝爾賓斯基三角形

points參數:保存三角形的三個定點坐标的集合

degree參數:謝爾賓斯基三角形的層次

'''

def drawTriangle(points, degree):

colors = ['red', 'green', 'blue', 'pink', 'violet', 'orange', 'yellow']

# 定義謝爾賓斯基三角形各層的顔色

turtle.color(colors[degree % len(colors)]) # 根據層次獲取這一層填充的顔色

# 設置points[0]為開始繪制三角形的起點

turtle.penup()

turtle.goto(points[0])

turtle.pendown()

turtle.begin_fill()

turtle.goto(points[1]) # 走到points[1]

turtle.goto(points[2]) # 走到points[2]

turtle.goto(points[0]) # 回到points[0],完成三角形的繪制

turtle.end_fill()

if degree > 0: # 判斷degree是否大于0,是大于則遞歸調用drawTriangle,重新設置三角形的定點,degree-1

drawTriangle([points[0], getMidPoint(points[0], points[1]), getMidPoint(points[0], points[2])], degree - 1)

drawTriangle([points[1], getMidPoint(points[0], points[1]), getMidPoint(points[1], points[2])], degree - 1)

drawTriangle([points[2], getMidPoint(points[0], points[2]), getMidPoint(points[1], points[2])], degree - 1)

p = [[-200, -100], [0, 200], [200, -100]]

# 繪制謝爾賓斯基三角形的起始三個坐标點

drawTriangle(p, 5) # 根據起始的三個坐标點,繪制深度為5的謝爾賓斯基三角形

turtle.done()

運行結果

python海龜繪圖簡單實例(利用海龜畫筆繪制謝爾賓斯基三角形)3

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved