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

news/2024/5/2 12:18:18/文章来源:https://blog.csdn.net/shine_a/article/details/128200508

大家好,我是宁一

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

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

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

这不圣诞节快到啦。

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

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

第一颗圣诞树

Merry Christmas

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

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

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_231291.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

jsp servlet mysql实现的二手车汽车管理系统项目源码附带视频指导运行教程

今天给大家演示一下由jsp servlet mysql实现的一款简单的二手车汽车管理系统&#xff0c;系统设计采用了mvc分层的模式&#xff0c;结构非常清晰&#xff0c;功能虽简单&#xff0c;但是把所有可能用到的功能都实现了&#xff0c;往上面添加功能很简单&#xff0c;直接复制代码…

计算机网络学习笔记(Ⅲ):数据链路层

目录 1 数据链路层概述 1.1 基本概念 1.2 主要功能 2 封装成帧和透明传输 2.1 封装成帧 2.2 透明传输 1.字符计数法 2.字符填充法 3.零比特填充法 4.违规编码法 3 差错控制 3.1 差错 3.1 检错编码 1.奇偶校验码 2.CRC循环冗余码 3.2 纠错编码 1.确定校验码位数…

docker安装nginx代理nacos2.1.2版本集群

目录 安装docker最新版本 创建一个docker network&#xff0c;使之固定docker局域ip docker安装mysql主从 配置挂载的my.cnf配置文件 进入mysql主数据库容器命令 登录主数据库创建用于从数据连接主数据的账号密码 输入show master status;查看master数据库状态 在从数据库…

关于JVM:内容以及流程释义

对于JVM、GC、类加载&#xff0c;很多人摸不清楚头绪&#xff0c;不知道他们之间的关系。误以为GC和类加载还有JVM区分统称垃圾回收&#xff0c;实则他们包含的东西很多&#xff0c;很细&#xff0c;完整的了解正个JVM的加载过程&#xff0c;就需要全面理解这些东西。 我认为的…

如何在 Windows 10 上启用和设置 BitLocker 加密

启用和设置 BitLocker 加密 通过控制面板启用 BitLocker通过命令提示符启用 BitLockerBitlocker 可以使用控制面板中的图形界面或在命令提示符中执行一些命令来启用。在 Windows 10 上启用 Bitlocker 非常简单,但用户通常更喜欢通过控制面板而不是命令提示符来管理 Bitlocker …

Java数据结构与Java算法学习Day05---二叉树(简略笔记记录)

目录 一、二叉树 79 1.1树的基本定义79 1.2数的相关术语 80 1.3二叉树的基本定义 81 1.4二叉查找树的创建 82 1.4.1二叉树查找树创建---插入方法&#xff08;put&#xff09; 83 1.4.2二叉树查找树创建---获取方法&#xff08;get&#xff09;84 1.4.3二叉树查找树创建…

【测试沉思录】23. 如何实现基于场景的接口自动化测试用例?

作者&#xff1a;陈爱娇 编辑&#xff1a;毕小烦 自动化本身是为了提高工作效率&#xff0c;不论选择何种框架&#xff0c;何种开发语言&#xff0c;我们最终想实现的效果&#xff0c;就是让大家用最少的代码&#xff0c;最小的投入&#xff0c;完成自动化测试的工作。 基于这…

K-Means++代码实现

K-Means代码实现 数据集 https://download.csdn.net/download/qq_43629083/87246495 import pandas as pd import numpy as np import random import math %matplotlib inline from matplotlib import pyplot as plt# 按文件名读取整个文件 data pd.read_csv(data.csv)class…

学编程:Python入门考级必备[11]

目录 1.查找字符串 2.字符串的格式化 3.字符串的转义字符 \ \" 4. 修改字符串 5.字符串连接与分割 附件代码&#xff1a; 炼 知识模块(11) 名符其实--字符串 1.查找字符串 # 1.1用 in 函数 a aa in acacacacaabaac print(a) # 1.2 用index 找不到就报错 b h…

民办二本程序员阿里、百度、平安等五厂面经,5 份 offer(含真题)

昨天小休&#xff0c;一位高中同学联系了我&#xff0c;说是要请我吃饭&#xff0c;有这种好事&#xff0c;我当然是毫不犹豫的答应了啦&#xff01; 等等...会不会是找我借钱的&#xff1f; 好慌&#xff0c;怎么办&#xff1f;已经答应过去了。 在后面的交谈中&#xff0c;…

Odoo丨如何在明细行中添加复选框?

最近&#xff0c;在项目实际业务中遇到需要对明细订单添加复选框和按钮进行操作的需求。 起初在拿到需求时&#xff0c;我联想到Odoo默认tree视图是有复选框和操作按钮的功能&#xff0c;于是查看了源码&#xff0c;确认了这个想法。 因为这个是属于字段中one2many 关系属性来…

三车道交通流元胞自动机研究(matlab代码实现)

&#x1f468;‍&#x1f393;个人主页&#xff1a;研学社的博客 &#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜…

中国电信移动物联网发展成果与创新实践 ,干货满满

近日&#xff0c;首届移动物联网大会&#xff08;2022&#xff09;&#xff08;以下简称“大会”&#xff09;在江苏省无锡市举办。本次大会由工信部指导&#xff0c;中国信息通信研究院&#xff08;以下简称“中国信通院”&#xff09;、中国通信学会、无锡市人民政府、人民邮…

大数据学习:进程管理

文章目录一、进程ID&#xff08;PID&#xff09;二、查看进程1、进程查看命令-ps&#xff08;1&#xff09;命令作用&#xff08;2&#xff09;参数说明&#xff08;3&#xff09;操作案例2、Linux进程状态3、观察进程变化命令 -top&#xff08;1&#xff09;参数选项&#xff…

超声功率放大器在MEMS超声测试中的应用

MEMS&#xff08;微机电系统&#xff09;技术的不断发展&#xff0c;目前已经广泛应用在生物、航空、医学、航天等多领域。MEMS传感器即微机电系统&#xff08;Micro-electroMechanicalSystems&#xff09;&#xff0c;是指精密机械系统和微电子电路技术结合发展出来的一项工程…

【正点原子FPGA连载】第二十八章 以太网ARP测试实验 摘自【正点原子】DFZU2EG/4EV MPSoC 之FPGA开发指南V1.0

1&#xff09;实验平台&#xff1a;正点原子MPSoC开发板 2&#xff09;平台购买地址&#xff1a;https://detail.tmall.com/item.htm?id692450874670 3&#xff09;全套实验源码手册视频下载地址&#xff1a; http://www.openedv.com/thread-340252-1-1.html 第二十八章 以太…

【C++11多线程】线程同步之线程互斥:mutex、lock_guard

文章目录1.mutex2.锁双重判断3.lock_guard4.unique_lockunique_lock的构造函数1.mutex 头文件 #include <mutex> mutex 是一个类&#xff0c;其源码如下图所示。 互斥锁其实就是一个类对象&#xff0c;多个线程尝试用成员函数 lock() 来加锁&#xff0c;只有一个线程能…

自定义HandlerMethodArgumentResolver如何注册到springmvc框架里的

目录 1.DEBUG 注册代码 1.1 WebMvcConfigurerComposite 1.2 DelegatingWebMvcConfiguration 1.3 AutowiredAnnotationBeanPostProcessor 2.DEBUG调用代码 2.1 this.argumentResolvers 日常工作开发中&#xff0c;总有一些参数&#xff0c;在未传参数时&#xff0c;需要自定…

Web3中文|马斯克也疯狂?网红AI “ChatGPT”有多火?

一个名为“ChatGPT”的网红AI竟写出了毁灭人类的计划书。 计划书的步骤详细到入侵各国计算机系统、控制武器、破坏通讯、交通系统等等。和电影里的情节一模一样&#xff0c;甚至ChatGPT还给出了相应的Python代码。 诱导ChatGPT写下该计划的是一位名为扎克德纳姆&#xff08;Z…

计算机网络-网络层:IP协议

目录 一、IP协议格式 二、IP地址管理 1.动态地址分配&组建私网 1.1 动态地址分配DHCP 1.2 NAT技术组建私网 2. 早期网络划分方式 3. 当前网络划分方式CIDR方案 4. 特殊IP地址 5. 公网与私网&#xff08;外网与内网&#xff09; 6. 路由选择 网络层&#xff1a;负…