大家好,本文将围绕python中用turtle画一个圆形展开说明,用python的turtle画炫酷的图是一个很多人都想弄明白的事情,想搞清楚用pythonturtle画简单的图案需要先了解以下几个事情。
火车头采集ai伪原创插件截图:
先放最终代码:
import turtle as t
from PIL import Image #需要安装
import wordcloud #需要安装
import jieba #需要安装
import numpy #需要安装
from os import remove
#画心形
t.penup()
t.goto(0,-200)
t.pendown()
t.begin_fill()
t.color('red','pink')
t.left(135)
t.forward(300)
t.circle(-150,180) #-150为半径,默认为逆时针画圆,-150可使其顺时针画圆。180为圆心角
t.left(90)
t.circle(-150,180)
t.forward(300)
t.end_fill()
t.hideturtle()
ts = t.getscreen()
ts.getcanvas().post(file='love.eps') #在当前目录保存为work.eps文件
t.bye() #关闭turtle窗口
#画出的心形文件格式转化
with open('love.eps','rb') as file: #二进制格式打开
img=Image.open(file)
img.save('love.png') #另存为png格式,需要安装Ghost
remove('love.eps') #删除eps格式文件
#制作词云图
mask = numpy.array(Image.open('love.png')) #将背景转化为多维数组,open默认为r模式
w=wordcloud.WordCloud(background_color='white',mask=mask,width=1000,height=860,font_path='C:\Windows\Fonts\FZSTK.TTF')
with open('Dream It Possible.txt', encoding='utf-8') as fp:
content = fp.read()
words = jieba.lcut(content) #分词
w.generate(' '.join(words)) #用空格分割
w.to_file('love_wordclode.jpg')
remove('love.png') #删除png蒙版
一:安装wordclode
参考:
python3安装wordcloud库出错及其解决办法(使用命令行安装)_帆-CSDN博客_wordcloud库安装失败
正常情况下只要在cmd输入 pip install wordcloud 即可,但我的电脑无法自动安装,查阅资料后手动安装过程如下
1.在https://www.lfd.uci.edu/~gohlke/pythonlibs/#wordcloud下载wordcloud.whl
我的python环境是3.8,操作系统64位,所以选择 wordcloud-1.8.1-cp38-cp38-win_amd64.whl
2.执行 pip install wheel 来安装wheel
3.执行pip install + wordcloud.whl 的绝对路径,
如pip install C:\Users\Grace\Desktop\wordcloud-1.8.1-cp38-cp38-win_amd64.whl
成功安装如下
二:安装其他库
cmd执行以下命令即可
pip install pillow
pip install jieba
pip install numpy
三:编写程序
老师的要求是使用turtle库画出爱心,再用词云填充Python中的所有运算符号。
鉴于没有找到直接用词云填充turtle所绘制图案的资料,我决定先使用turtle画出心形,在导出为文件,最后将导出的文件作为词云的蒙版
1.画出心形并导出为文件:
import turtle as t
t.penup()
t.goto(0,-200)
t.pendown()
t.begin_fill()
t.color('red','pink')
t.left(135)
t.forward(300)
t.circle(-150,180) #-150为半径,默认为逆时针画圆,-150可使其顺时针画圆。180为圆心角
t.left(90)
t.circle(-150,180)
t.forward(300)
t.end_fill()
t.hideturtle()
ts = t.getscreen()
ts.getcanvas().post(file='love.eps') #在当前目录保存为work.eps文件
t.bye() #关闭turtle窗口
另一种心形画法:
import turtle as tu
import math as m
tu.color('red','pink')
tu.penup()
tu.setposition(0,100)
tu.pendown()
tu.begin_fill()
def d2r(x: int):
return x / 180 * m.pi
'''
for t in range(360):
y=100*(2*m.cos(t/360*2*m.pi)-m.cos(t/360*4*m.pi))
x=100*(2*m.sin(t/360*2*m.pi)-m.sin(t/360*4*m.pi))
tu.goto(x,y)
'''
for t in range(360):
y=100*(2*m.cos(d2r(t))-m.cos(d2r(2*t)))
x=100*(2*m.sin(d2r(t))-m.sin(d2r(2*t)))
tu.goto(x,y)
tu.end_fill()
2.更改图片格式
from PIL import Image
from os import remove
with open('love.eps','rb') as file: #二进制格式打开
img=Image.open(file)
img.save('love.png') #另存为png格式,需要安装Ghost
remove('love.eps') #删除eps格式文件
参考
turtle库只能导出为eps格式,而词云的蒙版不支持eps格式,所以需要把eps格式进行转换。
使用的是PIL库的Image,但是在安装好使用时会出现报错:OSError: Unable to locate Ghost on paths
经过百度查找,参考上面链接的文章,需要安装Ghost并添加环境变量。
首先在官网Ghost : Downloads下载自己电脑对应的安装包,下载好后点击安装,记好安装位置。我的默认为C:\Program Files\gs\gs9.55.0。在安装好之后,添加环境变量。
1.右击此电脑——属性——高级系统设置——环境变量
2.双击path,点击新建,将安装位置的bin目录添加为环境变量,如C:\Program Files\gs\gs9.55.0\bin。记得点击确定保存
3.重启IDLE或命令行,代码可正常运行
3.制作词云
from PIL import Image
import wordcloud
import jieba
import numpy
from os import remove
mask = numpy.array(Image.open('love.png')) #将背景转化为多维数组才能在词云中使用,open默认为r模式
w=wordcloud.WordCloud(background_color='white',mask=mask,width=1000,height=860,font_path='C:\Windows\Fonts\FZSTK.TTF')
with open('Dream It Possible.txt', encoding='utf-8') as fp:
content = fp.read()
words = jieba.lcut(content) #分词
w.generate(' '.join(words)) #用空格分割
w.to_file('love_wordclode.jpg')
remove('love.png') #删除png蒙版