脚本之家,脚本语言编程技术及教程分享平台!
分类导航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|shell|

服务器之家 - 脚本之家 - Python - Python+Turtle制作独特的表白图

Python+Turtle制作独特的表白图

2022-12-06 11:07Python 集中营 Python

这篇文章主要利用Python和Turtle库绘制独特的表白图,文中的示例代码讲解详细,对我们学习Python有一定的帮助,感兴趣的可以了解一下

开始之前先来看看效果图,在控制台输入相应的参数设置即可生成自己独特的表白图。

Python+Turtle制作独特的表白图

想要在图片上书写什么样的信息,就看你的发挥了。

Python+Turtle制作独特的表白图

import turtle as tle  # 小乌龟绘图库

使用turtle小乌龟画图之前,先进行全局参数初始化的设置,并使得全局初始化函global_init可以动态传参供后面的方便调用。

def global_init(w=900, h=600, psize=15, sp=0):
  '''
  全局画笔属性初始化函数
  :param w: 画布宽度
  :param h: 画布高度
  :param psize: 画笔尺寸
  :param sp: 绘画速度
  :return:
  '''
  tle.setup(width=w, height=h)
  tle.color('red', 'pink')
  tle.pensize(psize)
  tle.speed(sp)

设置完上面的属性之后,就可以正式开始绘图了,这里为了使代码结构清晰还是创建一个表白红心的函数draw_red_heart。

def draw_red_heart(confession='我爱你', confession_h=30,
                 sign='来自远方的仰慕者', sign_w=20, sign_h=25):
  '''
  绘制表白红心
  :param confession: 表白语句
  :param confession_h: 表白语句尺寸大小
  :param sign: 签名
  :param sign_w: 签名宽度
  :param sign_h: 签名高度
  :return:
  '''
  tle.up()
  tle.hideturtle()
  tle.goto(0, -180)
  tle.showturtle()
  tle.down()
  tle.speed(500)
  tle.begin_fill()
  tle.left(140)
  tle.forward(224)
  for n in range(200):
      tle.right(1)
      tle.forward(2)
  tle.left(120)
  for n in range(200):
      tle.right(1)
      tle.forward(2)
  tle.forward(224)
  tle.end_fill()
  tle.pensize(12)
  tle.up()
  tle.hideturtle()
  tle.goto(0, -20)
  tle.showturtle()
  tle.color('#CD5C5C', 'pink')
  tle.write(confession, font=('gungsuh', confession_h), align="center")
  tle.up()
  tle.hideturtle()
  tle.color('black', 'pink')
  tle.goto(180, -180)
  tle.showturtle()
  tle.write(sign, font=(sign_w, sign_h), align="center", move=True)

编写主体业务函数main,调用整个绘画程序运行。

def main():
  print('按要求输入下面的绘图参数...')
  width = int(input('请输入画布宽度:\n'))
  height = int(input('请输入画布高度:\n'))
  psize = int(input('请输入画笔尺寸:\n'))
  speed = int(input('请输入画笔速度:\n'))
  confession = input('请输入表白语句:\n')
  confession_h = int(input('请输入表白语句字体大小:\n'))
  sign = input('请输入签名:\n')
  sign_w = int(input('请输入签名宽度:\n'))
  sign_h = int(input('请输入签名高度:\n'))
  print('参数录入完成,开始绘图...')
  global_init(w=width, h=height, psize=psize, sp=speed)
  draw_red_heart(confession=confession, confession_h=confession_h,
                 sign=sign, sign_w=sign_w, sign_h=sign_h)
  print('绘图完成!')
  # 保存eps格式的绘图结果
  eps = tle.getscreen()
  eps.getcanvas().postscript(file=r"./表白.eps")

  # 保存JPG格式的图片
  from PIL import Image
  im = Image.open("./表白.eps")
  im.save("表白.jpg")
  print('绘图保存成功,默认在当前路径!')

  # 绘图完成后保持窗口不被关闭
  screen = tle.Screen()
  screen.exitonclick()

注意:在将表白.eps文件保存为JPG格式的文件时会抛出如下的错误。

raise OSError("Unable to locate Ghostscript on paths")

这个时候不要着急,当然有解决的办法的,到ghostscript官网下载自己需要的组件就OK了。

Python+Turtle制作独特的表白图

然后,将下载好的gs9561w64.exe可执行应用安装就成了。

Python+Turtle制作独特的表白图

记得安装完成后,路径都是在这个地方,不需要也可以随时卸载。

Python+Turtle制作独特的表白图

最后,将该路径加入到环境变量的path属性中就大功告成啦,重启一下开发工具这样环境变量就会真正的生效了。

Python+Turtle制作独特的表白图

再次提醒,记得配置完环境变量后重启IDE喔!

main()

到此这篇关于Python+Turtle制作独特的表白图的文章就介绍到这了,更多相关Python Turtle表白图内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!

原文链接:https://www.cnblogs.com/lwsbc/p/16187397.html

延伸 · 阅读

精彩推荐
  • PythonPyQt5 matplotlib画图不刷新的解决方案

    PyQt5 matplotlib画图不刷新的解决方案

    这篇文章主要介绍了PyQt5 matplotlib画图不刷新的解决方案,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    程序员大本营6402021-09-17
  • Python如何基于OpenCV&Python实现霍夫变换圆形检测

    如何基于OpenCV&Python实现霍夫变换圆形检测

    最近开始学习opencv,想检测图片上的圆环,发现霍夫变换可以做这样的效果出来,于是尝试用霍夫变换做了下圆环检测,这篇文章主要给大家介绍了基于OpenCV&P...

    ahaofan8612021-12-25
  • Pythonpython爬虫使用正则爬取网站的实现

    python爬虫使用正则爬取网站的实现

    这篇文章主要介绍了python爬虫使用正则爬取网站的实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友...

    渣渣林5312020-08-03
  • PythonPython实现双因素验证2FA的示例代码

    Python实现双因素验证2FA的示例代码

    双因素认证(2FA)作为额外安全层为账号登录添加了第二层身份验证。确保账号持有人是可以访问数字身份的唯-用户。如果不使用双因表认证,企业将承担巨...

    somenzz10592022-07-08
  • Pythonpython 读取DICOM头文件的实例

    python 读取DICOM头文件的实例

    今天小编就为大家分享一篇python 读取DICOM头文件的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧...

    sunyao_1236822021-02-19
  • Python在Tensorflow中实现leakyRelu操作详解(高效)

    在Tensorflow中实现leakyRelu操作详解(高效)

    这篇文章主要介绍了在Tensorflow中实现leakyRelu操作详解(高效),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧 ...

    wm627416282020-07-01
  • Pythonflask入门之表单的实现

    flask入门之表单的实现

    这篇文章主要介绍了flask入门之表单的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    rottengeek9022021-03-18
  • PythonPython 实现二叉查找树的示例代码

    Python 实现二叉查找树的示例代码

    这篇文章主要介绍了Python 实现二叉查找树的示例代码,帮助大家更好的理解和使用python,感兴趣的朋友可以了解下...

    _慕8222021-08-17