圣诞节即将到了,所以这回通过turtle模块来编写一个表白的小程序

开发时间:2019-12-15

开发工具:Sublime

开发模块:turtle

这里用到了turtle库的相关知识,如果不熟悉可以看我之前的博客:

首先,我们需要来创建一个函数来承载所有初始化数据,包括画布的大小,画笔的尺寸、颜色、还有画笔的移动速度

以演示图为例子,设置了一个800*600大小的画布,红色画笔宽为5,速度为10

代码如下所示:

definitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)

设置好相关属性后,就可以开始作画了

首先画笔位于正中央,若想移动画笔将会在画布上留下痕迹,也就是画上了线条,

但是有些线条,画作本身并不需要,这就需要做到让画笔移动的同时,画布不留痕迹

需要用到up()和down();两个函数,如直译一般作用为抬起画笔和放下画笔

所以操作为,抬起画笔——移动到指定地方——放下画笔

代码如下所示:

ef move_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()

注意:hideturtle()和showturtle()为隐藏画笔和显示画笔。对画作本身毫无影响

绘制演示图中,最难的部分在哪里?

一定是爱心上半部分的两个半圆,所以为方便,我们单独讲这一部分提出来做一个绘制半圆的函数

在turtle库中并没有绘制曲线的函数,最接近的也只有画圆了。

不过我们可以通过割圆法来绘制,也就是将这一段圆弧视为一个边长很短的多边形

所以我们通过for循环来绘制,通过不断偏转方向的小线段组成

代码如下:

defhart_arc():for i in range(200):

t.right(1)

t.forward(2)

现在我们开始绘制图形draw()

首先表白总要有表白者和被表白者吧,所以我们先创建name和sign来存储名字

之后通过调用初始化函数来获取相关信息

最后就可以操纵画笔开始绘制。

先将画笔移动到(0,-180)的位置,也就是爱心的下部尖端,这就用到了刚刚创建的移动函数,

之后控制画笔调整方向,移动224的距离绘制完成前面的爱心下部的右侧边

然后绘制爱心上半部分,调用hart_arc()绘制了爱心上半部分左侧,

然后调整方向,画笔向左偏转120度,再绘制另一个半圆

最后画笔返回初始位置,画好了第一个爱心,将其填充为粉色。

同理可画第二个爱心,到最后来一个“一箭双❤”就可以了

绘制完成之后,我们就要输出刚刚记载的两个人名了

这需要用到write()函数

代码如下:

defdraw():

name=input("请输入表白姓名:")

sign=input("请输入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

t.color('red', 'pink')

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")

这样表白的代码就制作完成了

感谢大家支持,总体代码如下:

importturtle as timporttimedefinitdata():

t.setup(800,600)

t.pencolor('red')

t.pensize(5)

t.speed(10)defmove_pen(x,y):

t.hideturtle()

t.up()

t.goto(x,y)

t.down()

t.showturtle()defhart_arc():for i in range(200):

t.right(1)

t.forward(2)defdraw():

name=input("请输入表白姓名:")

sign=input("请输入你的大名:")

initdata()

move_pen(0,-180)

t.left(140)

t.fillcolor("pink")

t.begin_fill()

t.forward(224)

hart_arc()

t.left(120)

hart_arc()

t.forward(224)

t.end_fill()

move_pen(x=70, y=160)

t.left(185)

t.circle(-110,185)

t.forward(50)

move_pen(-180,-180)

t.left(180)

t.forward(600)

move_pen(0,50)

t.hideturtle()

t.color('#CD5C5C', 'red')

t.write(name, font=('Arial', 20, 'bold'), align="center")

t.color('red', 'pink')

time.sleep(2)

move_pen(220, -180)

t.hideturtle()

t.write(sign, font=('Arial', 20), align="center")defmain():

draw()

time.sleep(5)if __name__ == '__main__':

main()

python圣诞节祝福_Pyhton表白代码——浪漫圣诞节相关推荐

  1. 用python写一段表白代码

    您好!以下是用 Python 写的表白代码: print("亲爱的,我一直在想念你.") print("你是我生命中最重要的人,你是我一直以来的支持者,我的朋友,我的爱人 ...

  2. python语言 表白程序_python程序员实现表白代码的案例

    python程序员实现表白代码的案例 发布时间:2020-10-22 11:17:54 来源:亿速云 阅读:132 作者:小新 这篇文章主要介绍python程序员实现表白代码的案例,文中介绍的非常详细 ...

  3. python表白代码,照片隐藏表白话语

    文章目录 前言 一.具体过程 1.代码思路 2.python完整代码 3.代码补充 二.结果 补充 前言 最近天气好冷,感觉整个人都是冰冰的!程序员如何用python表白自己的女神呢?我想用最近学的图 ...

  4. Python表白代码

    python程序员的表白代码 # -*- coding:utf-8 -*- import turtle import time# 画爱心的顶部 def LittleHeart():for i in r ...

  5. 可以写一个表白代码吗

    当然可以!想写一个表白代码的话,可以使用一些编程语言,例如 Python.Java.C++ 等等.如果你不熟悉编程语言,不妨先学习一下基本语法再试试. 举个例子,这是一个使用 Python 语言编写的 ...

  6. 《Turtle绘图》Python用Turtle库绘制圣诞树、圣诞节考研祝福礼物

    Python用Turtle库绘制圣诞树.圣诞节考研祝福礼物 当圣诞节遇上考研.遇上海龟绘图,于是有了本文的内容.圣诞节是固定的12月25日,而考研是12月底的某个周末.能不能用Python制作一个祝福 ...

  7. python浪漫表白代码

    python浪漫表白代码 示例代码: import turtle import random# 在(x, y)处画爱心lalala def love(x, y):lv = turtle.Turtle( ...

  8. Python简单浪漫表白代码鲜花

    遇到喜欢的某某某,又想给她一点点新鲜感,可以用上博主的这个鲜花表白代码,本代码用于谈恋爱的任意阶段. 先来看看效果图 本代码简单易懂,适合Python基础小白使用,用到turtle海龟绘图和简单的输出 ...

  9. 520最浪漫表白:QQ打开基于Python实现的无法拒绝的音乐表白代码!别让等待,成了遗憾!

    520表白日,男人怎么送礼物,就怎么爱你 每个女孩都喜欢男孩对自己浪漫的表白,不过每个人性格不同,浪漫表白的方式也不尽相同.那么520怎样浪漫的表白好呢?程序员如何俘获心仪女神的心呢?当然是要用程序员 ...

  10. Python浪漫520表白代码

    目录 前言 表白界面 跳动的爱心 漂浮的爱心 满屏表白代码 前言 520是每年的5月20日,因数字"520"与"我爱你"发音相似而被许多年轻人用作表达爱意的节日 ...

最新文章

  1. 自己写一个轻量的JqueryGrid组件
  2. TP5 实现多字段的关键词模糊查询
  3. java date 过时_java Date中方法toLocaleString过时的替代方案
  4. window下搭建虚拟Linux操作系统
  5. 有趣的MS Live Labs
  6. python历史波动率_历史波动率计算(旧文)
  7. android新版本广告,新增朋友圈广告?微信6.1安卓新版发布
  8. pcb变压器厂家_大邑县活动板房回收整体回收厂家24小时回收报价-发亿科技
  9. Chromium OS并行运行Linux chroot安装Linux
  10. 学习笔记1——制作数据集
  11. 量化投资篇(1):深入浅出量化对冲Alpha基金的操作
  12. C++ TCP 网络编程与数据通信
  13. wps可以登录网页版_wps网页版入口_WPS个人免费版_点点游
  14. java excel 边框颜色_poi生成excel整理(设置边框/字体/颜色/加粗/居中/)[转]
  15. 金蝶云苍穹集成服务云,让企业数据自由流动
  16. 橘子学ES19之词项搜索全文检索
  17. duilib 关于wke 控件焦点问题
  18. matlab 棋盘格畸变矫正
  19. NDK实践(一)在linux环境下编译ffmpe
  20. SAP上传图片LOGO(SE78/SMW0)

热门文章

  1. 什么是外汇期货?外汇的风险都有哪些?
  2. DSP28377S_CAN通信
  3. 用大白话谈谈XSS与CSRF
  4. 货币制度 - 异想天开
  5. 了解KK音标以及相似音标如何学习记忆
  6. 做直流逆变中用到的全桥逆变电路测试mos管好坏的方法
  7. 学习CPP看过的博客
  8. VScode中出现提示Code 安装似乎损坏。请重新安装。
  9. C语言字谜游戏(函数嵌套、指针)
  10. mysql安装ecshop_ECSHOP安装流程