实验6 turtle绘图与python库应用编程体验
task1-1
程序源码:
1 from turtle import * 2 3 def move(x, y): 4 '''画笔移动到坐标(x,y)处''' 5 penup() 6 goto(x, y) 7 pendown() 8 9 def draw(n, size = 100): 10 '''绘制边长为size的正n变形''' 11 for i in range(n): 12 fd(size) 13 left(360/n) 14 15 def main(): 16 pensize(2) 17 pencolor('red') 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 main()
运行截图:

task2-1
程序源码:
1 '''以(0,0)为圆心,绘制9个同心圆''' 2 3 from turtle import * 4 5 def moveto(x, y): 6 '''把画笔移至坐标(x,y)处''' 7 penup() 8 goto(x, y) 9 pendown() 10 11 def main(): 12 setup(800, 600) 13 14 radius = 20 # 圆初始半径 15 offset = 20 # 同心圆每次位移量 16 for i in range(9): 17 moveto(0, -radius) 18 circle(radius) 19 radius += offset 20 hideturtle() 21 done() 22 23 main()
运行截图:

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

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

task3-2
程序源码:
1 from turtle import * 2 3 setup(800, 600) 4 pencolor('pink') 5 6 n = 10 7 for i in range(n): 8 # 绘制一片花瓣 9 for j in range(2): 10 circle(80, 90) 11 left(90) 12 13 right(360/n) 14 15 hideturtle() 16 done()
运行截图:

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

task5-1
程序源码:
1 from turtle import * 2 3 def start(x,y): 4 penup() 5 goto(x,y) 6 pendown() 7 8 def main(c,n,l): 9 color(c) 10 begin_fill() 11 for i in range(n): 12 fd(l) 13 left(360/n) 14 end_fill() 15 16 start(-100,-100) 17 main('black',4,200) 18 19 start(-100,0) 20 right(45) 21 main('red',4,100*2**(1/2)) 22 23 hideturtle() 24 done()
运行截图:

task5-2
程序源码:
1 from turtle import * 2 color('blue') 3 r = 20 4 for i in range(5): 5 r += 20 6 forward(r) 7 left(90) 8 circle(r,90) 9 left(90) 10 forward(r) 11 left(90) 12 forward(40) 13 goto(0,0) 14 hideturtle() 15 done()
运行截图:

task6
程序源码:
1 #6 2 from turtle import * 3 bgcolor('black') 4 pencolor('yellow') 5 6 color('yellow') 7 begin_fill() 8 left(45) 9 fd(100) 10 left(90) 11 circle(100,270) 12 left(90) 13 fd(100) 14 end_fill() 15 16 penup() 17 goto(0,60) 18 pendown() 19 color('black') 20 begin_fill() 21 circle(10) 22 end_fill() 23 24 color('white') 25 begin_fill() 26 penup() 27 goto(-10,60) 28 pendown() 29 circle(2) 30 end_fill() 31 32 hideturtle() 33 done()
运行截图:

浙公网安备 33010602011771号