python 递归-递归可视化
1、实现
a. 螺旋线
指定原始单边长度,每画完一条线时,线长-5,右转90度; 以此循环直至线长<5 & >0
b. 分形树
指定主干的原始长度,每次分支长度-15,直至 0< 长度 < 15
画枝干时先右转20°画分支, 然后左转40°画分支,最后再右转20°,回到原始位置
递归调用绘制分形树
c. 谢尔平斯基三角
使用三路递归算法绘制谢尔平斯基三角
线绘制一个大三角形,连接三角形的中点,将原三角形分割成4个小三角形,忽略中间的三角形,将剩下的三角形填充同一颜色
设置绘制层级,每次分割一阶, 层级减1, 直至0
递归调用绘制图形
2、递归可视化-Coding
# -*- coding: utf-8 -*-
from turtle import *
class HexlixLine:
myTurtle = Turtle()
myWin = myTurtle.getscreen()
def draw(self, lineLen):
"""
递归绘制螺旋线
"""
# 调整绘图的起点
self.myTurtle.up()
self.myTurtle.backward(int(lineLen/2))
self.myTurtle.left(90)
self.myTurtle.forward(int(lineLen/2))
self.myTurtle.right(90)
self.myTurtle.down()
# 绘制螺旋线
self.drwaSpiral(self.myTurtle, lineLen)
# 点击屏幕退出
self.myWin.exitonclick()
def drwaSpiral(self, myTurtle