Python Turtle
老师好我叫余同学 人气:0前期准备
首先,使用Python
内置的Turtle
绘图库需要在程序前添加以下代码:
import turtle
也可以写成这样:
from turtle import *
我们来讲一讲它们的区别:
使用import
时,需要定义一个变量作为参数控制项,如:
import turtle t=turtle.Pen()
# 画图 t.forward(10) # 向右画10像素,详见下表
而使用from
时,可以直接命令程序,不需要多余语句
from turtle import * # 画图 forward(10) # 向右画10像素,详见下表
基本函数与用法
绘画图形
1.画一个正方形
import turtle t=turtle.Pen() t.pencolor("orange") # 画笔颜色设置为橙色 for i in range(1,5): t.fd(50) # 向右画50像素 t.lt(90) # 转90度,画下一条边
2.画一个三角形
步骤:先画一条边,右转120°
,再画一条边,右转120°
,最后画一条边
import turtle t=turtle.Pen() t.pencolor("orange") # 画笔颜色设置为橙色 t.fd(150) t.rt(120) t.fd(150) t.rt(120) t.fd(150)
3.画一个八角星
import turtle t=turtle.Pen() t.pencolor("orange") for x in range(1,9): # 执行8次 t.fd(100) t.lt(135)
4.画一个八边形
重点:每画一条边后都旋转45°
import turtle t=turtle.Pen() t.pencolor("orange") for i in range(1,9): #循环8次 t.forward(50) #画线 t.right(45) #转向
我们还能通过Turtle
画一些有趣的图形
5.其他图形
#test 1.1 import turtle t=turtle.Pen() t.pencolor("orange") for i in range(1,4): t.fd(50) t.rt(120) t.fd(50) t.rt(120) t.fd(50)
import turtle #导入turtle库 t = turtle.Pen() t.pencolor("orange") for i in range(5): t.forward(100) # 向右移动300 t.right(180-180/5) # 180-五角星的内角和/5 t.done()
到现在为止,我们画的图形都只有一种颜色,那么,怎样才能画出多种颜色的图案呢?
我们可以先定义一个颜色列表,在每次画的时候随机
取出一种颜色,就可以画出多彩的图案
colors=["red","orange","yellow","green","blue","purple"]
随机取出颜色的代码:
t.pencolor([colors%5])
No.1、多彩的五角星
import turtle #导入turtle库 t = turtle.Pen() colors=["red","orange","yellow","green","blue","purple"] for i in range(5): t.pencolor(colors[i%5]) t.forward(100) # 向右移动300 t.right(180-180/5) # 180-五角星的内角和/5 t.done()
No.2、多彩的八角星
import turtle t=turtle.Pen() colors=["red","orange","yellow","green","blue","purple"] for i in range(1,9): # 执行8次 t.pencolor(colors[i%6]) t.fd(100) t.lt(135)
No.3、四圆镶嵌
import turtle t=turtle.Pen() colors=["red","green","yellow","blue"] for i in range(1,100): t.pencolor(colors[i%4]) t.circle(i) #画圆 t.lt(91)
No.4、彩虹螺旋
import turtle t=turtle.Pen() colors=["red","orange","yellow","green","blue","purple"] turtle.bgcolor("black") for i in range(500000): t.pencolor(colors[i%6]) t.fd(i) t.lt(64) t.width(i/10-1)
加载全部内容