python画四阶二叉树(适合python学了2年00个月~2年11个月的人(中级篇))

一.概念解释:

二叉分形树,是指主干上长出两个分支,分支上又长出两个子分支.每长出两个分支就增加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()

三.程序运行效果:

python画四阶二叉树(适合python学了2年00个月~2年11个月的人(中级篇))_第1张图片

你可能感兴趣的:(python)