python用turtle画小人-画一个心送给心爱的小姐姐,Python绘图库Turtle

import turtle

turtle.setup(1200, 600) #窗口大小

#画心

turtle.color("black", "red")

turtle.pensize(2)

turtle.speed(10)

turtle.up() #提起画笔

turtle.goto(0, 50)

turtle.down()

def draw_heart(r, angle=45):

"""

:param r:桃心圆的半径

:param angle:起始画笔角度

:return:返回桃心底部尖点坐标

"""

turtle.begin_fill() #开始填充

turtle.seth(0)

turtle.seth(angle) #设置画笔方向

turtle.circle(-r, 180) #逆时针画半圆

turtle.fd(2 * r) #向前移动

turtle.begin_poly() #记录画笔的位置

x, y = turtle.get_poly()[0] #获取画笔的位置

turtle.right(90) #逆时针旋转画笔

turtle.fd(2 * r) #向前移动

turtle.circle(-r, 180)

turtle.end_fill() #填充结束

return x, y

#画桃心

x_y = []

start_x = 0

for _ in range(4):

turtle.goto(start_x, 50)

turtle.down() #放下笔

x_y.append(draw_heart(8))

start_x += 50

turtle.up() #提起画笔

#画叶子

def draw_flower(x, y):

"""

画桃心下的花

:param x:桃心尖底的x轴

:param y:桃心尖底的y轴

:return:

"""

turtle.up()

turtle.goto(x, y)

turtle.seth(0) #恢复画笔向右

turtle.seth(-90)

turtle.down()

turtle.fd(60)

turtle.goto(x, y)

turtle.right(60)

turtle.fd(20)

turtle.left(90)

turtle.fd(10)

turtle.left(120)

turtle.fd(20)

turtle.up()

turtle.goto(x, y)

turtle.seth(0) #恢复画笔向右

turtle.seth(-115)

turtle.down()

turtle.fd(25)

turtle.up()

turtle.goto(x, y)

turtle.seth(0) #恢复画笔向右

turtle.seth(-10)

turtle.down()

turtle.fd(20)

turtle.right(90)

turtle.fd(8)

turtle.right(120)

turtle.fd(20)

turtle.goto(x, y)

turtle.seth(-60)

turtle.fd(20)

turtle.up()

for x, y in x_y:

draw_flower(x, y)

#画小人物

turtle.up()

turtle.goto(-200, -50)

turtle.down()

turtle.seth(0) #恢复画笔向右,好控制方向

turtle.seth(45)

turtle.fd(40)

turtle.begin_poly() #记录画笔的位置,脚叉的位置

x, y = turtle.get_poly()[0] #获取画笔的位置

turtle.right(90)

turtle.fd(35)

turtle.goto(x, y)

turtle.left(135)

turtle.fd(90)

turtle.seth(0)

turtle.circle(30) #画圆

turtle.goto(x, y + 60) #手的位置

turtle.fd(40)

turtle.circle(30, 70) #画圆,拿花手的弧度

turtle.seth(0)

turtle.up()

turtle.goto(x, y + 50) #手的位置

turtle.down()

turtle.fd(50)

turtle.begin_poly() #记录手的位置等下画花需要用

f_x, f_y = turtle.get_poly()[0]

#眼睛

turtle.up()

turtle.goto(x - 15, y + 120) #眼睛的位置

turtle.down()

turtle.pensize(4)

turtle.seth(45)

turtle.circle(-10, 70) #画圆弧,拿花手的弧度

turtle.dot(10) #眼睛画圆

turtle.up()

turtle.goto(x + 10, y + 120) #眼睛的位置

turtle.down()

turtle.pensize(4)

turtle.seth(45)

turtle.circle(-10, 70) #画圆弧,拿花手的弧度

turtle.dot(10) #眼睛画圆

turtle.up()

#嘴巴

turtle.goto(x, y + 105) #眼睛的位置

turtle.down()

turtle.circle(10, 70) #画圆弧,拿花手的弧度

#画里拿的花叶子部分

turtle.pensize(3) #将画笔大小

turtle.up()

turtle.goto(f_x, f_y) #手的位置

turtle.left(20)

turtle.down()

turtle.fd(60)

turtle.pensize(2) #将画笔调小

turtle.begin_poly() #记录手的位置等下画花需要用

x, y = turtle.get_poly()[0]

turtle.backward(80)

turtle.up()

turtle.goto(x, y)

turtle.down()

turtle.right(90)

turtle.fd(20)

turtle.right(90)

turtle.fd(8)

turtle.right(120)

turtle.fd(25)

turtle.right(200)

turtle.fd(25)

turtle.up()

turtle.goto(x, y)

turtle.down()

turtle.right(60)

turtle.fd(25)

turtle.goto(x, y)

turtle.right(40)

turtle.fd(25)

turtle.left(90)

turtle.fd(8)

turtle.left(110)

turtle.fd(25)

turtle.goto(f_x + 34, f_y + 75)

draw_heart(8, angle=20) #手里拿的桃心

#写文字

turtle.up()

turtle.goto(150, 200)

turtle.pencolor("PINK") #画笔颜色

turtle.write("TO:所有同学", font=("方正舒体", 30, "normal"))

turtle.goto(180,140)

turtle.write("送给棒棒的你", font=("方正舒体", 30, "normal"))

turtle.hideturtle()

turtle.mainloop()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/561309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

vscode emmet默认模板_从零开始配置 vscode

我们在进行开发工作时,选择一个顺手好用的编辑器是必不可免的, 其中 vscode 就是一个很好的选择。它能让你大部分的工作都在编辑器内完成, 大大的提高开发效率~概述vscode 内置了前端相关的基础环境,如emmet扩展。另外的环境则可以通过它自己的插件商城来…

djano 字段不重复_Java 14 发布了,不使用quot;classquot;也能定义类了?还顺手要干掉Lombok!...

2020年3月17日发布,Java正式发布了JDK 14 ,目前已经可以开放下载。在JDK 14中,共有16个新特性,本文主要来介绍其中的一个特性:JEP 359: Records官方吐槽最为致命早在2019年2月份,Java 语言架构师 Brian Goe…

oracle 10g 还原表格,oracle 10g 闪回表恢复

oracle 从10g开始增加了闪回功能。9i 用drop命令删除表之后很难恢复,10g drop之后并未真正删除,而是放入了闪回区域,如果是误操作,可以马上从闪回区域恢复误删除的的表。今天使用了一下该功能,还是很方便的。下面模拟在…

oracle数据库函数手册,Oracle分析函数参考手册(转)

22/06/2005 12:22 FPOracle从8.1.6开始提供分析函数,分析函数用于计算基于组的某种聚合值,它和聚合函数的不同之处是对于每个组返回多行,而聚合函数对于每个组只返回一行。下面例子中使用的表来自Oracle自带的HR用户下的表,如果没…

java队列_java集合入门和深入学习(详解),看这篇就差不多了

一、集合入门总结集合框架:Java中的集合框架大类可分为Collection和Map;两者的区别:1、Collection是单列集合;Map是双列集合2、Collection中只有Set系列要求元素唯一;Map中键需要唯一,值可以重复3、Collect…

oracle课程小结,Oracle 数据库优化实战心得总结

一般情况下,对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化;对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。3.充分利用内存,优化sga、pga等(11g已经实现了sgapga自动化,但有的时…

苹果公司的企业文化_百度、苹果、脉脉等互联网大厂的企业文化衫还能这么潮?...

转眼2020年就已经到年中啦,很多企业已经敲锣打鼓,筹备着年中的会议团建了,有趣的,好玩的,有创意的,体面的,大场面的,国际范儿的,到底怎么样的年中策划才是最NICE的呢&…

命名空间跟作用域是什么关系_魏如萱许光汉首次合唱新歌《什么跟什么有什么关系》_娱乐频道...

近日,许光汉与新晋金曲奖歌后魏如萱合作的最新单曲《什么跟什么有什么关系》已经上线。歌曲由金曲奖最佳作词人李焯雄作词,魏如萱作曲,陈建骐担当制作,魏如萱和许光汉共同演唱。单曲收录于十一音乐的年度限定合作企划“不完美人生…

oracle 本年1月1号 yy,ORACLE 日期函数

一、 常用日期数据格式1.Y或YY或YYY 年的最后一位,两位或三位SQL> Select to_char(sysdate,Y) from dual;TO_CHAR(SYSDATE,Y)--------------------7SQL> Select to_char(sysdate,YY) from dual;TO_CHAR(SYSDATE,YY)---------------------07SQL> Select to_…

二级域名是否可以随意设定_新老域名是否影响SEO优化收录排名?企业需要多域名做网站吗?...

(文/守护袁昆)各互联网平台想免费做营销推广变得比较困难,而大多数中小企业又没什么资金方面的营销预算,所以付费推广广告也没法做。建立自己的企业官网貌似是不错的方式。传统企业在互联网上玩了一圈,发现还是自己的企业官网最靠谱。那么问题…

oracle pr,PRMSCAN ORACLE碎片扫描合并工具

prmscan 是诗檀软件独立研发的ORACLE数据块碎片扫描合并工具,其适用于以下的场景:误手动删除了文件系统(任意文件系统 NTFS、FAT、EXT、UFS、JFS等)或ASM上的数据文件文件系统损坏,导致数据文件大小变成0 bytes即数据文件被清零文件系统损坏&…

win10启动修复_以安全模式启动win10的4种方法,简单高效,修复电脑故障必用技巧...

在安全模式下启动Windows7只是小菜一碟,你所要做的就是按下Shift8来中断启动过程,然而,在安全模式下启动windows 10的过程并不是那么简单。一些用户甚至认为Windows 10无法使用安全模式,但事实并非如此,有很多方法可以…

oracle12178错误,Oracle学习笔记_20080522:Index FS vs Index FFS

Index Full Scan vs Index Fast Full Scanindex full scan和index fast fullscan是指同样的东西吗?答案是no。两者虽然从字面上看起来差不多,但是实现的机制完全不同。我们一起来看看两者的区别在哪里?首先来看一下IFS,FFS能用在哪里:在一句…

usb接口供电不足_Win7系统下电脑USB供电不足的解决方法

关注奕奇科技,学习更多小妙招,工作效率加倍小妙招,值得收藏笔记本主板USB供电不足的现象可以解释成两种情况:第一种是笔记本使用电池的时候会自动切换到较低的功耗,最大的电流标准是500mA,电压是5V&#xf…

php memcached 队列,redis获取所有队列_memcached

scrapy-redis实现分布式中, 获取redis队列中的612x230 - 24KB - PNGscrapy动态的从redis队列中获取源,并启动spid558x462 - 128KB - PNGRedis实现消息队列700x365 - 36KB - JPEGRedis实现简单消息队列 - 滚动_【北京联盟】677x441 - 9KB - PNGRedis实现简单消息队列 - 滚动_【北…

BP算法和RNN_模型CNN-RNN-LSTM和GRU简介

深度学习自从2006年以后已经“火”了十多年了,目前大家看到的,最普遍的应用成果是在计算机视觉、语音识别和自然语言处理(NLP)。最近工业界也在努力地扩展它的应用场景,比如游戏、内容推荐和广告匹配等等。深度模型架构…

电脑向linux服务器传输文件,windows如何通过ssh工具向linux服务器上传和下载文件?...

这个是很简单的。我用win10和kali给你举例子。kali自带了ssh,只不过我们需要开启它。kali下运行ps -e | grep ssh,你会发现已经有了ssh。只是没有启动,启动方法是/etc/init.d/ ssh start。如果你的linux机器不是kali,就先apt-get …

python 函数 过程_python学习之函数(三)--函数与过程

1.函数与过程的区别: 有返回值的是函数,没有返回值的是过程; 函数(function):有返回值 过程(procedure):简单特殊,没有返回值 严格来说,python只有…

linux 分隔大文件,linux系统下分割大文件的方法

本文介绍下在linux系统中,分割大文件的方法,比如一个5gb日志文件切割为很多小块.在linux中分割大文件,比如一个5gb日志文件,需要把它分成多个小文件,分割后以利于普通的文本编辑器读取。有时,需要传输20gb的…

python bar图_python使用matplotlib绘图 — barChart | 学步园

matplotlib是python最著名的绘图库,它提供了一整套和matlab相似的命令API,十分适合交互式地进行制图。而且也可以方便地将它作为绘图控件,嵌入GUI应用程序中。它的文档相当完备,并且Gallery页面中有上百幅缩略图,打开之…