程序猿520python表白利器——丘比特之箭

        伙计们,快到520咯,身为程序猿的你,准备好给自己心动的女神表白嘛!除了必备的鲜花、礼物,不妨也试试用python编程画一只丘比特之箭给独一无二的女友吧!!!

       首先定义好以下函数来进行坐标轴的定义,用于绘制爱心的大圆的函数定义, 用于绘制爱心的小圆的函数定义,用于定义线的速度及粗细的函数定义。

    def go_to(self, x, y):       #定义坐标轴
        turtle.up()
        turtle.goto(x, y)
        turtle.down()
    def big_circle(self, size):  # 定义函数用于绘制爱心的大圆
        turtle.speed(1)
        for i in range(180):
            turtle.forward(size)
            turtle.right(0.3)
    def small_circle(self, size):  # 定义函数用于绘制爱心的小圆
        turtle.speed(1)
        for i in range(240):
            turtle.forward(size)
            turtle.right(0.786)
    def line(self, size):          #定义函数用于定义线的速度及粗细
        turtle.speed(1000)
        turtle.forward(51 * size)

        用函数分别定义好两颗爱心的坐标、穿过两颗爱心的直线方法、丘比特之箭箭头的方法。

    def heart(self, x, y, size):
        self.go_to(x, y)
        turtle.left(150)
        turtle.begin_fill()
        self.line(size)
        self.big_circle(size)
        self.small_circle(size)
        turtle.left(120)
        self.small_circle(size)
        self.big_circle(size)
        self.line(size)
        turtle.end_fill()
    def arrow(self):
        turtle.pensize(10)
        turtle.setheading(0)
        self.go_to(-400, 0)
        turtle.left(15)
        turtle.forward(150)
        self.go_to(339, 178)
        turtle.forward(150)
    def arrow_head(self):
        turtle.pensize(1)
        turtle.speed(0)
        turtle.color('pink', 'pink')
        turtle.begin_fill()
        turtle.left(120)
        turtle.forward(20)
        turtle.right(150)
        turtle.forward(35)
        turtle.right(120)
        turtle.forward(35)
        turtle.right(150)
        turtle.forward(20)
        turtle.end_fill()

        集合函数到main()进行输出:

def main():
    turtle.pensize(2)
    turtle.color('pink', 'pink')
    my_heart = MyLove()
    my_heart.heart(200, 0, 1)  # 画出第一颗心,前面两个参数控制心的位置,函数最后一个参数可控制心的大小
    turtle.setheading(0)  # 使画笔的方向朝向x轴正方向
    my_heart.heart(-80, -100, 1.5)  # 画出第二颗心
    my_heart.arrow()  # 画出穿过两颗心的直线
    my_heart.arrow_head()  # 画出箭的箭头
    my_heart.go_to(320, -280)
    turtle.write("@Darren洋", move=True, align="right", font=("黑体", 28, "normal"))
    turtle.done()
if __name__ == '__main__':
    main()

完整代码如下:

import turtle
class MyLove(object):
    def go_to(self, x, y):
        turtle.up()
        turtle.goto(x, y)
        turtle.down()
    def big_circle(self, size):  
        turtle.speed(1)
        for i in range(180):
            turtle.forward(size)
            turtle.right(0.3)
    def small_circle(self, size):  
        turtle.speed(1)
        for i in range(240):
            turtle.forward(size)
            turtle.right(0.786)
    def line(self, size):
        turtle.speed(1000)
        turtle.forward(51 * size)
    def heart(self, x, y, size):
        self.go_to(x, y)
        turtle.left(150)
        turtle.begin_fill()
        self.line(size)
        self.big_circle(size)
        self.small_circle(size)
        turtle.left(120)
        self.small_circle(size)
        self.big_circle(size)
        self.line(size)
        turtle.end_fill()
    def arrow(self):
        turtle.pensize(10)
        turtle.setheading(0)
        self.go_to(-400, 0)
        turtle.left(15)
        turtle.forward(150)
        self.go_to(339, 178)
        turtle.forward(150)
    def arrow_head(self):
        turtle.pensize(1)
        turtle.speed(0)
        turtle.color('pink', 'pink')
        turtle.begin_fill()
        turtle.left(120)
        turtle.forward(20)
        turtle.right(150)
        turtle.forward(35)
        turtle.right(120)
        turtle.forward(35)
        turtle.right(150)
        turtle.forward(20)
        turtle.end_fill()
def main():
    turtle.pensize(2)
    turtle.color('pink', 'pink')
    my_heart = MyLove()
    my_heart.heart(200, 0, 1)  
    turtle.setheading(0)  
    my_heart.heart(-80, -100, 1.5)  
    my_heart.arrow()  
    my_heart.arrow_head()  
    my_heart.go_to(320, -280)
    turtle.write("@Darren洋", move=True, align="right", font=("黑体", 28, "normal"))
    turtle.done()
if __name__ == '__main__':
    main()

效果图如下:

猜你喜欢

转载自blog.csdn.net/qq_63010259/article/details/130570017