大家好,我是宁一

代码的魔力之处在于,可以帮我们实现许多奇奇怪怪、有趣的想法。

比如,用Python的Turtle库,可以帮我们在电脑上画出好看的图像。

下面这张樱花图就是用Turtle库实现的。

这不圣诞节快到啦。

那么就用代码来画一棵专属于自己的圣诞树吧。

给大家准备了两棵圣诞树,第二棵可以加上自己的名字和祝福,适合发朋友圈哦~

第一颗圣诞树

Python的Turtle库,可以定义画布大小、笔的颜色粗细、落笔位置、填充颜色等等。

跟我们平时用手画图的方式差不多,第一颗圣诞树的代码有点多。

大家在【喵宁一】公主好恢复“圣诞树”直接获取。

每个球球的位置都是我大半夜一个一个去测试,好不容易才对齐的——

但是其实圣诞树的画法还是有很多规律的。

我们可以用for循环,把各个分叉画出来。

我们将这个方法应用在第二课圣诞树上面。

第二棵圣诞树用递归的方法来解决。

来看看实现方法。

from turtle import *
import random
import timen = 100.0
setup(500, 700, startx=None, starty=None)
# 画笔速度
speed("fastest")
# 背景颜色
screensize(bg='cornflowerblue')
# 画笔颜色,填充颜色
color("dark green")
fillcolor('yellow')
pensize(10)
# 画笔方向,向上
left(90)
# 每笔像素
forward(2.8*n)  # 随机生成颜色
def get_color():color_arr = ['light coral', 'tomato', 'orange red', 'red','brown','firebrick','salmon', 'dark salmon','light salmon', 'orange', 'chocolate','yellow','gold', 'goldenrod', 'dark goldenrod', 'rosy brown','indian red', 'saddle brown', 'dark orange','coral',  'hot pink', 'deep pink','pink', 'light pink','pale violet red', 'maroon', 'medium violet red', 'violet red','medium orchid']index = random.randint(0,len(color_arr)) - 1return color_arr[index]# 画雪花
def snow(snow_count):hideturtle()pensize(2)for i in range(snow_count):pencolor("white")pu()goto(random.randint(-180, 180), random.randint(-180, 340))pd()dens = random.randint(10, 12)snowsize = random.randint(6, 10)for _ in range(dens):forward(snowsize)  # 向当前画笔方向移动snowsize像素长度backward(snowsize)  # 向当前画笔相反方向移动snowsize像素长度right(360 / dens)  # 顺时针移动360 / dens度# 飘落名字
def name(name_count):hideturtle()pensize(2)for i in range(name_count):pencolor(get_color())pu()goto(random.randint(-220, 220), random.randint(-300, 340))pd()# 这里可以换成自己的名字、自己想要的词语name_arr = ['猫','宁一','平安','喜乐']namesize = random.randint(10, 15)index = random.randint(0,len(name_arr)) - 1dens = random.randint(10, 12)write(name_arr[index], align="right", font=("Arial", namesize, "bold"))# 画星星
def koc(size):pensize(3)pencolor(get_color())begin_fill()fillcolor('yellow')for i in range(5):left(72)fd(size)right(144)fd(size)end_fill()# 画树干
backward(n*4.8)
def tree(d, s):if d <= 0: returnif d == 1:koc(5)pensize(d)forward(s)tree(d-1, s*.81)right(120)tree(d-3, s*.5)right(120)tree(d-3, s*.5)right(120)backward(s)color("dark green")# 执行函数
tree(14, n)
snow(40)
name(15)# 写Merry Christmas文字
penup()
seth(0)
goto(190, -305)
pendown()
color("red")
write("Merry Christmas", align="right", font=("Arial", 50, "bold"))done()

复制上面的代码,在电脑上保存为一个tree.py文件,最后在命令行运行文件就可以看到效果啦。

python tree.py

最后祝大家,不仅圣诞快乐,以后的每一天都平安喜乐~~

用代码画两棵圣诞树送给你【附详细代码】相关推荐

  1. python圣诞树代码成品图片动态_节日快乐! Python画一棵圣诞树送给你

    本文实例为大家分享了Python画圣诞树的具体代码,供大家参考,具体内容如下 源代码 from turtle import * import random import time #from unit ...

  2. 用python画圣诞树图片-节日快乐! Python画一棵圣诞树送给你

    本文实例为大家分享了Python画圣诞树的具体代码,供大家参考,具体内容如下 源代码 from turtle import * import random import time #from unit ...

  3. python节日快乐_节日快乐! Python画一棵圣诞树送给你

    本文实例为大家分享了Python画圣诞树的具体代码,供大家参考,具体内容如下 源代码 from turtle import * import random import time #from unit ...

  4. python代码判断两棵二叉树是否相同

    python代码判断两棵二叉树是否相同 给定两个二叉树,编写一个函数来校验它们是否相同.如果两个树在结构上相同,并且结点具有相同的值,则认为它们是相同的. 判断两个二叉树是否是相同的,相同的依据是 二 ...

  5. 运用简单C语言代码打印一棵圣诞树

    圣诞节来了,相信大家都想拥有一棵独特的圣诞树,下面由我为大家C语言代码打印一棵圣诞树吧! #include <stdio.h> int main() {int i, j, n, b, s; ...

  6. 用html实现抽奖大转盘,【项目实战】用CSS实现一个抽奖转盘(附详细代码+思路)...

    原标题:[项目实战]用CSS实现一个抽奖转盘(附详细代码+思路) 效果 基本是用CSS实现的,没有用图片,加一丢丢JS. 完全没有考虑兼容性. 首先画一个转盘 < htmllang= " ...

  7. c语言二分法_14个经典C语言算法你就不看一眼?(附详细代码)

    今天,给大家讲一讲,单片机常用的14个C语言算法(附详细代码)哟! 一.计数.求和.求阶乘等简单算法 此类问题都要使用循环,要注意根据问题确定循环变量的初值.终值或结束条件,更要注意用来表示计数.和. ...

  8. 玩转树莓派---详解树莓派的系统烧录,基础使用及基于树莓派制作手势控制的小车(附详细代码及演示效果)

    目录 一.写在前面 二.系统实现: Author:qyan.li Date:2022.6.10 Topic:详解树莓派的使用及基于树莓派制作手势控制的小车 Reference:如何给树莓派安装操作系统 ...

  9. Web前端:HTML最强总结 附详细代码

    Web前端基础: Web前端:HTML最强总结 附详细代码 Web前端:CSS最强总结 附详细代码 Web前端:JavaScript最强总结 附详细代码 Web前端工具: Web前端: JQuery最 ...

最新文章

  1. C++智能指针:weak_ptr实现详解
  2. JVM中的垃圾收集器
  3. 分布式架构的对比-EMC VMAX
  4. Nat. Commun. | 识别药物靶点的贝叶斯机器学习方法
  5. Linux: grep命令
  6. python怎么学最快-零基础怎么样才能学好Python?Python入门必看
  7. ajax 遍历select 下拉框
  8. 对联一副,勉励奋斗在网络事业上的兄弟们
  9. Java中 List、Set、Map遍历方式以及性能比较
  10. Maven使用archetype迅速生成项目骨架
  11. 【正则表达式系列】零宽断言
  12. 手机浏览器被强制跳转_Azure front door 强制http redirect to https
  13. JasperReport 导出PDF不能加载
  14. 公务员Python培训
  15. 低版本VC2010打开高版本VC2012的方法
  16. 如何进行时间管理?31页时间管理技能PPT教你
  17. Spark实现jieba中文分词(scala)
  18. 芯片到uboot启动流程 :ROM → MLO(SPL)→ uboot.img
  19. BugKu CTF(杂项篇MISC)—啊哒
  20. 有限自动机和右线性文法笔记

热门文章

  1. PCA9685模块使用(Arduino和STM32)
  2. 敏感词过滤工具类(DFA算法匹配字典)
  3. C盘下各个文件夹简介
  4. nginx 301永久定向
  5. 锁定计算机使用时间,易通电脑锁多用户控制版
  6. 前端js判断字符串是否是数组
  7. RegularExpressionValidator
  8. 从0到1腾讯云服务器使用教程(新手入门)
  9. Mysql8.0 添加用户和权限
  10. QLExpress 系列入门教程-05-QLExpress 集合相关