写在前面:python是高级语言,相对于java,c等语言便捷性和可读性大大提高,笔者从基础开始接触python语法。
题意
- 分形几何的基本思想:
局部是整体成比例缩小后的形态,客观事物具有相似的层次结构,
局部与整体在统计意义上具有相似性。
总而言之,就是将局部放大后的图形与先前图形相似。 - 递归函数的必备因素:
重复单元、停止条件(各函数逐层结束运算,返回计算结果)
补充
turtle库
-
基础操作:
turtle.forward(distance)画笔向前移动distance距离
turtle.backward(distance)画笔向后移动distance距离
turtle.right(degree)画笔向右旋转degree度
turtle.exitonclick()点击关闭图形窗口 -
画笔控制函数补充:
turtle.penup() 抬起画笔,之后移动画笔不绘制形状
turtle.pendown() 落下画笔,之后移动画笔绘制形状
turtle.pensize() 设置画笔宽度
turtle.pencolor() 设置画笔颜色,常用的颜色:
whilte, black, grey, darkgreen, gold, violet, purple
python基本语法等
- 注释:
整体注释 Ctrl+/
单行注释:#
多行注释:’’’ ‘’’ - 字符串索引访问:
字符串正向索引:0开始
字符串反向索引:-1开始
区间索引:
[A:B] 从A开始到B,不包含B
前3位:s[:3]
后3位:s[-3:] - 快捷键:
整体缩进:tab + /
缩进回退:tab+shift
(注:python中没有{},缩进很重要!!!) - 其它:
字符串转换为数字:eval()
占位符:pass
幂次方计算:** (例:2**10 为 1024) - 条件语句:
if <条件1>:
<语句1>
elif <条件2>:
<语句2>
…
else:
<语句N>
while (<条件>):
<语句块1>
<语句块2> - 函数定义:
def <函数名>(<参数列表>):
<函数体>
return <返回值列表> - lambda函数:
<函数名> = lambda<参数列表>:<表达式>
(注:用于简单的、能在一行内表示的函数,表达式结果为返回值) - main()函数的调用:
if __name__ == '__main__':
main()
分形树的实现
"""
作者:crystalcreator
功能:利用递归函数绘制分形树(树枝部分为绿色)
版本:1.0
日期:03/03/2020
"""
import turtle
def draw_branch(branch_length):
"""
绘制分析树
"""
if branch_length > 5:
#绘制右侧树枝
#判断画笔颜色
if branch_length <30:
turtle.color("green")
else:
turtle.color("brown")
turtle.forward(branch_length)
turtle.right(20)
draw_branch(branch_length - 15)
#绘制左侧树枝
turtle.left(40)
draw_branch(branch_length - 15)
#返回之前的树枝
#判断画笔颜色
if branch_length <30:
turtle.color("green")
else:
turtle.color("brown")
turtle.right(20)
turtle.backward(branch_length)
def main():
"""
主函数:
"""
turtle.left(90)
turtle.penup()
turtle.backward(150)
turtle.pendown()
draw_branch(100)
turtle.exitonclick()
if __name__ == '__main__':
main()
效果如图:
END