想学Python却觉得枯燥?用最简单的三角形循环,就能拼出造型规整的经典圣诞树。从上到下三角形由小到大层层堆叠,自然形成上尖下宽的标准锥形,搭配金色顶星、彩色装饰灯,零基础复制代码就能出效果。
一、绘图核心思路
整棵圣诞树完全依靠等边三角形堆叠成型:
1. 顶层三角形尺寸最小,越往下每层三角形边长递增
2. 所有三角形沿画布中轴线居中对齐,垂直向下依次摆放
3. 多层三角叠加后天然形成圣诞树圆锥轮廓,结构清晰直观
4. 搭配棕色树干、顶端五角星、随机彩灯完成装饰

二、完整可运行源码
import turtle
import random
# 画布基础配置
pen = turtle.Turtle()
win = turtle.Screen()
win.bgcolor("black")
win.title("三角堆叠圣诞树")
pen.speed(0)
pen.hideturtle()
lamp_color = ["red", "gold", "cyan", "pink", "lime", "white"]
# 定义绘制等边三角形(圣诞树单层层叶)
def draw_tri(size):
pen.fillcolor("darkgreen")
pen.begin_fill()
for _ in range(3):
pen.forward(size)
pen.left(120)
pen.end_fill()
# 从上至下逐层绘制三角形,尺寸不断变大
layer_size = [50, 70, 90, 110, 130]
y_pos = 180
for s in layer_size:
pen.penup()
pen.goto(-s / 2, y_pos)
pen.pendown()
draw_tri(s)
y_pos -= 45
# 绘制棕色树干
pen.penup()
pen.goto(-15, y_pos)
pen.pendown()
pen.fillcolor("saddlebrown")
pen.begin_fill()
pen.forward(30)
pen.left(90)
pen.forward(60)
pen.left(90)
pen.forward(30)
pen.left(90)
pen.forward(60)
pen.end_fill()
# 顶部金色五角星
pen.penup()
pen.goto(0, 180)
pen.setheading(144)
pen.color("gold")
pen.begin_fill()
for _ in range(5):
pen.forward(20)
pen.right(144)
pen.end_fill()
# 随机点缀彩灯
def add_decor():
pen.penup()
x = random.randint(-120, 120)
y = random.randint(y_pos, 170)
pen.goto(x, y)
pen.dot(6, random.choice(lamp_color))
for _ in range(40):
add_decor()
turtle.done()
三、新手自定义修改参数
1. 树冠大小:修改 layer_size 列表数值,数值越大树越宽
2. 树高低矮:修改 y_pos -= 45,数字越大层间距越高
3. 彩灯疏密:修改 range(40),数字越大装饰灯越多
4. 背景更换:win.bgcolor("black") 替换颜色名称即可
结尾感悟
编程不只是逻辑学习,也能创造小浪漫。只用基础循环、几何图形,就能做出永久保存的电子圣诞树,零基础小白也能轻松上手,边玩边巩固Python绘图基础。
#Python零基础 #Turtle绘图教程 #编程趣味练习 #圣诞创意编程