Python绘制灯笼
阿黎逸阳 人气:0一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制。这两天又在忙着别的事情,所以现在才跟大家分享。
一、效果展示
在介绍代码之前,先来看下本文的实现效果。
二、代码展示
接下来展示绘制灯笼的全量源代码
import os import pygame import turtle as t ##画外轮廓 t.title('元宵节字谜灯笼') t.setup(startx=0, starty = 0) #画灯笼提线 t.penup() t.goto(-50, 180) t.pendown() t.left(100) t.pensize(2) t.color('orangered') t.circle(-15, 80) t.right(140) t.forward(20) #画灯笼盖 t.penup() t.goto(-57, 179) t.pendown() t.left(120) t.pensize(1) #t.pencolor('gold') t.pencolor('#fedf08') t.fillcolor('#fedf08') #t.pencolor('orange') t.begin_fill() t.forward(14) t.right(15) t.forward(20) t.right(165) t.forward(52) t.goto(-57, 179) t.end_fill() t.penup() t.goto(-78, 174) t.pendown() t.left(135) t.pencolor('#feb209') t.fillcolor('#feb209') t.begin_fill() t.forward(5) t.left(45) t.forward(47) t.goto(-22, 174) t.end_fill() #红色的柱子 t.penup() t.goto(-70, 170) t.pendown() t.color('red') t.begin_fill() t.right(90) t.forward(10) t.left(90) t.forward(40) t.left(90) t.forward(10) t.end_fill() def zz(x): t.penup() t.color('#feb209') t.pensize(1) t.begin_fill() t.goto(x, 160) t.forward(10) t.right(90) t.forward(3) t.right(90) t.forward(10) t.right(90) t.forward(3) t.end_fill() t.right(90) zz(-64) #第一根柱子 zz(-55) #第二根柱子 zz(-45) #第三根柱子 zz(-37) #第四根柱子 #棕色的柱子 t.penup() t.goto(-74, 160) t.pendown() t.color('#7f4e1e') t.left(90) t.begin_fill() t.circle(2, 90) t.forward(5) t.left(90) t.forward(52) t.left(90) t.forward(5) t.circle(2, 90) t.forward(50) t.end_fill() #灯笼外壳 t.penup() t.goto(-76, 153) t.pendown() t.begin_fill() t.color('orangered') t.circle(30, 90) t.forward(70) t.circle(30,90) t.forward(52) t.circle(30, 90) t.forward(70) t.circle(30, 90) t.end_fill() #棕色的柱子 t.penup() t.goto(-74, 23) t.pendown() t.color('#7f4e1e') #t.left(90) t.begin_fill() t.circle(2, 90) t.forward(5) t.left(90) t.forward(52) t.left(90) t.forward(5) t.circle(2, 90) t.forward(50) t.end_fill() #黄色的线 t.penup() t.goto(-50, 15) t.pendown() t.left(90) t.color('yellow') t.pensize(1) t.forward(25) #玫红色的球 t.right(90) t.color('red') t.begin_fill() t.circle(8, 360) t.end_fill() #画流苏 t.penup() t.goto(-50, -26) t.pendown() t.begin_fill() t.color('orangered') t.circle(9, 90) t.forward(80) t.left(90) t.forward(18) t.left(90) t.forward(80) t.circle(9, 90) t.end_fill() #画流苏中黄色的圈 t.penup() t.goto(-59, -42) t.left(90) t.pendown() t.begin_fill() t.color('#fedf08') t.forward(10) t.left(90) t.forward(18) t.left(90) t.forward(10) t.left(90) t.forward(18) t.end_fill() #中文 t.hideturtle() t.penup() t.goto(-72, 120) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('猜灯谜', font=('Comic Sans', 11, 'normal')) t.penup() t.goto(-87, 91) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('云 盖 中 秋 月', font=('Times New Roman', 10, 'normal')) t.penup() t.goto(-87, 65) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('雨 淋 元 宵 灯', font=('Times New Roman', 10, 'normal')) t.penup() t.goto(-84, 40) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('(打 一 成 语)', font=('Times New Roman', 10, 'normal')) t.delay(50) def write_1(): #元 t.penup() t.goto(90, 150) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('共', font=('Times New Roman', 18, 'normal')) #宵 t.penup() t.goto(90, 120) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('饮', font=('Times New Roman', 18, 'normal')) #节 t.penup() t.goto(90, 90) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('太', font=('Times New Roman', 18, 'normal')) #快 t.penup() t.goto(90, 60) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('平', font=('Times New Roman', 18, 'normal')) #乐 t.penup() t.goto(90, 30) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('酒', font=('Times New Roman', 18, 'normal')) def write_2(): #元 t.penup() t.goto(150, 150) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('同', font=('Times New Roman', 18, 'normal')) #宵 t.penup() t.goto(150, 120) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('猜', font=('Times New Roman', 18, 'normal')) #节 t.penup() t.goto(150, 90) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('元', font=('Times New Roman', 18, 'normal')) #快 t.penup() t.goto(150, 60) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('宵', font=('Times New Roman', 18, 'normal')) #乐 t.penup() t.goto(150, 30) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('谜', font=('Times New Roman', 18, 'normal')) write_1() write_1() write_1() write_2() write_2() write_2() t.penup() t.goto(-280, -200) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('Happy Lantern Festival !', font=('Times New Roman', 15, 'normal'))
三、拓展
下面将展示带有背景音乐的绘制灯笼的示例代码,有需要的可以参考一下
import os import pygame import turtle as t #播放音乐 pygame.mixer.init() pygame.mixer.music.load(r"F:\公众号\48.元宵节快乐\Sing, R. Sing! - おばちゃ!.mp3") pygame.mixer.music.set_volume(0.5) pygame.mixer.music.play() ##画外轮廓 t.title('元宵节字谜灯笼') t.setup(startx=0, starty = 0) #画灯笼提线 t.penup() t.goto(-50, 180) t.pendown() t.left(100) t.pensize(2) t.color('orangered') t.circle(-15, 80) t.right(140) t.forward(20) #画灯笼盖 t.penup() t.goto(-57, 179) t.pendown() t.left(120) t.pensize(1) #t.pencolor('gold') t.pencolor('#fedf08') t.fillcolor('#fedf08') #t.pencolor('orange') t.begin_fill() t.forward(14) t.right(15) t.forward(20) t.right(165) t.forward(52) t.goto(-57, 179) t.end_fill() t.penup() t.goto(-78, 174) t.pendown() t.left(135) t.pencolor('#feb209') t.fillcolor('#feb209') t.begin_fill() t.forward(5) t.left(45) t.forward(47) t.goto(-22, 174) t.end_fill() #红色的柱子 t.penup() t.goto(-70, 170) t.pendown() t.color('red') t.begin_fill() t.right(90) t.forward(10) t.left(90) t.forward(40) t.left(90) t.forward(10) t.end_fill() def zz(x): t.penup() t.color('#feb209') t.pensize(1) t.begin_fill() t.goto(x, 160) t.forward(10) t.right(90) t.forward(3) t.right(90) t.forward(10) t.right(90) t.forward(3) t.end_fill() t.right(90) zz(-64) #第一根柱子 zz(-55) #第二根柱子 zz(-45) #第三根柱子 zz(-37) #第四根柱子 #棕色的柱子 t.penup() t.goto(-74, 160) t.pendown() t.color('#7f4e1e') t.left(90) t.begin_fill() t.circle(2, 90) t.forward(5) t.left(90) t.forward(52) t.left(90) t.forward(5) t.circle(2, 90) t.forward(50) t.end_fill() #灯笼外壳 t.penup() t.goto(-76, 153) t.pendown() t.begin_fill() t.color('orangered') t.circle(30, 90) t.forward(70) t.circle(30,90) t.forward(52) t.circle(30, 90) t.forward(70) t.circle(30, 90) t.end_fill() #棕色的柱子 t.penup() t.goto(-74, 23) t.pendown() t.color('#7f4e1e') #t.left(90) t.begin_fill() t.circle(2, 90) t.forward(5) t.left(90) t.forward(52) t.left(90) t.forward(5) t.circle(2, 90) t.forward(50) t.end_fill() #黄色的线 t.penup() t.goto(-50, 15) t.pendown() t.left(90) t.color('yellow') t.pensize(1) t.forward(25) #玫红色的球 t.right(90) t.color('red') t.begin_fill() t.circle(8, 360) t.end_fill() #画流苏 t.penup() t.goto(-50, -26) t.pendown() t.begin_fill() t.color('orangered') t.circle(9, 90) t.forward(80) t.left(90) t.forward(18) t.left(90) t.forward(80) t.circle(9, 90) t.end_fill() #画流苏中黄色的圈 t.penup() t.goto(-59, -42) t.left(90) t.pendown() t.begin_fill() t.color('#fedf08') t.forward(10) t.left(90) t.forward(18) t.left(90) t.forward(10) t.left(90) t.forward(18) t.end_fill() #中文 t.hideturtle() t.penup() t.goto(-72, 120) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('猜灯谜', font=('Comic Sans', 11, 'normal')) t.penup() t.goto(-87, 91) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('云 盖 中 秋 月', font=('Times New Roman', 10, 'normal')) t.penup() t.goto(-87, 65) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('雨 淋 元 宵 灯', font=('Times New Roman', 10, 'normal')) t.penup() t.goto(-84, 40) t.pendown() t.pencolor('black') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('(打 一 成 语)', font=('Times New Roman', 10, 'normal')) t.delay(50) def write_1(): #元 t.penup() t.goto(90, 150) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('共', font=('Times New Roman', 18, 'normal')) #宵 t.penup() t.goto(90, 120) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('饮', font=('Times New Roman', 18, 'normal')) #节 t.penup() t.goto(90, 90) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('太', font=('Times New Roman', 18, 'normal')) #快 t.penup() t.goto(90, 60) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('平', font=('Times New Roman', 18, 'normal')) #乐 t.penup() t.goto(90, 30) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('酒', font=('Times New Roman', 18, 'normal')) def write_2(): #元 t.penup() t.goto(150, 150) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('同', font=('Times New Roman', 18, 'normal')) #宵 t.penup() t.goto(150, 120) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('猜', font=('Times New Roman', 18, 'normal')) #节 t.penup() t.goto(150, 90) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('元', font=('Times New Roman', 18, 'normal')) #快 t.penup() t.goto(150, 60) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('宵', font=('Times New Roman', 18, 'normal')) #乐 t.penup() t.goto(150, 30) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('谜', font=('Times New Roman', 18, 'normal')) write_1() write_1() write_1() write_2() write_2() write_2() t.penup() t.goto(-280, -200) t.pendown() t.pensize(8) t.pencolor('red') #t.write('猜谜语', font=('Times New Roman', 12, 'normal')) t.write('Happy Lantern Festival !', font=('Times New Roman', 15, 'normal'))
加载全部内容