python从入门到入魔第八天——turtle库使用(含玫瑰花绘制实例)

turtle库的作用

python 提供画图工具标准库:turtle库包绘图坐标体系、画笔控制函数和形状绘制函数,用来绘制想要的图画,turtle库的调用方式参考Python从入门到入魔第五天——jieba库的使用

turtle语法元素分析

turtle库绘图有一个基本的框架:一个小海龟在坐标系中爬行,爬行的轨迹绘制成图形。对于小海龟有“前进”,“后退”,“向左”,“”向右,“旋转”等行为。开始时位于画布正中间。

**主要控制函数**:
 画布:(不建立画布,默认画布在屏幕中间400x300像素)
	turtle.setup(width,heigh,startx,starty) #设置主窗体大小,参数依次为:宽,高,窗体左上角x坐标,窗体左上角y坐标(整数代表像素,小数代表占屏比)
 画笔属性:(不调用画笔参数时默认默认值)
 	turtle.pensize(x)       #定义画笔宽度(粗细)
 	turtle.pencolor("颜色") #定义画笔颜色
 	turtle.speed(x)         #定义画笔速度
 画笔操作命令:(起始状态下画笔在画布正中央坐标(0,0)处,画笔方向向东)
	turtle.penup()     #抬起画笔(等效于turtle.pu()/turtle.up)
	turtle.penddown()  #画笔落下(等效于turtle.pd()/turtle.down())
	turtle.fd(x)       #画笔前进,x为前进像素(距离)
	turtle.goto(x,angle) #画笔向angle方向前进x像素(距离)
	turtle.backward(x)	   #向画笔相反方向前进,x为前进像素(距离)
	turtle.fillcolor() #颜色填充
	turtle.begin_fill #准备开始填充
	turtle.end_fill()  #结束填充
	turtle.color(pencolor,fillcolor) #同时设置画笔颜色和填充颜色
	turtle.right(angle)     #画笔顺时针转angle度
	turtle.left(angle)      #画笔向左转angle度
	tirtle.seth(angle)  #调整画笔角度
	turtle.circle(radius,extent=None) #以radius为半径绘制extent角度的弧形
	turtle.clear()  #清空当前窗口图形
	turtle.showturtle() #显示画标
	turtle.hideturtle() #隐藏画标
	turtle.write(s,[font=("font_name","font_size","font_type")])#写文本,s为文本内容,font为字体以及字体的名称,大小和属性
	

画个正方形:
由于程序执行结束后会自动退出,为了使画好的正方形延迟退出,调用time库里的sleep参数

import turtle
import time
for i in range(4):
	turtle.fd(200)
	turtle.left(90)
time.sleep(10)  #延时10s

三角形,多边形会吗?

正方形螺旋:
演示图

import turtle
import time
distance = 5 #第一次前进5像素
turtle.speed(10)
for i in range(40):
	turtle.fd(distance)
	turtle.left(90)
	distance += 5 #循环一次距离增加5
time.sleep(2) #延迟2s退出程序


太阳花绘制:
每个人的审美不一样,画出来的样子自己把控,以太阳花每个角40度为例
(角度就是180-画图时调用角度之和)比如:本作品:180-(50+90)=40
太阳花

import time
import turtle
turtle.speed(2)  #控制画笔速度为2
turtle.color("red","yellow")  #画笔颜色为“red”,背景填充"yellow"
turtle.begin_fill()  #开始填充背景色
for i in range(20): #化20次 
	turtle.left(50) #初始方向
	turtle.fd(200)  #前进
	turtle.left(90) #在该前进角度下在向左转90度
turtle.end_fill()   #结束填充背景色
turtle.penup()      #抬起画笔
turtle.goto(200,100) #向100度方向前进200像素
turtle.write("偷来的太阳花",font=("green","15")) #打印文本
time.sleep(10)

玫瑰花绘制实例分析:
如果不知道玫瑰花怎么化,或者不知道化成什么样子,可以搜一下玫瑰花图片为参考图!!每个人画出来的都可能不一样,没有好坏之分!
在这里插入图片描述

import turtle
import time
#定义画笔属性
turtle.setup(800, 600, 200, 50)
turtle.speed(2)
turtle.pensize(1)
#花蕊
turtle.penup()
turtle.goto(0, 100)
turtle.begin_fill()
turtle.fillcolor('red')
turtle.pendown()
turtle.circle(10, 180)
turtle.circle(15, 100)
turtle.seth(320)
turtle.circle(30, 120)
turtle.seth(150)
turtle.circle(50, 100)
turtle.seth(-80)
turtle.fd(50)
turtle.circle(50, 70)
turtle.circle(50, 30)
turtle.circle(50, 30)
turtle.seth(40)
turtle.circle(30, 60)
turtle.fd(20)
turtle.seth(120)
turtle.fd(60)  # 到花中心的右上方
turtle.end_fill()
#花瓣
turtle.speed(5)
turtle.begin_fill()
turtle.fillcolor('red')
turtle.seth(0)
turtle.circle(-20, 70)
turtle.seth(70)
turtle.fd(20)
turtle.seth(-40)
turtle.circle(-90, 100)  # 右弧
turtle.circle(-30, 60)  # di
turtle.seth(170)  # 左弧
turtle.circle(-90, 100)
turtle.seth(270)
turtle.circle(100, 60)
turtle.seth(0)
turtle.circle(-40, 81)  # 底部
turtle.seth(130)
turtle.circle(-120, 30)
turtle.seth(80)
turtle.circle(-80, 30)
turtle.seth(70)
turtle.circle(-40, 30)
turtle.seth(83)
turtle.fd(22)
turtle.end_fill()
#枝叶
turtle.speed(5)
turtle.penup()  # 茎
turtle.goto(50, -13)
turtle.pendown()
turtle.seth(-90)
turtle.circle(180, 60)
turtle.seth(-30)
turtle.circle(-180, 40)

turtle.penup()  # 叶子
turtle.goto(74, -105)
turtle.pendown()
turtle.seth(40)
turtle.circle(180, 20)
turtle.penup()
turtle.goto(94, -85)
turtle.fillcolor('green')
turtle.begin_fill()
turtle.pendown()
turtle.seth(100)
turtle.circle(-60, 100)
turtle.seth(-80)
turtle.circle(-60, 100)
turtle.end_fill()
turtle.seth(45)
turtle.fd(60)

turtle.penup()
turtle.goto(152, -178)
turtle.pendown()
turtle.seth(160)
turtle.circle(180, 20)
turtle.penup()
turtle.goto(120, -168)
turtle.begin_fill()
turtle.seth(130)
turtle.pendown()
turtle.circle(60, 100)
turtle.seth(-50)
turtle.circle(60, 100)
turtle.end_fill()
turtle.seth(160)
turtle.circle(100, 40)
turtle.penup()
turtle.goto(100,40)
turtle.write("赶紧送给心爱的人吧",font=("red","15"))
time.sleep(5)

  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

如何学会学习?

你的鼓励是我最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值