设为首页 加入收藏

TOP

圣诞节快到了,教大家用Python画一个简单的圣诞树和烟花,送给那个她(一)
2023-07-25 21:26:43 】 浏览:61
Tags:Python 简单的 那个她

这不是圣诞节快到了,准备让让女朋友开心开心,也算是亲手做的,稍稍花了点心思。

话不多说,咱们直接来展示吧,学会了赶紧画给你的那个她吧!

本文分为两个大块,我们先来试试画圣诞树。

圣诞树

效果展示

代码展示

导入模块

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

 

圣诞树细节以及画布大小

画布大小,背景颜色都可以改,我之前把黑色背景换成粉色的,看着也还行。

n = 100.0

speed("fastest")
screensize(bg='black')
left(90)
forward(3 * n)
color("orange", "yellow")
begin_fill()
left(126)

for i in range(5):
    forward(n / 5)
    right(144)
    forward(n / 5)
    left(72)
end_fill()
right(126)


def drawlight():
    if r.randint(0, 30) == 0:
        color('tomato')
        circle(6)
    elif r.randint(0, 30) == 1:
        color('orange')
        circle(3)
    else:
        color('dark green')


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


def tree(d, s):
    if d <= 0: return
    forward(s)
    tree(d - 1, s * .8)
    right(120)
    tree(d - 3, s * .5)
    drawlight()  # 同时画小彩灯
    right(120)
    tree(d - 3, s * .5)
    right(120)
    backward(s)


tree(15, n)
backward(n / 2)

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)

 

写字

这里的颜色 文字 自己都可以改哈 (这个应该不用教吧哈哈)

t.color("dark red", "red")
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))  

 

雪花

def drawsnow():
    t.ht()  
    t.pensize(2)  
    for i in range(200): 
        t.pencolor("white")  
        t.pu()  
        t.setx(r.randint(-350, 350))  
        t.sety(r.randint(-100, 350))  
        t.pd()  
        dens = 6  
        snowsize = r.randint(1, 10)  
        for j in range(dens):  

            t.fd(int(snowsize))
            t.backward(int(snowsize))

            t.right(int(360 / dens))  
drawsnow()  
t.done()  

 

 

圣诞树上加烟花

效果展示



在这里插入图片描述

代码展示

# 兄弟们学习python,有时候不知道怎么学,从哪里开始学。掌握了基本的一些语法或者做了两个案例后,不知道下一步怎么走,不知道如何去学习更加高深的知识。
# 那么对于这些大兄弟们,我准备了大量的免费视频教程,PDF电子书籍,以及源代码!
# 还会有大佬解答!
# 都在这个群里了 872937351
# 欢迎加入,一起讨论 一起学习!

 

导入模块

import turtle as t
import random
import threading
import time
import tkinter as tk
import math
from math import cos, sin, atan, sqrt
import numpy as np

 

背景颜色

t.screensize(bg='black') 

 

心函数

def loving_heart(r):
    l = 2 * r
    t.left(45)
    t.forward(l)
    t.circle(r, 180)
    t.right(90)
    t.circle(r, 180)
    t.forward(l)

 

星函数

def loving_star(n):
    for i in range(5):
        t.forward(n / 5)
        t.right(144)
        t.forward(n / 5)
        t.left(72)

 

树函数(递归)

def tree(d, s):
    if d <= 0:
        return
    t.width(5)
    t.forward(s)
    tree(d - 1, s * .8)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    tree(d - 3, s * .5)
    t.right(120)
    t.backward(s)  # 回退函数

 

画爱心

t.penup()
t.goto(0, 200)  # 设置起点位置
t.pendown()
t.pencolor('red')  # 设置画笔颜色
t.color('red')
t.begin_fill()  # 对图形进行填充
loving_heart(20)  # 执行画爱心函数
t.end_fill()

 

画树

n = 100
t.speed(0)
# t.Turtle().screen.delay(0)
t.right(225)
t.color("dark green")
t.backward(n * 4.8)
tree(15, n)
t.backward(n / 5)

 

绘制落叶

for i in range(100):
    a = 100 - 200 * random.random()
    b = 10 - 20 * random.random()
    t.speed(0)
    t.up()
    t.forward(b)
    t.left(90)
    t.forward(a)
    t.down()
    if random.randint(1, 2) == 1:
        t.color('tomato')
    else:
        t.color('wheat')
    t.circle(4)
    t.up()
    t.backward(a)
    t.right(90)
    t.backward(b)

 

绘制雪花

def dra
首页 上一页 1 2 3 下一页 尾页 1/3/3
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇python基础-模块和包 下一篇PEG parser——为什么python不再..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目