一.概念解释:
二叉分形树,是指主干上长出两个分支,分支上又长出两个子分支.每长出两个分支就增加1阶
二.开始编写:
2-1.导入turtle库,设置夹角,允许使用RGB码
from turtle import*
angle=45
colormode(255)
2-2.定义抬笔移动函数:go(),包含三个参数(x,y,h),分别是x坐标,y坐标,方向,并用该函数移到x0,y-215,0方向(logo模式)
def go(x,y,h):
up()
goto(x,y)
seth(h)
down()
mode("logo")
go(0,-215,0)
2-3.定义主程序模块:画一条256像素的线,记坐标和方向,左转,调用一阶绘画,回到原坐标和方向(抬笔),再调用一阶绘画
def main():
fd(256)
x1=xcor()
y1=ycor()
h1=heading()
lt(angle)
draw1()
go(x1,y1,h1)
rt(angle)
draw1()
2-4.定义画一阶模块:画一条128像素的线,记坐标和方向,左转,调用二阶绘画,回到原坐标和方向(抬笔),再调用二阶绘画
def draw1():
fd(128)
x2=xcor()
y2=ycor()
h2=heading()
lt(angle)
draw2()
go(x2,y2,h2)
rt(angle)
draw2()
2-5.定义画二阶模块:画一条64像素的线,记坐标和方向,左转,调用三阶绘画,回到原坐标和方向(抬笔),再调用三阶绘画
def draw2():
fd(64)
x3=xcor()
y3=ycor()
h3=heading()
lt(angle)
draw3()
go(x3,y3,h3)
rt(angle)
draw3()
2-6.定义画三阶模块:画一条32像素的线,记坐标和方向,左转,调用四阶绘画,回到原坐标和方向(抬笔),再调用四阶绘画
def draw3():
fd(32)
x4=xcor()
y4=ycor()
h4=heading()
lt(angle)
draw4()
go(x4,y4,h4)
rt(angle)
draw4()
2-7.定义画三阶模块:画一条16像素的线,并画一个直径为8像素的橙色圆点
def draw4():
fd(16)
dot(8,(255,85,0))
2-8.调用主程序:
main()
2-9.完整代码:
from turtle import*
angle=45
colormode(255)
def go(x,y,h):
up()
goto(x,y)
seth(h)
down()
mode("logo")
go(0,-215,0)
def main():
fd(256)
x1=xcor()
y1=ycor()
h1=heading()
lt(angle)
draw1()
go(x1,y1,h1)
rt(angle)
draw1()
def draw1():
fd(128)
x2=xcor()
y2=ycor()
h2=heading()
lt(angle)
draw2()
go(x2,y2,h2)
rt(angle)
draw2()
def draw2():
fd(64)
x3=xcor()
y3=ycor()
h3=heading()
lt(angle)
draw3()
go(x3,y3,h3)
rt(angle)
draw3()
def draw3():
fd(32)
x4=xcor()
y4=ycor()
h4=heading()
lt(angle)
draw4()
go(x4,y4,h4)
rt(angle)
draw4()
def draw4():
fd(16)
dot(8,(255,85,0))
main()
三.程序运行效果: