今天是三月七号,也就是女生节,或者女神节。不知道你是不是有自己喜欢的女孩子,在这里你可以用turtle库绘制一朵玫瑰花,送给你喜欢的姑娘。(拉到最后有惊喜哦)但在画这朵玫瑰花之前,先来一个基础的图形,也可以说是学习turtle库的入门绘画图形——蟒蛇图形。

  一、python蟒蛇绘制

代码:

 import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()

展示图:

  二、turtle库的相关知识

1.turtle库又叫海龟库。

意思是画图就像海龟在画布上行走一样,海龟走过的轨迹形成了一幅图画。turtle库是python的标准库之一,是一个图形绘制函数库。

2.保留字import

库引用函数。import引用库有两种方式:

第一种:import <库名> 使用库中函数的格式:<库名>.<函数名>(<函数参数>)

第二种:from <库名> import <函数名>   或from <库名> import *#其中,*是通配符,表示所有函数。使用格式:<函数名>.(<函数参数>)

另一种用法:

import <库名> as <库别名> 

<库别名>.<函数名>(<函数参数>)

3.turtle库函数介绍

(1)turtle.setup(width, height, startx, starty)

作用:设置主窗体的大小和位置

参数:width:窗口宽度。height: 窗口高度。startx: 窗口左侧与屏幕左侧的像素距离。如果值是None,窗口位于屏幕水平中央。starty: 窗口顶部与屏幕顶部的像素距离。如果值是None,窗口位于屏幕垂直中央。

(2)turtle.penup()和turtle.pendown()

作用:抬起画笔,之后画笔移动不绘制图形。和,落下画笔。开始绘制图形。

(3)turtle.pensize(width)   别名:turtle.width()

作用:设置画笔宽带。如果为None或空,返回当前画笔宽度。

(4)turtle.penclor(colorstring)  别名:turtle.pencolor((r,  g, b))

作用:设置画笔颜色,为空则返回当前画笔颜色。

参数:colorstring:表示颜色的字符串,例如,"purple", "red", "blue"等。(r, g, b):颜色对应的RGB数值,例如,(51, 204, 140)。下面是部分典型RGB颜色对照表。

(5)turtle.fd(distance)  别名:turtle.forward(distance)

作用:向箭头的方向前进

参数:distance:行进的距离,当值为负数时,表示向相反方向前进。

(6)turtle.seth(to_angle)  别名:turtle.setheading(to_angle)

作用:设置前进的角度,该角度时绝方向的角度值。

参数:to_angle:角度的整数值。

(7)turtle.circle(radius, extent=None)

作用:根据半径radius绘制角度extent的弧形

参数:radius:弧形半径,当值为正数时,半径在前进方向的左侧,反之,在右侧。extent:绘制弧形的角度,参数为None,则绘制整个圆形。

4.循环语句 for,in 和 range() 函数

(1)for <变量> in range(<次数>):

  <被循环执行的语句>

 for i in range(5):
print(i)

(2)range函数:产生循环计数序列。

range(N):产生0到N-1的整数序列,共N个。range(5)#0 1 2 3 4

range(M, N):产生M到N-1的整数序列,共N-M个。range(2, 5)#2 3 4

  三、玫瑰花的绘制

代码:

 import turtle
# 设置初始位置
turtle.goto(0, 0)
turtle.color("black")
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)
# 花蕊
turtle.fillcolor("red")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()
# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.left(90)
turtle.fd(80)
# 叶子2
turtle.right(90)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(60)
turtle.right(90)
turtle.circle(200, 60)
turtle.penup()

展示图:

最新文章

  1. SQL Prompt
  2. iOS开发UI篇—Quartz2D使用(矩阵操作)
  3. ActiveMQ简单介绍以及安装
  4. 标准I/O库之标准I/O的效率
  5. 读取文件内容返回List&lt;String&gt;类型
  6. 如何阻止sql注入(pdo篇)
  7. 使用with语句优化pymysql的操作
  8. 使用Elasticsearch-dump迁移ES数据
  9. java8与函数编程资料
  10. python实现随机森林、逻辑回归和朴素贝叶斯的新闻文本分类
  11. Oracle Data Guard配置
  12. 249. Group Shifted Strings把迁移后相同的字符串集合起来
  13. app自动化测试之实战应用(百度app简单测试)
  14. 团队项目管理:Github项目误删恢复记录
  15. Beanstalkd消息队列的安装与使用
  16. JAVA多线程下载
  17. [进程]kill 9和15,以及pkill, killall
  18. Oracle备份恢复之数据库备份、还原、恢复理论
  19. 9、Dubbo-配置(4)
  20. DevExpress打印通用代码

热门文章

  1. day41-进程-管道
  2. reviewer回信
  3. mac vmware fusion10 nat 模式网络配置
  4. docker常用的命令-在自己心情低落的时候,告诫自己不要把负能量带给别人。
  5. UML Learning
  6. android高仿小视频、应用锁、3种存储库、QQ小红点动画、仿支付宝图表等源码
  7. kafka运行找不到或无法加载主类 Files\Java\jdk1.8.0_131\lib\dt.jar;C:\Program
  8. SpringMVC学习笔记四:SimpleMappingExceptionResolver异常处理
  9. 企业级rancher搭建Kubernetes(采用rancher管理平台搭建k8s)
  10. 吴裕雄--天生自然KITTEN编程:画三角形