使用turtle画房子

coagenth 2019-01-28 11:23:41
刚学python,做了一个练习,是画出地点和大小随机的几个小房子。
代码如下:



#houses.py
#draw houses
from turtle import *
from random import randrange
def base(x,y,width,height):
penup()
goto(x,y)
pendown()
fillcolor('brown')
begin_fill()
fd(width)
left(30)
fd(width/3)
left(60)
fd(height)
end_fill()
penup()
goto(x+width,y)
pendown()
fillcolor('blue')
begin_fill()
fd(height)
left(90)
fd(width)
left(90)
fd(height)
left(90)
fd(width)
end_fill()
penup()
goto(x,y)
def roof(x,y,width,height):
seth(90)
penup()
fd(height)
right(45)
pendown()
fillcolor('black')
begin_fill()
fd(width/3)
right(45)
fd(width)
right(135)
fd(width/3)
end_fill()
penup()
bk(width/3)
left(80)
pendown()
fillcolor('brown')
begin_fill()
fd(width/9)
seth(-90)
right(60)
fd(width/3)
end_fill()
penup()
goto(x,y)
def door(x,y,width,height):
penup()
seth(0)
goto(x+3/8*width,y)
left(90)
fillcolor('red')
pendown()
begin_fill()
fd(2/3*height)
right(90)
fd(1/4*width)
right(90)
fd(2/3*height)
right(90)
end_fill()
penup()
fd(1/4*width)
right(90)
fd(1/3*height)
right(90)
fd(5)
pendown()
fillcolor('pink')
begin_fill()
circle(5)
end_fill()
penup()
goto(x,y)
def windows(x,y,width,height):
goto(x+1/8*width,y+1/2*height)
pendown()
seth(0)
fillcolor('cyan')
begin_fill()
for i in range(4):
fd(1/8*width)
left(90)
end_fill()
fd(1/16*width)
fillcolor('pink')
begin_fill()
circle(width/16)
end_fill()
penup()
goto(x+3/4*width,y+1/2*height)
pendown()
seth(0)
fillcolor('cyan')
begin_fill()
for i in range(4):
fd(1/8*width)
left(90)
end_fill()
fd(1/16*width)
fillcolor('pink')
begin_fill()
circle(width/16)
end_fill()
penup()
goto(x,y)
hideturtle()

def main():
i=0
x=[-300,-200,-100,0,100,200,300]
y=[-300,-200,-100,0,100,200,300]
while i <7:
#x=randrange(-300,300,100)
width=randrange(100,300,50)
height=randrange(50,200,40)
base(x[i],y[i],width,height)
roof(x[i],y[i],width,height)
door(x[i],y[i],width,height)
windows(x[i],y[i],width,height)
i+=1
main()
exitonclick()






...全文
730 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

249

社区成员

发帖
与我相关
我的任务
社区描述
其他产品/厂家
社区管理员
  • 其他
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧