用户:MINECRAFT_柒查看:0 回复:3 评论:0 创建时间:2021-07-26T20:02:02
【作品展示】

【作品介绍】
长隆大赛S2参赛作品,我使用了turtle库来作为一个绘图库,这里我使用了椭圆函数来作为我们绘制小动物的头部,用函数的方法进行元素的定位,还用了json数据的导入和writ的方法来进行海洋馆文字的介绍,有不足的希望大家多多指教,欢迎大家来讨论哦
【作品源代码】
import turtle
import math
import json
p = turtle.Pen()
mn = turtle.Screen()
mn.bgcolor("skyblue")
p.speed(0)
p.penup()
p.goto(-300, 250)
p.pendown()
p.pencolor("white")
p.pensize(35)
p.forward(125)
p.penup()
p.goto(-75, 240)
p.pendown()
p.pensize(27)
p.forward(150)
p.penup()
p.goto(75, 270)
p.pendown()
p.pensize(30)
p.forward(115)
p.pensize(2)
p.penup()
p.pencolor("#007500")
p.fillcolor("#007500")
p.begin_fill()
p.goto(-375, 100)
p.pendown()
p.goto(-250, 250)
p.goto(-125, 100)
p.goto(0, 300)
p.goto(125, 100)
p.goto(250, 250)
p.goto(375, 100)
p.goto(-375, 100)
p.end_fill()
p.pencolor("#007500")
p.fillcolor("#007500")
p.begin_fill()
p.penup()
p.goto(-375, -170)
p.pendown()
p.forward(750)
p.right(90)
p.forward(175)
p.right(90)
p.forward(750)
p.right(90)
p.forward(175)
p.end_fill()
p.penup()
p.pencolor("#31FFF3")
p.goto(-50, 100)
p.left(90)
p.pendown()
p.begin_fill()
i = 0
for i in range(50):
p.left(3)
p.forward(4)
i = i + 1
i = 0
p.fillcolor("#31FFF3")
for i in range(40):
p.right(3)
p.forward(4)
i = i + 1
i = 0
for b in range(50):
p.left(3)
p.forward(4)
i = i + 1
p.forward(100)
p.left(180)
i = 0
for i in range(50):
p.right(3)
p.forward(4)
i = i + 1
i = 0
for b in range(40):
p.left(3)
p.forward(4)
i = i + 1
for i in range(50):
p.right(3)
p.forward(4)
i = i + 1
p.left(180)
p.forward(110)
p.end_fill()
p.penup()
p.goto(-250, -15)
p.forward(25)
p.pendown()
p.pencolor("green3")
p.dot(150)
p.left(90)
p.penup()
p.forward(20)
p.pendown()
p.pencolor("brown")
p.pensize(15)
p.forward(125)
p.left(180)
p.forward(125)
p.pensize(6)
p.left(180)
p.forward(15)
p.left(120)
p.forward(40)
p.left(180)
p.forward(40)
p.right(298)
p.forward(30)
p.right(120)
p.forward(42)
p.left(180)
p.forward(42)
p.left(117)
p.left(180)
p.pensize(15)
p.forward(105)
p.penup()
p.goto(-170, -40)
#第二棵
p.pendown()
p.pencolor("green")
p.dot(150)
p.penup()
p.forward(20)
p.pendown()
p.pencolor("brown")
p.pensize(15)
p.goto(-170, -185)
p.left(180)
p.forward(125)
p.pensize(6)
p.left(180)
p.forward(15)
p.left(120)
p.forward(40)
p.left(180)
p.forward(40)
p.right(298)
p.forward(30)
p.right(120)
p.forward(42)
p.left(180)
p.forward(42)
p.left(117)
p.left(180)
p.pensize(15)
#p.forward(75)
p.pencolor("yellow2")
def ellipse(a, b, x1, y1, n=500):
"""
绘制椭圆函数
:param a: 长半轴长度
:param b: 短半轴长度
:param x1: x坐标
:param y1: y坐标
:return:
"""
p.pensize(2)
p.penup()
x_cor = x1
y_cor = y1
p.goto(x1, y1)
p.begin_fill()
p.fillcolor("yellow2")
for i in range(n): # 画扁的n边形。当n --> 无穷大,所画出的图形即为椭圆
radian = 2 * math.pi / n # 将2pi弧度分成n份,每份为radian
theta = (i+1)*radian # 每次弧度增加radian
next_point = (a*math.cos(theta)+x_cor, b*math.sin(theta)+y_cor)
p.pendown()
p.setpos(next_point)
ellipse(20, 15, -265, -125)
#p.hideturtle()
p.end_fill()
p.penup()
p.goto(-265, -135)
p.begin_fill()
p.pendown()
i = 0
for i in range(2):
p.forward(25)
p.left(90)
p.forward(50)
p.left(90)
i = i + 1
p.end_fill()
p.pencolor("black")
p.pensize(0.5)
p.penup()
p.goto(-270, -112)
p.left(90)
p.pendown()
p.forward(10)
p.left(180)
p.forward(5)
p.left(90)
p.forward(3)
p.left(90)
p.forward(3)
p.left(180)
p.forward(6)
p.left(180)
p.forward(3)
p.right(90)
p.forward(3)
p.left(90)
p.forward(5)
p.left(180)
p.forward(10)
p.penup()
p.goto(-282, -115)
p.pendown()
p.right(100)
p.pensize(3)
p.pencolor("yellow2")
p.begin_fill()
p.forward(12)
p.right(135)
p.forward(10)
p.end_fill()
p.left(50)
p.penup()
p.forward(15)
p.left(50)
p.forward(5)
p.pendown()
p.pencolor("yellow2")
p.begin_fill()
p.forward(10)
p.right(135)
p.forward(12)
p.end_fill()
p.penup()
p.goto(-277, -125)
p.pencolor("black")
p.pendown()
p.dot(4)
p.left(90)
p.penup()
p.forward(20)
p.pendown()
p.dot(4)
p.penup()
p.right(180)
p.forward(10)
p.left(90)
p.forward(5)
p.pensize(2)
p.pendown()
p.forward(5)
p.left(90)
p.forward(3)
p.left(180)
p.forward(6)
p.penup()
p.goto(-2喵, -160)
p.left(90)
p.pendown()
p.pensize(4)
p.pencolor("yellow2")
p.forward(18)
p.penup()
p.goto(-252, -160)
p.pendown()
p.pensize(4)
p.pencolor("yellow2")
p.forward(18)
p.penup()
p.goto(-230, -160)
p.pendown()
p.pensize(4)
p.pencolor("yellow2")
p.forward(18)
p.penup()
p.goto(-218, -160)
p.pendown()
p.pensize(4)
p.pencolor("yellow2")
p.forward(18)
p.penup()
p.goto(-215, -140)
p.pendown()
p.left(90)
p.forward(15)
p.right(75)
p.forward(13)
p.left(75)
p.pencolor("black")
p.penup()
p.goto(-250, -120)
p.pendown()
p.pensize(1)
p.forward(15)
p.penup()
p.left(180)
p.forward(15)
p.left(90)
p.forward(7)
p.left(90)
p.pendown()
p.forward(15)
p.penup()
p.left(180)
p.forward(50)
p.pendown()
p.forward(15)
p.penup()
p.left(180)
p.forward(15)
p.left(90)
p.forward(7)
p.pendown()
p.left(90)
p.forward(15)
#兔子------------------------------------------------------------------------------------------------------------------
p.penup()
size = 0.3
p.goto(0, -250) # 前往坐标
p.pendown()
p.left(180)
p.pensize(1)
color = "white"
p.pencolor(color)
p.begin_fill()
p.circle(30*size, 360) # 头
p.fillcolor(color)
p.end_fill()
p.begin_fill()
p.forward(140*size)
p.right(90)
p.circle(7*size, 360)
p.forward(50*size)
p.right(90)
p.forward(140*size)
p.right(90)
p.forward(50*size)
p.fillcolor(color)
p.end_fill()
p.penup() # 前腿1
p.begin_fill()
p.backward(30*size)
p.right(90)
p.forward(25*size)
p.left(90)
p.pendown()
p.left(130)
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.right(90)
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.fillcolor(color)
p.end_fill()
p.penup() # 前腿2
p.begin_fill()
p.backward(20*size)
p.pendown()
p.left(260)
p.pendown()
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.right(90)
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.fillcolor(color)
p.end_fill()
#后腿1
p.penup()
p.right(30)
p.backward(-40*size)
p.left(30)
p.left(60)
p.forward(120*size)
p.right(60)
p.pendown()
p.begin_fill()
p.backward(30 * size)
p.left(30)
p.pendown()
p.forward(60 * size)
p.right(90)
p.forward(10 * size)
p.right(90)
p.forward(60 * size)
p.right(90)
p.forward(10 * size)
p.fillcolor(color)
p.end_fill()
p.penup() # 后腿2
p.begin_fill()
p.forward(10*size)
p.pendown()
p.left(290)
p.pendown()
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.right(90)
p.forward(60*size)
p.right(90)
p.forward(10*size)
p.fillcolor(color)
p.end_fill()
#耳朵
p.penup()
p.forward(50*size) # s
p.forward(20*size)
p.left(90)
p.forward(10*size)
p.left(90)
p.left(90)
p.forward(-130*size)
p.right(90)
p.pendown()
p.begin_fill()
p.backward(70*size)
p.left(90)
p.backward(10*size)
p.left(90)
p.backward(90*size)
p.left(90)
p.backward(10*size)
p.fillcolor(color)
p.end_fill()
p.penup()
p.begin_fill()
p.backward(15*size)
p.left(90)
p.pendown()
p.backward(90*size)
p.left(90)
p.backward(10*size)
p.left(90)
p.backward(90*size)
p.left(90)
p.backward(10*size)
p.fillcolor(color)
p.end_fill()
p.pencolor("black")
p.penup()
p.goto(190, 35)
p.pendown()
with open("changlonghy.json", "r", encoding='utf-8') as f:
lines = f.readlines()
for i in lines:
print(i)
p.penup()
p.goto(p.xcor(), (p.ycor()-20))
p.write(i, font=('weiruanyahei', 10,), align="center")
p.pendown()
p.penup()
p.goto(250, -265)
p.pendown()
p.write("龚子立", font=('weiruanyahei', 18,), align="center")
p.penup()
p.goto(233, 250)
p.pendown()
p.write("长隆海洋王国", font=('weiruanyahei', 20,), align="center")
p.hideturtle()
turtle.mainloop()
turtle.done()
【提示】
部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:
https://python.codemao.cn我使用了turtle库来作为一个绘图库,这里我使用了椭圆函数来作为我们绘制小动物的头部,用函数的方法进行元素的定位,还用了json数据的导入和writ的方法来进行海洋馆文字的介绍,有不足的希望大家多多指教,欢迎大家来讨论哦
点赞0
评论