画画真的是需要些许艺术细胞(这个我好像没有,所以将就将就吧。。)
直接上结果,代码在下方:
import turtle as t
r_a = 0.8
wight = 1400 # 宽
height = 980 # 高
t.hideturtle()
t.colormode(255)
t.color((255, 155, 192), "pink")
t.setup(wight, height)
#绘画速度
t.tracer(10)
def move_pen(x, y): # 位置
t.pu()
t.goto(x - wight / 2 + 50, y - height / 2 + 50)
t.pd()
def pen_set(size, r1, g1, b1, r2=0, g2=0, b2=0): # 画笔粗细、描边颜色、填充颜色
t.pensize(size)
t.color((r1, g1, b1), (r2, g2, b2))
def draw_bg(): # 画草地、画天空
# 画草地
move_pen(-50, 310)
pen_set(1, 255, 248, 170, 255, 248, 170)
t.begin_fill()
t.seth(-90)
t.fd(350)
t.seth(0)
t.fd(1400)
t.seth(90)
t.fd(350)
t.end_fill()
# 画天空
move_pen(-50, 310)
pen_set(1, 47, 192, 239,47, 192, 239)
t.begin_fill()
t.seth(90)
t.fd(630)
t.seth(0)
t.fd(1400)
t.seth(-90)
t.fd(630)
a = -180 + r_a
for i in range(50):
a = a - r_a / 50
t.seth(a)
t.fd(500 / 50)
a = 180
for i in range(50):
a = a - r_a / 50
t.seth(a)
t.fd(500 / 50)
t.end_fill()
def draw_yuan(): # 画天空中的圆和五角星
# 画圆左1
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(72, 720)
t.begin_fill()
t.circle(60, 360)
t.end_fill()
# 画圆左1里的星星
pen_set(10, 255, 211, 62, 255, 211, 62)
move_pen(120, 680)
t.begin_fill()
for i in range(5):
t.forward(100)
t.left(180 - 36)
t.end_fill()
# 画圆左2
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(170, 900)
t.begin_fill()
t.circle(70, 360)
t.end_fill()
# 画圆左2里的星星
pen_set(10, 255, 211, 62, 255, 211, 62)
move_pen(220, 850)
t.begin_fill()
for i in range(5):
t.forward(100)
t.left(180 - 36)
t.end_fill()
# 画圆左3
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(1030, 720)
t.begin_fill()
t.circle(75, 360)
t.end_fill()
# 画圆左3里的星星
pen_set(10, 255, 211, 62, 255, 211, 62)
move_pen(1070, 660)
t.begin_fill()
for i in range(5):
t.forward(100)#星星大小
t.left(180 - 36)
t.end_fill()
# 画圆左4
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(1220, 900)
t.begin_fill()
t.circle(75, 360)
t.end_fill()
# 画圆左4里的星星
pen_set(10, 255, 211, 62, 255, 211, 62)
move_pen(1270, 850)
t.begin_fill()
for i in range(5):
t.forward(100) # 星星大小
t.left(180 - 36)
t.end_fill()
#流星弧线
pen_set(140, 193, 239, 239, 193, 239, 239)
move_pen(700, 800)
t.begin_fill()
# t.rt(180)
t.circle(460, 20)
t.end_fill()
# 画流星尾巴
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(720, 740)
t.begin_fill()
t.seth(0) # 设置角度为0°
t.fd(70) # forward,向前70像素,即边长为70像素
t.seth(140) # 设置角度140°
t.fd(70) # 向前70像素,即边长为70像素
t.seth(40) # 设置角度40°
t.end_fill()
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(730, 765)
t.begin_fill()
t.seth(20)
t.fd(100)
t.seth(160)
t.fd(100)
t.seth(45)
t.end_fill()
pen_set(10, 193, 239, 239, 193, 239, 239)
move_pen(740, 815)
t.begin_fill()
t.rt(-10)
t.seth(40)
t.fd(70)
t.seth(180)
t.fd(70)
t.seth(45)
t.end_fill()
# 画流星里的星星
pen_set(8, 255, 211, 62, 255, 211, 62)
move_pen(520, 730)
t.begin_fill()
for i in range(5):
t.forward(100) # 星星大小
t.left(180 - 36)
t.end_fill()
def draw_star4(n,x,y,w,h): #画四角星
pen_set(10, 255, 211, 62, 255, 211, 62)
move_pen(x, y)
# t.begin_fill()
t.seth(n) # 设置角度n
t.fd(w/2) # 向前w/2像素
t.seth(n+180) # 设置角度n+180
t.fd(w) # 向前w像素,即边长为w像素
t.end_fill()
move_pen( x, y)
t.seth(n+90)
t.fd(h/2)
t.seth(n + 90+180)
t.fd(h)
t.end_fill()
def draw_tree(): # 画树、房子、花
# 画左1树叶
pen_set(10, 51, 215, 216, 51, 215, 216)
move_pen(150, 400)
t.begin_fill()
t.circle(75, 360)
t.end_fill()
#画左1树干
pen_set(30, 142, 93, 89, 142, 93, 89)
move_pen(130, 325)
t.begin_fill()
t.seth(90)
t.fd(80)
t.end_fill()
# 画左2树叶
pen_set(10, 51, 215, 216, 51, 215, 216)
move_pen(450, 450)
t.begin_fill()
t.circle(80, 360)
t.end_fill()
# 画左2树干
pen_set(30, 142, 93, 89, 142, 93, 89)
move_pen(365, 325)
t.begin_fill()
t.seth(90)
t.fd(60)
t.end_fill()
# 画左3树叶
pen_set(10, 51, 215, 216, 51, 215, 216)
move_pen(1054, 396)
t.begin_fill()
t.seth(-30)
len = 2
for k in range(2): # 将相同的动作重复做一遍
for j in range(60):
if j < 30:
len += 0.1