Python绘图代码大全及海龟编程用法详解
大家好,本文将围绕python绘图代码大全和用法展开说明,python海龟编程代码大全是一个很多人都想弄明白的事情,想搞清楚python图形绘制的代码需要先了解以下几个事情。
Source code download: 本文相关源码
绘画
变量命名规范
- 变量名可以由字母、数字、下划线组成
- 数字不能作为变量名开头
- 见名知义
1.绘画常用指令
p.fd(x) # forward:前进x距离
p.bk(x) # backward:后退x距离
p.lt(x) # left:左转x角度
p.rt(x) # right:右转x角度
p.speed() # 绘画速度:范围0-10。0就是直接成图,无绘画过程
p.color('red') # 颜色的参数必须为字符串
p.color('rgb(r,g,b)') # rgb范围:0-255python用turtle画固定樱花树。
A. 完整功能演示
import spen,random
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(0)
p.lt(30)
m =15
n =30
for i in range(m):
r = random.randint(0,255)
g = random.randint(0,255)
b = random.randint(0,255)
color = 'rgb('+ str(r) + ',' + str(g) + ',' + str(b) + ')'
p.color(color)
for i in range(n):
p.fd(10)
p.rt(360/n)
p.rt(360/m)
spen.done() # 将所画的图形展现出来
2.画圆的指令
p.circle(半径,圆心角)
p.goto(x,y) # 移动到指定坐标(x,y)
p.up() # 抬笔
p.down() # 落笔
p.fillcolor('black') #
p.begin_fill()
p.end_fill()
p.width() # 画笔的粗细
p.hideturtle()
B. 绘制笑脸完整代码
import spen,random
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(5)
# 绘制圆脸
p.color('gold')
p.fillcolor('gold')
p.begin_fill()
p.circle(66)
p.end_fill()
# 绘制眼睛
p.color('black')
p.up()
p.goto(-25,70) # left eye
p.down()
p.fillcolor('black')
p.begin_fill()
p.circle(7)
p.end_fill()
p.up()
p.goto(25,70) # right eye
p.down()
p.fillcolor('black')
p.begin_fill()
p.circle(7)
p.end_fill()
# 嘴巴
p.up()
p.goto(-25,45)
p.down()
p.rt(60)
p.color('black')
p.width(8)
p.circle(30,120)
p.hideturtle() # 隐藏画笔
spen.done() # 将所画的图形展示
3.其他
p.write('A',font=('字体名称',20,'normal')) # 绘画文字
spen.bgcolor('rgb(23,43,54)') # 背景颜色
p.home() # 回到原点并立直,画笔方向水平向右
C. 绘制太极图完整代码
import spen,random
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(5)
p.hideturtle() # 隐藏画笔
# 阴鱼
p.fillcolor('black')
p.begin_fill()
p.circle(50,180)
p.circle(-50,180)
p.circle(-100,180)
p.end_fill()
# 阳鱼
p.up()
p.goto(0,200)
p.down()
p.fillcolor('white')
p.begin_fill()
p.circle(50,180)
p.circle(-50,180)
p.circle(-100,180)
p.end_fill()
# 眼睛1
p.up()
p.goto(-10,135)
p.down()
p.fillcolor('white')
p.begin_fill()
p.circle(15)
p.end_fill()
# 眼睛2
p.up()
p.goto(-10,35)
p.down()
p.fillcolor('black')
p.begin_fill()
p.circle(15)
p.end_fill()
spen.done() # 将所画的图形展示
D. 画同心圆
import spen,random
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(5)
# p.hideturtle() # 隐藏画笔
# 画同心圆
p.circle(100)
p.up()
p.goto(0,20)
p.down()
p.circle(80)
spen.done() # 将所画的图形展示
E. 画五角星
import spen,random
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(5)
p.lt(144)
p.color('black')
p.fillcolor('gold')
p.begin_fill()
for i in range(5):
p.fd(200)
p.rt(144)
p.end_fill()
p.hideturtle() # 隐藏画笔
spen.done() # 将所画的图形展示
4.元组字典&嵌套循环
元组: 一组有顺序的内容,但内容不能修改
字典
- 定义:键值对
- 创建方式:{“rr”:99,8:90}
- 注意事项:a.键不能重复命名;b.键只能是数字、字母串或者元组
5.多模块应用
5.1 random模块
random.random() # 随机生成0~1之间的浮点数
random.randint(a,b) # 随机生成a~b之间的整数
random.uniform(a,b) # 随机生成a~b之间的浮点数
random.randrange(a,b,step) # 随机生成a~b之间以step为步数的整数
random.choice([1,2,3]) # 随机从列表中选取一个元素
random.sample([1,2,3],n) # 随机从列表中选取n个元素
5.2 time模块
time.time() # 表示当前时间的时间戳
time.ctime() # 把一个时间戳表示为Sun Aug 23 14:31:59 2015形式
time.localtime() # 将一个时间戳转换为当前时区的struct_time
time.strftime( format [, t]) # 把一个代表时间的元组或者struct_time转化为格式化的时间字符串
time.strptime(string[,format]) # 将格式字符串转化成struct_time,是time.strftime()函数的逆操作
数码管
F. 绘画当前时间
import spen,time
spen.set_defaults(canvas=document['canvas'])
p = spen.Turtle("mouse")
p.speed(5)
def draw_line(draw):
p.up()
p.fd(5)
if draw:
p.down()
else:
p.up()
p.fd(25)
p.up()
p.fd(5)
def draw_digit(cur_time):
if cur_time in [2,3,4,5,6,8,9]:
draw_line(True)
else:
draw_line(False)
p.right(90)
if cur_time in [0,1,3,4,5,6,7,8,9]:
draw_line(True)
else:
draw_line(False)
p.right(90)
if cur_time in [0,2,3,5,6,8,9]:
draw_line(True)
else:
draw_line(False)
p.right(90)
if cur_time in [0,2,6,8]:
draw_line(True)
else:
draw_line(False)
if cur_time in[0,4,5,6,8,9]:
draw_line(True)
else:
draw_line(False)
p.right(90)
if cur_time in [0,2,3,5,6,7,8,9]:
draw_line(True)
else:
draw_line(False)
p.right(90)
if cur_time in [0,1,2,3,4,7,8,9]:
draw_line(True)
else:
draw_line(False)
p.lt(90)
p.up()
p.fd(20)
def draw_date (date):
p.color ("red")
for i in date:
if i == ':':
p.write(':',font=('Simhei',50,'normal'))
p.fd(40)
else:
draw_digit (eval(i))
p.up()
p.fd(-200)
p.width(5)
date = time.strftime('%H:%M:%S', time.localtime())
draw_date(date)
# print(date)
p.hideturtle() # 隐藏画笔
spen.done() # 将所画的图形展示
5.3 math模块
参考:阿里天池学习课程
作者:w666666Wwwwwww