【圣诞限定】2022的末尾,送TA一颗圣诞树吧

news2025/1/25 4:58:01

2022年圣诞节,很高兴能遇见你。

一、前言

不知不觉又到年末啦,今年遇到了超级超级棒的人,希望能跟他一起做很多很多事,完成很多很多未完成的心愿。既然是圣诞节限定,那就送他一颗圣诞树吧🎄天天开心,永远幸福!!!

二、简易版圣诞树

height = 7#树叶的层数
num = 1#
for i in range(height):
    print((' ' * (height - i)) + ('*' * num))
    num += 2
print((' ' * height) + '|')
print("Merry Christmas!!!")

 

三、turtle库绘制圣诞树

学习一下用python的turtle库实现绘制一个圣诞树。

以下是turtle库针对画笔的一些命令:

(1)画笔运动的命令
 turtle.forward(a)   向当前画笔方向移动a像素长度
 turtle.backward(a)  向当前画笔相反方向移动a像素长度
 turtle.right(a)     顺时针移动
 aturtle.left(a)     逆时针移动
 aturtle.pendown()   移动时绘制图形
 turtle.goto(x,y)    将画笔移动到坐标为x,y的位置
 turtle.penup()      移动时不绘制图形,提起笔
 turtle.speed(a)     画笔绘制的速度范围
 turtle.circle()     画图,半径为正,表示圆心在画笔的左边画圈
 (2)画笔控制命令
 turtle.pensize(width)   绘制图形的宽度
 turtle.pencolor()       画笔的颜色
 turtle.fillcolor(a)     绘制图形的填充颜色
 turtle.color(a1,a2)     同时设置pencolor=a1,fillcolor=a2
 turtle.filling()        返回当前是否在填充状态
 turtle.begin_fill()     准备开始填充图形
 turtle.end_fill()       填充完成
 turtle.hideturtle()     隐藏箭头显示
 turtle.showturtle()     显示箭头
 (3)全局控制命令
 turtle.clear()   清空turtle窗口,但是turtle的位置和状态不会改变
 turtle.reset()   清空窗口,重置turtle状态为起始位置
 turtle.undo()    撤销上一个turtle动作

 

import turtle as t
from turtle import *
import random as r

def drawlight():    #绘制圣诞树上的彩灯
    if r.randint(0,30) == 0:
        color('tomato')
        circle(6)    #圆的半径
    elif r.randint(0,30) == 1:
        color('orange')
        circle(3)
    elif r.randint(0,30) == 2:
        color('MediumPurple1')
        circle(4)
    else:
        linewidth = 5
        color('dark green')


def drawtree(d,s):    #绘制圣诞树主体
    if d <= 0:  return
    forward(s)
    drawtree(d-1, s * .8)
    right(120)
    drawtree(d-3, s * .5)
    drawlight()
    right(120)
    drawtree(d-3, s * .5)
    right(120)
    backward(s)


def  decoration():    绘制树下的装饰品
    for i in range(200):
        a = 200-400* r.random()
        b = 10 -20* r.random()
        up()
        forward(b)
        left(90)
        forward(a)
        down()
        if  r.randint(0,1) == 0:
            color('tomato')
        else:
            color('wheat')
        circle(2)
        up()
        backward(a)
        right(90)
        backward(b)


def drawsnow():    绘制雪花
    t.hideturtle()    #隐藏画笔的箭头
    t.pensize(2)
    for i in range(200):
        t.pencolor("white")
        t.penup()    #提起画笔
        t.setx(r.randint(-350,350))    #设置x的坐标
        t.sety(r.randint(-100,350))    #设置y的坐标
        t.pendown()    #放下画笔
        dens = 6
        snowsize = r.randint(1,10)
        for j in range(dens):    #绘制*字形雪花
            t.forward(int(snowsize))
            t.backward(int(snowsize))
            t.right(int(360/dens))


n=100.0
t.pensize(10)
speed("fastest")
t.screensize(800,600, "black")    #定义画布大小和背景颜色
left(90)
forward(3 * n)
color("yellow", "yellow")
begin_fill()    #开始填充
left(126)


#画五角星
for i in range(5):
    forward(n/5)
    right(144)
    forward(n/5)
    left(72)

end_fill()    #结束填充
right(126)

color("dark green")
backward(n * 4.8)


#调用画树的函数
drawtree(15 , n)
backward(n/2)
#绘制装饰
decoration()

#写文字

t.color("brown1")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 60, "bold"))


# 调用雪花函数
drawsnow()

t.done()    #收笔

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

开发者百宝箱——DevToys

开发者百宝箱——DevToys 文章目录 简介安装转换类型编码/解码格式化生成器文本处理图片设置参考文献 简介 DevToys 是一个开发人员的工具箱&#xff0c;基于 UWP 开发&#xff0c;免费开源无广告&#xff0c;支持中文&#xff0c;功能有&#xff1a; 转换类型 JSON / YAML…

【C语言进阶】指针的进阶

在初级阶段的《指针》章节已经接触过了&#xff0c;我们知道了指针的概念&#xff1a; 1. 指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 2. 指针的大小是固定的4/8个字节&#xff08;32位平台/64位平台&#xff09;。 3. 指针是有类型&#…

Word处理控件Aspose.Words功能演示:使用 C# 将 PowerPoint 演示文稿转换为 Word 文档

Aspose.Words 是一种高级Word文档处理API&#xff0c;用于执行各种文档管理和操作任务。API支持生成&#xff0c;修改&#xff0c;转换&#xff0c;呈现和打印文档&#xff0c;而无需在跨平台应用程序中直接使用Microsoft Word。此外&#xff0c; Aspose API支持流行文件格式处…

Android自动化打包记录--Jenkins+Docker+WSL2

Android自动化打包记录--JenkinsDockerWSL2前言自动化流程测试环境生产环境自动化原理Windows下安装Ubuntu安装步骤相关error处理error: 0x8007019eerror: 0x800701bc、0x80370102WSL访问WindowsWSL访问内网Ubuntu下Docker内容安装运行HelloWorld拉取镜像镜像和容器命令创建镜像…

你不一定了解MySQL中的Decimal数据类型

一、前言 在此之前笔者写过一篇博客《你说精通MySQL其实很菜jī&#xff08;1&#xff09;&#xff1a;你不一定会的基本技巧或知识点&#xff08;值得一看&#xff09;》&#xff0c;本文内容是从那篇博客截取出来的。MySQL中Decimal数据类型大家经常使用到&#xff0c;但是&a…

从零了解多线程(万字详解)

目录 为什么要引入多线程? 为什么线程更轻? 线程和进程的关系 多线程的弊端 Thread类 用Thread类创建一个线程并启动它 用一段通过多线程体现并发执行的效果 start和run的区别 使用jdl自带的工具包jconsole查看当前java进程中的所有线程 调用栈 注意: jave中创建线…

Duplicate File Finder Pro - 重复文件查找器,给你的 Mac 清理出大量磁盘空间

Duplicate File Finder Pro - 重复文件查找器&#xff0c;给你的 Mac 清理出大量磁盘空间 重复文件查找器 Duplicate File Finder Pro 是一个实用程序&#xff0c;只需3次点击就能在Mac上找到重复的文件。拖放功能和尽可能多的文件夹&#xff0c;你想&#xff0c;然后按下扫描按…

理解Linux中的进程状态

文章目录运行状态阻塞状态挂起状态磁盘睡眠状态暂停状态追踪停止状态僵尸状态死亡状态孤儿状态Linux内核进程状态源代码一台电脑一般只有一个CPU、一个磁盘&#xff08;无论一台电脑有几个CPU、磁盘&#xff0c;数量都是远少于进程的&#xff0c;这里举例用一个&#xff09;。运…

2022年广西食品安全管理员模拟试题及答案

百分百题库提供食品安全管理员考试试题、食品安全管理员考试预测题、食品安全管理员考试真题、食品安全管理员证考试题库等&#xff0c;提供在线做题刷题&#xff0c;在线模拟考试&#xff0c;助你考试轻松过关。 一、单选题 1.&#xff08;重点&#xff09;《上海市集体用餐配…

深度对比MemcacheD 和 Redis,论你不知道的二三事

谈到深度对比MemcacheD 和 Redis&#xff0c;作为老牌程序员首先想到的就是Memcache好一点&#xff0c;毕竟更节省内存。还可以存图片视频之类的&#xff0c;大部分市面上的cache都是MemcacheD。 但是评价一款cache并不能只看这一方面不是~ 数据存储的安全系数 要知道&#…

2023春招面试题:Redis数据库面试题整理

redis是什么&#xff1f;&#xff08;必会&#xff09; Redis 是 C 语言开发的一个开源的&#xff08;遵从 BSD 协议&#xff09;高性能非关系型&#xff08;NoSQL&#xff09;的&#xff08;key-value&#xff09;键值对数据库。可以用作数据库、缓存、消息中间件等。 redis…

STM32F103学习

目录 1、框架了解 2.GPIO &#xff08;1&#xff09;开漏输出与推挽输出 &#xff08;2&#xff09;基本知识了解 HAL库函数&#xff1a; 配置流程&#xff1a; &#xff08;3&#xff09;按键实验&#xff1a;STM32的按键开发基础_哔哩哔哩_bilibili 3、时钟 时钟框图…

力扣(leetcode)经典题目分享第3期——栈和队列

栈和队列一. 选择题1.1 进出栈顺序1.2 循环队列1.3 队列的基本运算1.4 循环队列的有效长度二. OJ练习题2.1 括号匹配问题2.2 用队列实现栈2.3 用栈实现队列2.4 循环队列总结&#xff1a;一. 选择题 1.1 进出栈顺序 若进栈序列为 1,2,3,4 &#xff0c;进栈过程中可以出栈&…

unreal编译源码搭建dedicated server的流水账——但是细

参考视频&#xff1a; B站的视频&#xff1a; https://www.bilibili.com/video/BV1wk4y1m7wz/?spm_id_from333.337.search-card.all.click&vd_sourced33b44674c517c8b7928e8d3ac316b37 YouTube的视频&#xff1a; https://www.youtube.com/watch?vAKiGajA7AXM 和上面的视…

基于STM32CUBEMX驱动多个VL6180X

概述 VL6180X是基于ST FlightSense™专利技术的最新产品。这是一个突破性的技术&#xff0c;实现了独立于目标反射率的绝对距离测量。现有技术通过测量反射光的光量来估算距离&#xff0c;这种方法的最大缺点是被测物体的颜色和表面对测量精度影响很大&#xff0c;而VL6180X则…

云端办公后,协同软件也能轻松做好项目管理

最近很多朋友在后台问我&#xff0c;数字化移动办公环境下如何做好项目管理&#xff0c;但是问题不够聚焦&#xff0c;所以我决定从自己的理解出发&#xff0c;分享一下项目管理的一些心得。需要说明的是&#xff0c;传统项目管理和互联网项目管理存在很大的差异&#xff0c;尤…

MyBatis源码(二)如何执行sql

前言 接着environmentElement获取数据源信息后&#xff0c;同级执行代码的mappersElement。 Mybatis源码&#xff08;三&#xff09;如何操作数据库 MyBatis源码&#xff08;二&#xff09;如何执行sql Mybatis源码&#xff08;一&#xff09;获取数据源 结构小结 分析ma…

Leetcode 2. 两数相加(高精度加法模板)

Leetcode 2. 两数相加 题目 思路 链表从头开始存放数据的个位十位 百位新建一个链表C&#xff0c;将链表A和B每一个相加的结果存放在C中&#xff0c;注意加法的进位 代码 /*** Definition for singly-linked list.* public class ListNode {* int val;* ListNode n…

实力领航|万应智谷云平台成功入选2022中国互联网大会“互联网助力经济社会数字化转型”特色案例

近日&#xff0c;以“发展数字经济 促进数字文明”为主题&#xff0c;由工业和信息化部、深圳市人民政府主办&#xff0c;中国互联网协会、广东省通信管理局、深圳市工业和信息化局等单位承办的2022&#xff08;第二十一届&#xff09;中国互联网大会在深圳国际会展中心召开。开…

【超多代码、超多图解】Node.js一文全解析

目录一、Node.js简介1.1什么是Node.js1.2 Node.js可以做什么1.3 Node.js的安装1.4 Node.js的使用二、模块化处理2.1 什么是模块化2.2 内置模块2.2.1 fs文件系统模块&#xff08;1&#xff09;基本用法&#xff08;2&#xff09;防止动态拼接(3)路径问题2.2.2 path内置模块2.2.3…