基于turtle库的圣诞树的绘制
2024年的圣诞节快要到来了,内心无比的happ呀,以下是使用 Python 的 turtle
模块绘制一个美丽的圣诞节贺卡的代码示例。这个贺卡包含一棵装饰精美的圣诞树、一颗闪亮的星星以及“圣诞快乐”的祝福语。你可以根据需要调整颜色和尺寸以达到理想的效果。
完整代码
import turtle
# 设置画布
screen = turtle.Screen()
screen.setup(width=800, height=600)
screen.bgcolor("skyblue") # 背景颜色
screen.title("圣诞快乐!")
# 创建画笔
pen = turtle.Turtle()
pen.speed(3) # 画笔速度
def draw_triangle(color, width, height):
pen.fillcolor(color)
pen.begin_fill()
for _ in range(3):
pen.forward(width)
pen.left(120)
pen.end_fill()
def draw_rectangle(color, width, height):
pen.fillcolor(color)
pen.begin_fill()
for _ in range(2):
pen.forward(width)
pen.left(90)
pen.forward(height)
pen.left(90)
pen.end_fill()
def draw_star(color, size):
pen.fillcolor(color)
pen.begin_fill()
for _ in range(5):
pen.forward(size)
pen.right(144)
pen.forward(size)
pen.left(72)
pen.end_fill()
def draw_circle(color, radius):
pen.fillcolor(color)
pen.begin_fill()
pen.circle(radius)
pen.end_fill()
def draw_tree():
pen.penup()
pen.goto(-50, -150) # 树干位置
pen.pendown()
pen.color("sienna")
draw_rectangle("sienna", 100, 150) # 树干
# 绘制树叶(三个三角形)
colors = ["forest green", "green", "dark green"]
y_start = 0
for color in colors:
pen.penup()
pen.goto(-150, y_start)
pen.pendown()
pen.color(color)
draw_triangle(color, 300, 200)
y_start += 150 # 每个层次往上移动
def draw_decorations():
import random
pen.color("red")
pen.penup()
decorations = [(-100, 0), (-50, 100), (0, 50), (50, 150), (100, 100), (25, 200), (-75, 175)]
for pos in decorations:
pen.goto(pos)
pen.pendown()
draw_circle("red", 10)
pen.penup()
pen.color("yellow")
star_positions = [(-80, -30), (0, 20), (80, -30)]
for pos in star_positions:
pen.goto(pos)
pen.pendown()
draw_circle("yellow", 7)
pen.penup()
def draw_star_on_top():
pen.penup()
pen.goto(-15, 200)
pen.pendown()
pen.color("yellow")
draw_star("yellow", 30)
def write_message():
pen.penup()
pen.goto(0, -250)
pen.color("red")
pen.pendown()
pen.write("圣诞快乐!", align="center", font=("Arial", 36, "bold"))
def draw_snowflakes():
pen.color("white")
pen.penup()
for _ in range(20):
x = random.randint(-390, 390)
y = random.randint(-280, 280)
pen.goto(x, y)
pen.pendown()
draw_star("", 5)
pen.penup()
def main():
draw_tree()
draw_decorations()
draw_star_on_top()
write_message()
# 可选:绘制雪花
# draw_snowflakes()
pen.hideturtle()
turtle.done()
if __name__ == "__main__":
main()
效果演示
代码说明
1.初始化画布和画笔
- 设置画布大小为 800x600,并设置背景颜色为“skyblue”。
- 创建一个 turtle
对象 pen
,并设置其绘画速度。
2.绘制三角形 (draw_triangle
)
- 用于绘制圣诞树的叶子部分。接受颜色、宽度和高度作为参数。
3.绘制矩形 (draw_rectangle
)
- 用于绘制圣诞树的树干。接受颜色、宽度和高度作为参数。
4.绘制星星 (draw_star
)
- 用于绘制树顶的星星或装饰。使用五角星的方式绘制。
5.绘制圆形 (draw_circle
)
- 用于绘制圣诞树上的装饰球。
6.绘制圣诞树 (draw_tree
)
- 首先绘制树干,然后绘制三个层次不同颜色的树叶(三个叠加的三角形)。
7.绘制装饰球 (draw_decorations
)
- 在圣诞树的不同位置绘制红色和黄色的小圆球作为装饰。
8.绘制树顶星星 (draw_star_on_top
)
- 在圣诞树顶部绘制一个较大的黄色星星。
9.写祝福语 (write_message
)
- 在画布底部中央写上“圣诞快乐!”的祝福文字,使用红色字体,字体大小为36号,加粗。
10.绘制雪花 (draw_snowflakes
) (可选)
- 通过在随机位置绘制小星星来模拟雪花效果。此部分代码已注释,如果需要雪花效果,可以取消注释。
11.主函数 (main
)
- 按顺序调用上述函数来绘制圣诞树、装饰、星星和祝福语。
- 隐藏画笔并保持窗口开启。
运行效果
运行上述代码后,将显示一个带有美丽圣诞树、装饰球、树顶星星以及“圣诞快乐!”字样的贺卡。你可以根据需求进一步美化,例如添加更多装饰、调整颜色、增加雪花效果等。
自定义提示
- 颜色调整:你可以根据个人喜好调整树叶、装饰球和背景的颜色。
- 尺寸调整:通过修改绘制函数中的参数,可以调整圣诞树和装饰的大小。
- 添加更多元素:例如,添加更多的雪花、礼物盒、彩带等,以使贺卡更加丰富。
原文地址:https://blog.csdn.net/mzl_18353516147/article/details/144403170
免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!