那些年,我们画过的圣诞树

Posted 赵卓不凡

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了那些年,我们画过的圣诞树相关的知识,希望对你有一定的参考价值。

1 引言

又到了让人开心的周末啦,细细一算,还有一周马上就圣诞节啦!

各位小伙伴们是不是都蠢蠢欲动啦,希望大家圣诞节都收获美美的故事呀!

今天我们来教大家怎么使用Python画圣诞树。。。

2 圣诞树黑白版本

初级版本当然就是黑白字符简易效果啦,代码如下:

def demo1():
    height = 5
    stars = 1
    for i in range(height):
        print((' ' * (height - i)) + ('*' * stars))
        stars += 2
    print((' ' * height) + '|')

if __name__ == "__main__":
    demo1()

运行效果如下:

短小精致的字符效果版圣诞树气质一下子就上来了。。。

3 海龟绘图

哈哈哈,看到黑白版圣诞树,是不是有种被欺骗的感觉,和我们想象的彩色世界是不一样滴。
好嘛,满足你的需求,我们接着使用turtle包来实现彩色版圣诞树。

turtle包本身是一个绘图库,但是配合Python代码,就可以绘制各种复杂的图形。

很多同学不太熟悉turtle(海龟绘图)包,我们来看一段绘制长方形的代码,来对其进行直观的认识。

# 导入turtle包的所有内容:
from turtle import *
# 设置笔刷宽度:
width(4)
# 前进:
forward(200)
# 右转90度:
right(90)
# 笔刷颜色:
pencolor('red')
forward(100)
right(90)
pencolor('green')
forward(200)
right(90)
pencolor('blue')
forward(100)
right(90)
# 调用done()使得窗口等待被关闭,否则将立刻关闭窗口:
done()

在命令行运行上述代码,会自动弹出一个绘图窗口,然后绘制出一个长方形:


从上述代码可以看出,海龟绘图就是指挥海龟前进、转向,海龟移动的轨迹就是绘制的线条。要绘制一个长方形,只需要让海龟前进、右转90度,反复4次。

调用width()函数可以设置笔刷宽度,调用pencolor()函数可以设置颜色。更多操作请参考turtle库的说明。

绘图完成后,记得调用done()函数,让窗口进入消息循环,等待被关闭。否则,由于Python进程会立刻结束,将导致窗口被立刻关闭。

4 圣诞树彩色版本

来了,再简单介绍玩海龟画图的基本操作之后,我们来画我们彩色版的圣诞树,代码如下:


def demo2():
    screen = turtle.Screen()
    screen.setup(375, 700)
    circle = turtle.Turtle()
    circle.shape('circle')
    circle.color('red')
    circle.speed('fastest')
    circle.up()

    square = turtle.Turtle()
    square.shape('square')
    square.color('green')
    square.speed('fastest')
    square.up()

    circle.goto(0, 280)
    circle.stamp()

    k = 0
    for i in range(1, 13):
        y = 30 * i
        for j in range(i - k):
            x = 30 * j
            square.goto(x, -y + 280)
            square.stamp()
            square.goto(-x, -y + 280)
            square.stamp()

        if i % 4 == 0:
            x = 30 * (j + 1)
            circle.color('red')
            circle.goto(-x, -y + 280)
            circle.stamp()
            circle.goto(x, -y + 280)
            circle.stamp()
            k += 3

        if i % 4 == 3:
            x = 30 * (j + 1)
            circle.color('yellow')
            circle.goto(-x, -y + 280)
            circle.stamp()
            circle.goto(x, -y + 280)
            circle.stamp()

    square.color('brown')
    for i in range(13, 17):
        y = 30 * i
        for j in range(2):
            x = 30 * j
            square.goto(x, -y + 280)
            square.stamp()
            square.goto(-x, -y + 280)
            square.stamp()

    turtle.done()

运行结果如下:

5 总结

本文实现了利用Python分别绘制黑白版圣诞树和彩色版圣诞树效果,并给出了完整代码实例。

您学废了吗?

6 参考

链接一
链接二


关注公众号《AI算法之道》,获取更多AI算法资讯。

关注公众号,后台回复圣诞树,即可获取源代码。

以上是关于那些年,我们画过的圣诞树的主要内容,如果未能解决你的问题,请参考以下文章

那些年,我们一起写过的“单例模式”

那些年,我们一起写过的“单例模式”

那些年,我们一起踩过的3个spring事务的大坑

那些年,我们追过的java8

那些年我们“投(shua)”过的票

那些年我们一起追过的技术和开源软件