python科赫曲线画树叶_Python——科赫曲线绘制

本文介绍了如何使用Python的turtle模块绘制科赫曲线,包括3阶科赫曲线和雪花效果。通过递归实现,逐步缩小三角形边长并连接,展示了分形几何的奇妙之处。提供两个版本的源代码,帮助读者理解并实践科赫曲线的绘制过程。
摘要由CSDN通过智能技术生成

基本概念

科赫曲线:科赫曲线是一种像雪花的几何曲线,所以又称为雪花曲线,它是de Rham曲线的特例。科赫曲线是出现在海里格·冯·科赫的论文《关于一条连续而无切线,可由初等几何构作的曲线》(1904年,法语原题:Sur une courbe continue sans tangente, obtenue par une construction géométrique élémentaire)中,是分形曲线中的一种。

设想一个边长为1的等边三角形,取每边中间的三分之一,接上去一个形状完全相似的但边长为其三分之一的三角形,结果是一个六角形。现在取六角形的每个边做同样的变换,即在中间三分之一接上更小的三角形,以此重复,直至无穷。外界的变得原来越细微曲折,形状接近理想化的雪花。即科赫曲线。

5a97b97a023b8e8724d6921163d25094.png

源代码

版本一

3阶科赫曲线

# DrawKoch.py

import turtle

def koch(size, n):

if n == 0:

turtle.fd(size)

else:

for angle in [0, 60, -120, 60]:

turtle.left(angle)

koch(size/3, n-1)

def main():

turtle.setup(800,400)

turtle.speed(0) #控制绘制速度

turtle.penup()

turtle.goto(-300, -50)

turtle.pendown()

turtle.pensize(2)

koch(600,6) # 0阶科赫曲线长度,阶数

turtle.hideturtle()

main()

e4534959cdb007cde75ee5d4d296d70c.png

版本二

雪花效果

#DrawKoch.py

import turtle

def koch(size, n):

if n == 0:

turtle.fd(size)

else:

for angle in [0, 60, -120, 60]:

turtle.left(angle)

koch(size/3, n-1)

def main():

turtle.setup(600,600)

turtle.speed(0)

turtle.penup()

turtle.goto(-200, 100)

turtle.pendown()

turtle.pensize(2)

level = 5

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.right(120)

koch(400,level)

turtle.hideturtle()

main()

6dfd31ee70bd4c7738c785891ca3cbe0.png

参考文章

Python123 Python语言程序设计基础(第2版) 5-6 科赫曲线的绘制

https://blog.csdn.net/q1694222672/article/details/81985942

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值
>