海龟画图的图案(「Python海龟画图」利用海龟画笔绘制谢尔宾斯基三角形)

Posted

篇首语:学问是心灵的慧眼。本文由小常识网(cha138.com)小编为大家整理,主要介绍了海龟画图的图案(「Python海龟画图」利用海龟画笔绘制谢尔宾斯基三角形)相关的知识,希望对你有一定的参考价值。

海龟画图的图案(「Python海龟画图」利用海龟画笔绘制谢尔宾斯基三角形)

根据坐标点绘制三角形

功能要求

在平面上给定三个点的坐标,根据三个点绘制出一个三角形。

实例代码

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()

运行结果

绘制谢尔宾斯基三角形

功能要求

谢尔宾斯基三角形(英语:Sierpinski triangle)是一种分形,由波兰数学家谢尔宾斯基在1915年提出。它是自相似集的例子。它的豪斯多夫维是log(3)/log(2) ≈ 1.585。谢尔宾斯基三角形的构造方法。

1.取一个实心的三角形。(多数使用等边三角形)

2.沿三边中点的连线,将它分成四个小三角形。

3.去掉中间的那一个小三角形。

4.对其余三个小三角形重复1。

取一个正方形或其他形状开始,用类似的方法构作,形状也会和谢尔宾斯基三角形相近。

修改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()

运行结果

相关参考

海龟简笔画怎么画

1、首先画海龟的脑袋线条;2、然后画海龟的外壳;3、再画海龟的四条腿;4、最后把画好的海龟涂上颜色就可以了。

世界上最大的海龟是什么海龟,世界上的海龟有多大

世界上最大的海龟是什么龟呢?这种海龟重量超过900公斤,看上去是海里罕见的庞然大物。世界上最大的海龟之棱皮龟那么,究竟世界上最大的海龟是什么龟呢?威尔士有一只棱皮龟,体长2.5米,重达916公斤,是迄今为止世界上...

世界上最大的海龟是什么海龟,世界上的海龟有多大

世界上最大的海龟是什么龟呢?这种海龟重量超过900公斤,看上去是海里罕见的庞然大物。世界上最大的海龟之棱皮龟那么,究竟世界上最大的海龟是什么龟呢?威尔士有一只棱皮龟,体长2.5米,重达916公斤,是迄今为止世界上...

海洋污染对海龟的危害(触目惊心绿海龟以污水为食 全球海龟面临灭绝危险)

...onPark)在菲律宾潜水时,拍到一个令人震惊的画面:一只海龟的头在污水管里,吃着人类和动物的排泄物,这些排泄物正涌向清澈的海水中。据报道,朴参俊和朋友们在菲律宾长滩岛的布拉伯海滩潜水时注意到了这只绿海龟。当...

海洋污染对海龟的危害(触目惊心绿海龟以污水为食 全球海龟面临灭绝危险)

...onPark)在菲律宾潜水时,拍到一个令人震惊的画面:一只海龟的头在污水管里,吃着人类和动物的排泄物,这些排泄物正涌向清澈的海水中。据报道,朴参俊和朋友们在菲律宾长滩岛的布拉伯海滩潜水时注意到了这只绿海龟。当...

世界上最大的海龟是什么海龟

世界上最大的海龟是什么龟呢?这种海龟重量超过900公斤,看上去是海里罕见的庞然大物。世界上最大的海龟之棱皮龟那么,究竟世界上最大的海龟是什么龟呢?威尔士有一只棱皮龟,体长2.5米,重达916公斤,是迄今为止世界上...

世界上最大的海龟是什么海龟

世界上最大的海龟是什么龟呢?这种海龟重量超过900公斤,看上去是海里罕见的庞然大物。世界上最大的海龟之棱皮龟那么,究竟世界上最大的海龟是什么龟呢?威尔士有一只棱皮龟,体长2.5米,重达916公斤,是迄今为止世界上...

海龟介绍

1、海龟的寿命从120岁到200岁不等,品种的不同寿命也有所不同,一般常见海龟寿命在150左右。海龟是龟鳖目海龟科动物的统称。2、海龟(学名:Cheloniamydas)是海龟科、海龟属动物。头背具对称大鳞,前额鳞一对。上颌平出,下颌...

世界上最大的海龟有多大详细,世界上什么海龟最大

1、世界上最大的海龟叫做棱皮龟。它体型十分巨大,体重能达到两百斤以上。体型最大的有可能达到两米至三米的长度,十分可怕,不过也算是比较罕见的海龟品种,多生活在深海中,一般人见不到它们。2、棱皮龟的体型巨大...

世界上最大的海龟有多大详细

1、世界上最大的海龟叫做棱皮龟。它体型十分巨大,体重能达到两百斤以上。体型最大的有可能达到两米至三米的长度,十分可怕,不过也算是比较罕见的海龟品种,多生活在深海中,一般人见不到它们。2、棱皮龟的体型巨大...