Python绘图代码大全及海龟编程用法详解

大家好,本文将围绕python绘图代码大全和用法展开说明,python海龟编程代码大全是一个很多人都想弄明白的事情,想搞清楚python图形绘制的代码需要先了解以下几个事情。

Source code download: 本文相关源码

绘画
  • 变量命名规范
  • 1.绘画常用指令
  • A. 完整功能演示
  • 2.画圆的指令
  • B. 绘制笑脸完整代码
  • 3.其他
  • C. 绘制太极图完整代码
  • D. 画同心圆
  • E. 画五角星
  • 4.元组字典&嵌套循环
  • 5.多模块应用
  • 5.1 random模块
  • 5.2 time模块
  • F. 绘画当前时间
  • 5.3 math模块
  • 变量命名规范

    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-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.元组字典&嵌套循环

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

  • 查找: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个元素
    
    

    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

    物联沃分享整理
    物联沃-IOTWORD物联网 » Python绘图代码大全及海龟编程用法详解

    发表回复