当前位置:   article > 正文

Python绘画_python画画的代码

python画画的代码

变量命名规范

  1. 变量名可以由字母、数字、下划线组成
  2. 数字不能作为变量名开头
  3. 见名知义

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-255。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述
在这里插入图片描述

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()	# 将所画的图形展现出来
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18

在这里插入图片描述

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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

在这里插入图片描述
在这里插入图片描述

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()	# 将所画的图形展示
  • 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
  • 36
  • 37

在这里插入图片描述

3.其他

p.write('A',font=('字体名称',20,'normal'))	# 绘画文字
spen.bgcolor('rgb(23,43,54)')	 # 背景颜色
p.home()	# 回到原点并立直,画笔方向水平向右
  • 1
  • 2
  • 3

在这里插入图片描述

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()	# 将所画的图形展示
  • 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
  • 36
  • 37
  • 38
  • 39
  • 40

在这里插入图片描述

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()	# 将所画的图形展示
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13

在这里插入图片描述

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()	# 将所画的图形展示

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

4.元组字典&嵌套循环

元组: 一组有顺序的内容,但内容不能修改

  • 查找:a[n]; 通过索引取值,(0~列表长度-1)
  • 删除:delete a(直接删除整个元组)

字典

  1. 定义:键值对
  2. 创建方式:{“rr”:99,8:90}
  3. 注意事项: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个元素

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

在这里插入图片描述

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()函数的逆操作
  • 1
  • 2
  • 3
  • 4
  • 5

在这里插入图片描述
数码管
在这里插入图片描述

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()	# 将所画的图形展示
  • 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
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71

在这里插入图片描述

5.3 math模块

在这里插入图片描述

参考:阿里天池学习课程

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/276639
推荐阅读
相关标签
  

闽ICP备14008679号