闲暇之余用turtle库码出来的学校图书馆(很丑勿喷)

直接放代码

from turtle import *


def box():
    right(90)
    pendown()
    fillcolor('#E8E8E8')
    begin_fill()
    for i in range(2):#框1
        fd(65*0.66)
        left(90)
        fd(75*0.66)
        left(90)
    end_fill()
    left(90)
    fd(20*0.66)
    right(90)
    fillcolor('#00BFFF')
    begin_fill()
    for i in range(2):
        fd(65*0.66)
        left(90)
        fd(55*0.66)
        left(90)
    end_fill()
    pendown()
    fd(65*0.66)#一横
    penup()
    left(90)
    fd(45*0.66)
    left(90)
    pendown()
    fd(65*0.66)
    right(90)
    fd(10*0.66)
    right(90)
    fd(10*0.66)
    right(90)
    fd(55*0.66)
    left(90)
    fd(45*0.66)
    left(90)
    fd(55*0.66)
    penup()
    right(90)
    fd(6.6)
    right(90)
    fd(75*0.66)
    left(90)

def pillars_1():#竖柱01
    left(90)
    fillcolor('#F5F5F5')
    begin_fill()
    for i in range(2):
        fd(918*0.66)
        right(90)
        fd(13.2)
        right(90)
    right(90)
    #框间距13.2
    fd(13.2)
    end_fill()


def pillars_2():#竖柱02
    left(90)
    penup()
    fd(918*0.66)#上
    fillcolor('#F5F5F5')
    begin_fill()
    right(90)
    fd(13.2)#横
    right(90)
    fd(918*0.66)#下
    right(90)
    ##框间距13.2
    fd(13.2)#横
    right(90)
    fd(918*0.66)#上
    right(90)
    end_fill()
    pendown()
    pencolor("black")
    fd(13.2)#横
    right(90)
    fd(918*0.66)#下
    right(90)
    ##框间距13.2
    fd(13.2)#横
    right(90)
    fd(92*0.66)
    for i in range(6):
        penup()
        fd(33)
        pendown()
        fd(75*0.66)
    penup()
    fd(50)
    right(90)
    fd(13.2)
    right(90)
    fd(918*0.66)
    left(90)

def first_floor_box():
    right(90)
    pendown()
    fillcolor('#E8E8E8')
    begin_fill()
    for i in range(2):#大框
        fd(65*0.66)
        left(90)
        fd(92*0.66)
        left(90)
    end_fill()
    left(90)
    fd(37*0.66)
    right(90)
    fillcolor('#00BFFF')
    begin_fill()
    for i in range(2):
        fd(65*0.66)
        left(90)
        fd(55*0.66)
        left(90)
    end_fill()
    pendown()
    fd(65*0.66)#一横
    penup()
    left(90)
    fd(45*0.66)
    left(90)
    pendown()
    fd(65*0.66)
    right(90)
    fd(10*0.66)
    right(90)
    fd(10*0.66)
    right(90)
    fd(55*0.66)
    left(90)
    fd(45*0.66)
    left(90)
    fd(55*0.66)
    right(90)
    fd(6.6)
    right(90)
    fd(92*0.66)
    left(90)

def small_box(width, height):
    left(90)
    fd(height)
    fillcolor('#F5F5F5')
    begin_fill()
    left(90)
    fd(width)
    pencolor("#E8E8E8")
    right(90)
    fd(33)
    right(90)
    fd(width)
    right(90)
    fd(33)
    pencolor("black")
    penup()
    right(90)
    fd(width)
    right(90)
    fd(33)
    end_fill()

    # left(90)
    # first_floor_box()

def element_1():
    left(90)
    first_floor_box()
    small_box(65*0.66,92*0.66)
    for i in range(5):
        box()
        small_box(65*0.66,75*0.66)
    box()
    left(90)
    fd(75*0.66)
    fillcolor('#F5F5F5')
    begin_fill()
    left(90)
    fd(65*0.66)
    pencolor("#E8E8E8")
    right(90)
    fd(50)
    right(90)
    fd(65*0.66)
    right(90)
    fd(50)
    pencolor("black")
    penup()
    right(90)
    fd(65*0.66)
    right(90)
    fd(50)
    end_fill()

def special_box():
    left(90)
    fd(92*0.66)
    left(90)
    fd(6.66*3)
    right(90)
    fd(33)
    pendown
    right(90)
    fd(6.66*3)
    for i in range(6):
        left(90)
        fd(75*0.66)
        left(90)
        fd(6.66*3)
        right(90)
        fd(33)
        right(90)
        fd(6.66*3)
    left(180)
    pencolor("white")
    fd(6.66*3)
    right(90)
    pencolor("black")
    fd(17)
    right(90)
    fd(6.66*3)
    right(90)
    fd(918*0.66)
    left(90)


def door(d,part):
    left(90)
    fd(92*0.66)
    right(90)
    fd(part*1.5)
    right(90)
    fd(92*0.66)
    right(180)
    fd(30*0.66)
    left(90)
    fd(part*1.5)
    right(180)
    fd(1.5*part*0.5)
    left(90)
    fd(62*0.66)
    right(90)
    fd(1.5*part*0.5)
  
def window(w):
    left(90)
    fd(w)
    right(90)
    fd(65*0.5)
    right(90)
    fd(w)
    right(180)
    fd(27*0.66)
    left(90)
    fd(60*0.5)
    right(180)
    fd(60*0.5*0.5)
    left(90)
    fd(25)
    right(90)
    fd(60*0.5*0.5)
    right(90)
    fd(w)
    left(90)
    fd(10)


def left_building():
    pendown()
    fillcolor('#F5F5F5')
    begin_fill()
    for i in range(2):#左竖柱
        fd(918*0.66)
        right(90)
        fd(6.66)
        right(90)
    right(90)
    end_fill()
    fd(6.66)
    #特殊间隔
    fd(6.66*3)
    special_box()
    #左建筑主体
    pillars_1()
    element_1()
    pendown()
    pencolor("black")
    right(90)
    fd(65*0.66)
    right(90)
    penup()
    fd(918*0.66)
    left(90)
    pillars_2()
    element_1()
    fd(1)
    for i in range(3):
        right(90)
        pendown()
        fd(65*0.66)
        right(90)
        fd(918*0.66)
        left(90)
        pillars_2()
        element_1()
    fd(1)
    right(90)
    pendown()
    fd(65*0.66)
    right(90)
    fd(918*0.66)
    left(90)
    pillars_2()
    right(90)
    pendown()
    fd(65*0.66-43)
    left(90)
    




def middle_building(w,d,part):
    fd(d)
    left(90)
    fd(92*0.66)
    left(90)
    fd(78.5)
    for i in range(5):
        door(d,part)
        right(90)
        fd(92*0.66)
        left(90)
    fd(78.5)
    left(180)
    fd(d-1)#
    left(90)
    fd(32.5)
    left(90)
    fd(d)
    left(180)
    fd(d)
    for i in range(5):
        left(90)
        fd(75*0.66)
        left(90)
        fd(20)
        for i in range(10):
            window(w)
        fd(10.5)
        right(180)
        fd(d)
        left(90)
        fd(32.5)
        left(90)
        fd(d-0.5)
        left(180)
        fd(d)
    left(90)
    fd(75*0.66)
    left(90)
    fd(20)
    for i in range(10):
        window(w) 
    fd(10.5)
    right(180)
    fd(d)
    left(90)
    fd(48.5)
    left(90)
    fd(d)
    right(180)
    fd(d)
    right(90)
    fd(918*0.66+1)
    left(90)
    
def right_building():
    pillars_1()
    element_1()
    pendown()
    pencolor("black")
    right(90)
    fd(65*0.66)
    right(90)
    penup()
    fd(918*0.66)
    left(90)
    pillars_2()
    element_1()
    for i in range(3):
        right(90)
        pendown()
        fd(65*0.66)
        right(90)
        fd(918*0.66)
        left(90)
        pillars_2()
        element_1()
    fd(1)
    right(90)
    pendown()
    fd(65*0.66)
    right(90)
    fd(918*0.66)
    left(90)
    pillars_2()
    pendown()
    pencolor("black")
    fd(6.66*3)
    left(90)
    for i in range(2):#右竖柱
        fd(918*0.66)
        right(90)
        fd(6.66)
        right(90)
    right(90)
    special_box()


def main(w,d,part):
    speed(0)
    delay(0)
    penup()
    pencolor("black")
    setup(1850,970)
    goto(-720,-330)
    seth(90)
    left_building()
    middle_building(w,d,part)
    right_building()
    library()
    hideturtle()

def library():
    penup()
    pencolor("gold")
    left(180)
    fd(640)
    right(90)
    fd(400)
    right(90)
    write("图", False, "center", font=("FangSong", 21, "bold"))
    fd(102.2)
    write("书", False, "center", font=("FangSong", 21, "bold"))
    fd(102.2)
    write("馆", False, "center", font=("FangSong", 21, "bold"))



w = 65*0.66
part = 60*0.66
d = 65*0.7*10
main(w,d,part)
效果图

在这里插入图片描述
应付学校要求,码个图校庆,感觉码得真烂。

  • 3
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值