猫史档案馆


【Python作品分享】[去太空,趣编程]【作品秀】

用户:耿直的笨笨鸭TUxR耿直的笨笨鸭TUxR查看:0 回复:0 评论:0 创建时间:2021-05-02T18:38:13


【作品展示】

center_image

 

【作品介绍】

也没什么功能,主要有星系、宇航员、星星、天空、太阳、航天器组成,代码量是在太多了。其实最主要就是表达我对祖国真挚的热爱!

 

【作品源代码】

# 导入所需的库
import turtle
import random


# 设置常量
WIDTH = 1000
HEIGHT = 600
TITLE = "航天航空"
BG_COLOR = "black"
STAR_NUM = random.randint(250, 300)
STAR_SIZE_LI喵, 10]
STAR_COLOR_LIST = ["yellow", "orange", "orange", "blue", "red", "green"]
I = 0
EARTH_SIZE = 200
EARTH_X = WIDTH // 6
EARTH_Y = HEIGHT // 6
EARTH_SEA_COLOR = "blue"
EARTH_LAND_COLOR = "green"
SUN_X = -WIDTH // 2
SUN_Y = HEIGHT // 2
SUN_SIZE = EARTH_SIZE * 3
SUN_COLOR = "yellow"
SATELLITE_X = WIDTH - 1200
SATELLITE_Y = HEIGHT - 600
SATELLITE_UNDER_WIDTH = 200
SATELLITE_UNDER_HEIGHT = 60
SATELLITE_ON_HEIGHT = 150
SATELLITE_ON_WIDTH = 60
SATELLITE_ON_COLOR = "red"
SATELLITE_UNDER_COLOR = "white"
PEOPLE_HEAD_X = WIDTH // 10
PEOPLE_HEAD_Y = HEIGHT - 700
PEOPLE_HEAD_UNDER_SIZE = 50
PEOPLE_HEAD_ON_SIZE = 45
PEOPLE_HEAD_UNDER_COLOR = "gray"
PEOPLE_HEAD_ON_COLOR = "black"
PEOPLE_BODY_X = PEOPLE_HEAD_X
PEOPLE_BODY_Y = PEOPLE_HEAD_Y - PEOPLE_HEAD_UNDER_SIZE + 25
PEOPLE_BODY_SIZE_WIDTH = WIDTH // 10
PEOPLE_BODY_SIZE_HEIGHT = HEIGHT // 8
PEOPLE_BODY_COLOR = PEOPLE_HEAD_UNDER_COLOR
PEOPLE_LEG_X = PEOPLE_HEAD_X - 50
PEOPLE_LEG_Y = PEOPLE_HEAD_Y - 80
PEOPLE_LEG_WIDTH = WIDTH // 10
PEOPLE_LEG_HEIGHT = HEIGHT // 25
PEOPLE_LEG_COLOR = PEOPLE_BODY_COLOR
MOON_X = EARTH_X + 200
MOON_Y = EARTH_Y
MOON_SIZE = 40
MOON_COLOR = "yellow"
GALAXY_X = 0
GALAXY_Y = 0
GALAXY_COLOR = "orange"


# 设置画笔、窗口工具
mypen = turtle.Pen()
myscreen = turtle.Screen()
mypen.hideturtle()


# 定义画画函数

# 窗体大小、标题
def screen_size(width, height, title):
    myscreen.setup(width, height)
    myscreen.title(title)

# 画天空
def draw_sky(bg_color):
    mypen.speed(0)
    myscreen.bgcolor(bg_color)

# 画星星(时间较长,请耐心等待)
def draw_stars(draw_pisition_x, draw_pisition_y, draw_size, draw_color):
    mypen.penup()
    mypen.goto(draw_pisition_x, draw_pisition_y)
    mypen.pendown()
    mypen.dot(draw_size, draw_color)

# 画地球(陆地不好看,只画了南美洲的轮廓)
def draw_earth(earth_size, earth_x, earth_y, earth_sea_color, earth_land_color):
    mypen.penup()
    mypen.goto(earth_x, earth_y)
    mypen.pendown()
    mypen.dot(earth_size, earth_sea_color)
    mypen.fillcolor(earth_land_color)
    mypen.begin_fill()
    mypen.left(45)
    mypen.forward(earth_size // 3)
    mypen.right(75)
    for i in range(6):
        mypen.forward(earth_size // 5)
        mypen.right(90)
    mypen.left(90)
    mypen.forward(earth_size // 3)
    mypen.right(130)
    mypen.forward(earth_size // 4)
    mypen.end_fill()

# 画太阳
def draw_sun(sun_x, sun_y, sun_size, sun_color):
    mypen.penup()
    mypen.goto(sun_x, sun_y)
    mypen.down()
    mypen.dot(sun_size, sun_color)

# 画卫星(卫星只是大概轮廓)
def draw_satellite(satellite_x, satellite_y, satellite_under_width, satellite_under_height, satellite_on_width, satellite_on_height, satellite_under_color, satellite_on_color):
    mypen.penup()
    mypen.goto(satellite_x, satellite_y)
    mypen.down()
    mypen.setheading(-20)
    mypen.fillcolor(satellite_under_color)
    mypen.begin_fill()
    for j in range(2):
        mypen.forward(satellite_under_width)
        mypen.right(90)
        mypen.forward(satellite_under_height)
        mypen.right(90)
    mypen.end_fill()
    mypen.penup()
    mypen.forward(satellite_under_width)
    mypen.right(90)
    mypen.forward(satellite_under_height // 2 + 30)
    mypen.right(90)
    mypen.backward(75)
    mypen.pendown()
    mypen.fillcolor(satellite_on_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(satellite_on_width)
        mypen.right(90)
        mypen.forward(satellite_on_height)
        mypen.right(90)
    mypen.end_fill()
    mypen.setheading(-20)
    mypen.backward(170)
    mypen.pencolor("blue")
    mypen.write("CHINA 中国", font = ("文泉驿正黑", 15))

# 画人

# 画人头
def draw_people_head(people_head_x, people_head_y, people_head_under_size, people_head_on_size, people_head_under_color, people_head_on_color):
    mypen.penup()
    mypen.goto(people_head_x, people_head_y)
    mypen.pendown()
    mypen.dot(people_head_under_size, people_head_under_color)
    mypen.dot(people_head_on_size, people_head_on_color)
    mypen.penup()
    mypen.goto(people_head_x + 10, people_head_y + 10)
    mypen.pendown()
    mypen.dot(people_head_on_size // 10, people_head_under_color)

# 画人的身体(不好看,包括手)
def draw_people_body(people_body_x, people_body_y, people_body_size_width, people_body_size_height, people_body_color):
    mypen.penup()
    mypen.pencolor("black")
    mypen.goto(people_body_x, people_body_y)
    mypen.setheading(0)
    mypen.backward(people_body_size_height // 2)
    mypen.pendown()
    mypen.fillcolor(people_body_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(people_body_size_height)
        mypen.right(90)
        mypen.forward(people_body_size_width)
        mypen.right(90)
    mypen.end_fill()
    mypen.penup()
    mypen.goto(people_body_x, people_body_y)
    mypen.setheading(90)
    mypen.backward(people_body_size_height // 2 + 25)
    mypen.setheading(0)
    mypen.backward(60)
    mypen.setheading(90)
    mypen.pendown()
    mypen.fillcolor(people_body_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(people_body_size_width // 3 + 30)
        mypen.right(90)
        mypen.forward(people_body_size_height // 3)
        mypen.right(90)
    mypen.end_fill()
    mypen.penup()
    mypen.goto(people_body_x, people_body_y)
    mypen.setheading(0)
    mypen.forward(people_body_size_height // 2)
    mypen.pendown()
    mypen.fillcolor(people_body_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(people_body_size_width // 3 + 30)
        mypen.right(90)
        mypen.forward(people_body_size_height // 3)
        mypen.right(90)
    mypen.end_fill()

# 画人的脚和腿(省略了脚)
def draw_people_leg_and_feet(people_leg_x, people_leg_y, people_leg_width, people_leg_height, people_leg_color):
    mypen.penup()
    mypen.goto(people_leg_x, people_leg_y)
    mypen.forward(13)
    mypen.setheading(90)
    mypen.backward(145)
    mypen.pendown()
    mypen.fillcolor(people_leg_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(people_leg_width)
        mypen.right(90)
        mypen.forward(people_leg_height)
        mypen.right(90)
    mypen.end_fill()
    mypen.penup()
    mypen.goto(people_leg_x + 50, people_leg_y)
    mypen.setheading(0)
    mypen.forward(13)
    mypen.setheading(90)
    mypen.backward(145)
    mypen.pendown()
    mypen.fillcolor(people_leg_color)
    mypen.begin_fill()
    for i in range(2):
        mypen.forward(people_leg_width)
        mypen.right(90)
        mypen.forward(people_leg_height)
        mypen.right(90)
    mypen.end_fill()

# 画月亮
def draw_moon(moon_x, moon_y, moon_size, moon_color):
    mypen.penup()
    mypen.goto(moon_x, moon_y)
    mypen.pendown()
    mypen.dot(moon_size, moon_color)
    mypen.setheading(180)
    mypen.penup()
    mypen.forward(moon_size // 2)
    mypen.pendown()
    mypen.dot(moon_size, "black")

# 画星系
def draw_galaxy(galaxy_x, galaxy_y, galaxy_color):
    mypen.penup()
    mypen.goto(galaxy_x + 200, galaxy_y - 200)
    mypen.pendown()
    mypen.pensize(2)
    mypen.pencolor(galaxy_color)
    mypen.setheading(20)
    galaxy_size_the_first_list = [150, 100, 90, 80, 70, 60, 50, 40, 30 ,20, 10, 5]
    galaxy_size_the_second_list = [5, 5, 10, 15, 25, 35, 45, 55, 65, 75, 85, 95, 150]

    def def_draw_the_first_galaxy(size):
        mypen.forward(size)
        mypen.right(90)

    def def_draw_the_second_galaxy(size):
        mypen.forward(size)
        mypen.left(90)
    
    for i in range(len(galaxy_size_the_first_list)):
        def_draw_the_first_galaxy(galaxy_size_the_first_list[i])

    for i in range(len(galaxy_size_the_second_list)):
        def_draw_the_second_galaxy(galaxy_size_the_second_list[i])


# 调用函数
screen_size(WIDTH, HEIGHT, TITLE)
draw_sky(BG_COLOR)
while I <= STAR_NUM:
    draw_stars(random.randint(-WIDTH, WIDTH), random.randint(-HEIGHT, HEIGHT), random.choice(STAR_SIZE_LIST), random.choice(STAR_COLOR_LIST))
    I += 1
draw_earth(EARTH_SIZE, EARTH_X, EARTH_Y, EARTH_SEA_COLOR, EARTH_LAND_COLOR)
draw_sun(SUN_X, SUN_Y, SUN_SIZE, SUN_COLOR)
draw_satellite(SATELLITE_X, SATELLITE_Y, SATELLITE_ON_WIDTH, SATELLITE_ON_HEIGHT, SATELLITE_UNDER_WIDTH, SATELLITE_UNDER_HEIGHT, SATELLITE_ON_COLOR, SATELLITE_UNDER_COLOR)
draw_people_head(PEOPLE_HEAD_X, PEOPLE_HEAD_Y, PEOPLE_HEAD_UNDER_SIZE, PEOPLE_HEAD_ON_SIZE, PEOPLE_HEAD_UNDER_COLOR, PEOPLE_HEAD_ON_COLOR)
draw_people_body(PEOPLE_BODY_X, PEOPLE_BODY_Y, PEOPLE_BODY_SIZE_WIDTH, PEOPLE_BODY_SIZE_HEIGHT, PEOPLE_BODY_COLOR)
draw_people_leg_and_feet(PEOPLE_LEG_X, PEOPLE_LEG_Y, PEOPLE_LEG_WIDTH, PEOPLE_LEG_HEIGHT, PEOPLE_LEG_COLOR)
draw_moon(MOON_X, MOON_Y, MOON_SIZE, MOON_COLOR)
draw_galaxy(GALAXY_X, GALAXY_Y, GALAXY_COLOR)


# 固定窗口
turtle.done()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页