绘制五角星

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
# 引用第三方图形绘制库,时间库
import turtle
import time

def main():
#绘制画布
turtle.screensize(800,600, "OldLace")

#设置画笔属性,线宽,黄色,图形填充红色
turtle.pensize(2)
turtle.pencolor("yellow")
turtle.fillcolor("red")

turtle.begin_fill()

#循环5次,线长200,向右旋转144°
for _ in range(5):
turtle.forward(200)
turtle.right(144)

turtle.end_fill()

#延迟2秒
time.sleep(2)

#画笔抬起,移动到(-180,-120)
turtle.penup()
turtle.goto(-180,-120)
turtle.color("RoyalBlue") #设置文字颜色
turtle.write("绘制完成!", font=('Arial', 20, 'normal')) #设置书写内容,字体,字号

turtle.exitonclick()

if __name__ =="__main__":
main();

turtle 方向

           左侧 y
            |
后退 ---------------- 前进 x
            |
           右侧

绘制多个五角星,由小及大

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
def DrawPentagram(size):
count=0
while count < 5:
turtle.forward(size)
turtle.right(144)
count += 1

#迭代实现
size+=50
if size <= 200:
DrawPentagram(size)

def main():
turtle.penup()
turtle.backward(100)
turtle.pendown()

size = 50

#循环实现
while size<=200:
size+=50
DrawPentagram(size)

#迭代实现
DrawPentagram(size)

turtle.exitonclick()

if __name__ == "__main__":
main()

分形树

  • 客观事物具有自相似的层次结构。自相似性:局部是整体的比例缩放
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
def FractalBranch(branchLen):
if branchLen > 5:
turtle.forward(branchLen)

#右分支
turtle.right(20)
FractalBranch(branchLen - 10)

#左分支
turtle.left(40)
FractalBranch(branchLen - 10)

#回退主干
turtle.right(20)
turtle.backward(branchLen)

def main():
turtle.penup()
turtle.backward(25)
turtle.left(90)
turtle.backward(220)
turtle.pendown()

FractalBranch(100)

turtle.exitonclick()

if __name__ == "__main__":
main()