turtle模块:内置模块,从LOGO语言借鉴而来
属性包括位置、方向、画笔(颜色、线条宽度等)
指令:画笔运动命令
前/后移动,左/右移动、作画速度等
画笔控制命令
拾起/放下、画笔宽度、画笔颜色、填充颜色等
>>> import turtle #导入模块
>>> p = turtle.Pen() #创建一支画笔(海龟)
>>> p.pencolor('blue') #设置画笔颜色为蓝色
>>> p.pensize(5) #设置画笔的粗细为5
>>> p.forward(100)
>>> p.left(120)
>>> p.forward(100)
>>> p.left(120)
>>> p.forward(100)
>>> p.left(120)
绘制简单图形
画直线:
import turtle
t = turtle.Turtle()
w = turtle.Screen()
t.forward(100)
turtle.done()
画正方形:
import turtle
t = turtle.Turtle()
w = turtle.Screen()
for i in range(4):
t.forward(100)
t.right(90)
turtle.done()
画五角星:
import turtle
t = turtle.Turtle()
w = turtle.Screen()
for i in range(5):
t.forward(100)
t.right(144)
turtle.done()
绘制树图形:调用递归画树
注意海龟作图的次序:先画树干,再画右树枝,最后画左树枝;与递归函数里的流程一致
import turtle
def tree(branchLen,t):
if branchLen > 5:
t.forward(branchLen)
t.right(20)
tree(branchLen-15,t)
t.left(40)
tree(branchLen-15,t)
t.right(20)
t.backward(branchLen)
def main():
t = turtle.Turtle()
mywin = turtle.Screen() #生成海龟
t.left(90)
t.up()
t.backward(100)
t.down() #海龟位置调整
t.color("green")
tree(75,t) #画树,树干长度75
mywin.exitonclick()
main()
turtle.done()
绘制分形图:
分形(fractal)的基本概念
类似二叉树,部分与整体以某种方式相似的形体
"分形学之父" 数学家曼德勃罗(Benoit B. Mandelbrot)
分形图:曼德勃罗集
龙形曲线:自相似分形曲线
希尔伯特(Hilbert)曲线:空间填充曲线,可以线性地贯穿二维或者更高维度的每个离散单元并进行排序和编码;可用于将高维空间中没有良好顺序的数据映射到一维空间
谢尔宾斯基三角形:由三个相同的谢尔宾斯基三角形按照品字形拼叠而成;面积为0,周长为无穷大;我们只能画出维数(degree)有限的近似图形