实验六

发布时间 2023-06-10 01:00:05作者: 超音速老飞机

task1_1.py

 

 1 from turtle import*
 2 def move(x,y):
 3     '''画笔移动到坐标(x,y)处'''
 4     penup()
 5     goto(x,y)
 6     pendown()
 7 
 8 def draw(n,size = 100):
 9     '''绘制边长为size的正n边形'''
10     for i in range(n):
11         fd(size)
12         left(360/n)
13 
14 def main():
15     pensize(2)
16     pencolor('red')
17 
18 
19     move(-200,0)
20     draw(3)
21 
22     move(0,0)
23     draw(4)
24 
25     move(200,0)
26     draw(5)
27 
28     hideturtle()
29     done()
30 
31 main()

task1_2

 1 from turtle import*
 2 
 3 def moveto(x,y):
 4     '''把画笔移动至坐标(x,y)处'''
 5     penup()
 6     goto(x,y)
 7     pendown()
 8 
 9 def main():
10     pensize(2)
11     pencolor('blue')
12 
13     moveto(-150,0)
14     circle(50)
15 
16     moveto(0,0)
17     circle(50,steps = 4)
18 
19     moveto(150,0)
20     circle(50,steps = 5)
21 
22     moveto(300,0)
23     circle(50,steps = 6)
24 
25     hideturtle()
26     done()
27 
28 main()

task2.1py

 1 from turtle import*
 2 
 3 def moveto(x,y):
 4     penup()
 5     goto(x,y)
 6     pendown()
 7 
 8 def main():
 9     setup(800,600)
10 
11     radius = 20
12     offset = 20
13 
14     for i in range(9):
15         moveto(0,-radius)
16         circle(radius)
17         radius += offset
18 
19     hideturtle()
20     done()
21 
22 main()

 task2_2.py

 1 from turtle import*
 2 from random import random
 3 
 4 def moveto(x,y):
 5     penup()
 6     goto(x,y)
 7     pendown()
 8 
 9 def gen_color():
10     return tuple((random() for i in range(3)))
11 
12 def main():
13     setup(800,600)
14 
15     radius = 180
16     offset = 20
17 
18     for i in range(8):
19         moveto(0,-radius)
20         color(gen_color())
21 
22         begin_fill()
23         circle(radius)
24         end_fill()
25 
26         radius -= offset
27 
28     hideturtle()
29     done()
30 
31 main()

task3_1.py

 

 1 from turtle import *
 2 def square(size = 50, rgb = 'orange'):
 3     '''绘制正方形
 4     :para: size:int 指定边长 (如未指定参数,使用默认值)
 5     :para: c: str 指定画笔颜色值 (如未指定参数,使用默认值)
 6     '''
 7     pencolor(rgb)
 8     for i in range(4):
 9         fd(size)
10         left(90)
11 def main():
12     setup(800, 600)
13     speed(0)
14     n = 9
15     for i in range(9):
16         square(80)
17         left(360/n)
18     hideturtle()
19     done()
20 main()

task3_2.py

 1 from turtle import *
 2 setup(800, 600)
 3 pencolor('pink')
 4 n = 4
 5 speed(0)
 6 for i in range(12):
 7     # 绘制一片花瓣
 8     for j in range(2):
 9         circle(80,90)
10         left(180)
11         right(360/n)
12     left(30)
13 hideturtle()
14 done()

task4.py

 1 from turtle import *
 2 setup(800, 600)
 3 bgcolor('black')
 4 pencolor('white')
 5 speed(0)
 6 angle = 0
 7 size = 2
 8 n = 5 # 螺旋n边形
 9 count = 50 # 循环次数
10 for i in range(count):
11     fd(size)
12     angle += 360/n 
13     seth(angle)
14     
15     size += 5
16 hideturtle()
17 done()

 task5_1.py

 1 from turtle import *
 2 import math
 3 def moveto(x,y):
 4     penup()
 5     goto(x,y)
 6     pendown()
 7 
 8 def draw(n,color,size=100):
 9     fillcolor(color)
10     begin_fill()
11 
12     angle=0
13     for i in range(n):
14         fd(size)
15         angle=360/n
16         left(angle)
17     end_fill()
18 
19 
20 setup(640,480,500,200)
21 pensize(2)
22 #bgcolor('black')
23 
24 moveto(-100,-100)
25 draw(4,'black',size=200)
26 
27 moveto(0,-100)
28 seth(45)
29 draw(4,'red',size=100*math.sqrt(2))
30 hideturtle()
31 
32 done()

 task5_2.py

 1 from turtle import *
 2 pensize(2)
 3 pencolor('blue')
 4 for i in range(5):
 5     fd(40+20*i)
 6     left(90)
 7     circle(40+20*i,90)
 8     left(90)
 9     fd(40+20*i)
10     left(90)
11 hideturtle()
12 done()

task6.py

 1 from turtle import *
 2 from random import random
 3 def moveto(x, y):
 4 
 5     penup()
 6     goto(x, y)
 7     pendown()
 8 def gen_color():
 9 
10     return tuple((random() for i in range(3)))
11 def rect(l,w):
12     t=gen_color()
13     pencolor(t)
14     pensize(0)
15     fillcolor(t)
16     begin_fill()
17     fd(l)
18     left(90)
19     fd(w)
20     left(90)
21     fd(l)
22     left(90)
23     fd(w)
24     left(90)
25     end_fill()
26 def main():
27     setup(800, 600)
28     speed(0)
29     l=30
30     w=90
31     moveto(-l*10,0)
32     for i in range(1,21):
33         rect(l,w)
34         moveto(-l*(10-i),0)
35     hideturtle()
36     done()
37 
38 main()