时间:2022-12-10 12:10:12 | 栏目:Python代码 | 点击:次
哈喽,在经历了过年相亲这一环节,成了是好事?,不成也是多认识一个人,见见"世面",也可以“开拓”一下眼界,说不定遇到什么奇葩,以后跟朋友也有了茶余饭后的话题。
希望我们在这快餐时代里,都能遇到小火慢炖的粥~
一直觉得turtle是个非常可爱的库,突发奇想,然后想试试传说中的土味表白:用python画一颗小爱心——
Google programming!启动!
确实有很多很多现成的代码,比如[1]:
画出来也很好看:
但左看右看,觉得背后的逻辑,比如forward( )的参数、right( )的参数怎么来的不是很直白,于是用最简单的思路再推了一下:
第一步,考虑从“心尖”的位置开始,先向左上角画一条直线,与y轴的夹角设为45度:
第二步,心形的上方是一个弧形,可以设计成从原先的斜率开始,每前进1单位转1单位角度,画一个半圆:
第三步,右侧基本重复,但调整一下旋转角度,相应的各个参数的关系也很容易推:
OK顺着这个思路,非常简单的代码如下:
import turtle # set a window wn = turtle.Screen() wn.bgcolor("black") wn.screensize(800, 600) # set a pen pen = turtle.Turtle() pen.color("pink") pen.shape("turtle") #画笔形状设成了非常可爱的海龟hh pen.fillcolor("pink") turtle.speed(10) # define functions def curve(): for i in range(180): pen.right(1) pen.forward(2) def heart(): pen.left(135) pen.forward(720/3.14) curve() pen.left(90) curve() pen.forward(720/3.14) def text(): pen.penup() pen.setpos(-50,50) pen.pendown() pen.color("white") pen.write(input("enter the words:"), font = ("Verdana", 30, "bold")) # painting! pen.begin_fill() pen.penup() pen.setpos(0,-150) pen.pendown() heart() pen.end_fill() text() turtle.done()
效果!
今天的分享就到这里,喜欢就点个赞吧!