我不明白如何用巨蟒和海龟正确绘制房子。我尝试了几种方法,但房子总是有错误的线路通往其他地方。你能帮忙画一个有门和窗的小房子吗?我有关于这幅画的考试。
# veido majas pirmo stavu
k.fillcolor('cyan')
k.begin_fill()
k.right(90)
k.forward(250)
k.left(90)
k.forward(400)
k.left(90)
k.forward(250)
k.left(90)
k.forward(400)
k.right(90)
k.end_fill()
# veido majas jumtu
k.fillcolor('brown')
k.begin_fill()
k.right(45)
k.forward(200)
k.right(90)
k.forward(200)
k.left(180)
k.forward(200)
k.right(135)
k.forward(259)
k.right(90)
k.forward(142)
k.end_fill()
# for door and
# windows
y.right(90)
y.forward(400)
y.left(90)
y.forward(50)
y.left(90)
y.forward(150)
y.right(90)
y.forward(200)
y.right(90)
y.forward(150)
y.right(90)
y.forward(100)
y.right(90)
y.forward(150)
y.right(90)
y.forward(100)
y.right(90)
y.forward(75)
y.right(90)
y.forward(200)
y.right(180)
y.forward(200)
y.right(90)
y.forward(75)
y.left(90)
y.forward(15)
y.left(90)
y.forward(200)
y.right(90)
y.forward(15)
y.right(90)
y.forward(75)
实际上,房子是由一个三角形和一个正方形组成的。因此,只需谷歌或 stackoverflow 搜索如何用乌龟绘制正方形和三角形,然后尝试将它们(2 个形状)链接在一起。希望这可以帮助!如果没有,请阅读文档 (https://docs.python.org/3/library/turtle.html) 并了解如何正确移动乌龟。在画任何东西之前,尝试想象房子的形状(在哪里左转、右转或 45 度)并计算出您想要每边的长度。
注意:最好不要从网上复制任何代码,尽力而为,利用文档自己画出来。这样你就能提高你的乌龟绘画技巧和抽象想象力:)
这应该给你一个完美的房子!太可爱了! 进口龟
#方中
turtle.fillcolor('米色')
turtle.pencolor('黑色')
turtle.begin_fill()
海龟.forward(100)
海龟.右(90)
海龟.forward(100)
海龟.右(90)
海龟.forward(100)
海龟.右(90)
海龟.forward(100)
turtle.end_fill()
#方形屋顶
turtle.fillcolor('棕色')
turtle.pencolor('黑色')
turtle.begin_fill()
海龟.右(45)
海龟.forward(80)
海龟.right(18)
海龟.右(80)
海龟.forward(76)
turtle.end_fill()
#右矩形
turtle.fillcolor('米色')
turtle.pencolor('黑色')
turtle.begin_fill()
海龟.右(-54)
海龟.forward(150)
海龟.右(90)
海龟.forward(100)
海龟.右(92)
海龟.forward(150)
turtle.end_fill()
海龟.右(90)
海龟.forward(100)
海龟.左(90)
海龟.forward(30)
海龟.左(90)
海龟.forward(52)
海龟.右(90)
海龟.forward(180)
海龟.右(90)
海龟.forward(100)
海龟.右(90)
海龟.forward(150)
海龟.左(120)
海龟.fd(40)
海龟.左(60)
海龟.fd(110)
海龟.左(60)
海龟.fd(40)
海龟.左(30)
海龟.fd(100)
海龟.左(90.8)
海龟.fd(150)
海龟.左(90)
海龟.fd(96)
海龟.rt(90)
海龟.fd(100)
海龟.左(60)
海龟.fd(40)
海龟.rt(60)
海龟.fd(110)
海龟.rt(58)
海龟.fd(40)
海龟.rt(30)
海龟.fd(100)
海龟.rt(91.8)
海龟.fd(150)
海龟.fd(40)
海龟.左(60)
海龟.fd(100)
海龟.rt(60)
海龟.fd(30)
海龟.rt(118)
海龟.fd(103)
turtle.penup()
海龟.goto(-130,-20)
turtle.pendown()
海龟.rt(65)
海龟.fd(40)
海龟.rt(90)
海龟.fd(40)
海龟.rt(90)
海龟.fd(40)
海龟.rt(90)
海龟.fd(40)
乌龟.完成
我猜你对 pyhton 不是很熟悉,我临时编写了一个小程序来为你做这件事,你可以尝试修改它并研究海龟文档以使其执行你想要的操作,同时它有一个很好的功能起点:)
import turtle
t = turtle.Turtle()
# for background
screen = turtle.Screen()
screen.bgcolor("white")
#color and speed
# of turtle
t.color("black")
t.shape("turtle")
t.speed(10)
# base of the house
t.fillcolor('grey')
t.begin_fill()
t.right(90)
t.forward(250)
t.left(90)
t.forward(400)
t.left(90)
t.forward(250)
t.left(90)
t.forward(400)
t.right(90)
t.end_fill()
# for top of
# the house
t.fillcolor('red')
t.begin_fill()
t.right(45)
t.forward(282)
t.right(90)
t.forward(282)
t.right(45)
t.end_fill()
# windows
t.right(90)
t.forward(400)
t.left(90)
t.forward(50)
t.left(90)
t.forward(150)
t.right(90)
t.forward(200)
t.right(180)
t.forward(200)
t.fillcolor('white')
t.begin_fill()
t.right(90)
t.forward(200)
t.right(90)
t.forward(150)
t.right(90)
t.forward(200)
t.right(90)
t.forward(150)
t.right(90)
t.forward(100)
t.end_fill()
t.right(90)
t.forward(150)
t.right(90)
t.forward(100)
t.right(90)
t.forward(75)
t.right(90)
t.forward(200)
t.right(180)
t.forward(200)
# for door
t.right(90)
t.forward(75)
t.left(90)
t.forward(15)
t.left(90)
t.forward(200)
t.right(90)
t.forward(15)
t.right(90)
t.forward(75)
t.fillcolor('brown')
t.begin_fill()
t.circle(10)
t.end_fill()
t.forward(120)
试试这个。
from turtle import *
# veido majas pirmo stavu
k = Turtle()
k.speed(10)
k.penup()
k.goto(-200,0)
k.pendown()
k.fillcolor('cyan')
k.begin_fill()
k.right(90)
k.forward(250)
k.left(90)
k.forward(400)
k.left(90)
k.forward(250)
k.left(90)
k.forward(400)
k.right(90)
k.end_fill()
# veido majas jumtu
k.fillcolor('brown')
k.begin_fill()
k.right(45)
k.forward(200)
k.right(90)
k.forward(200)
k.end_fill()
k.color('#205375')
k.begin_fill()
k.left(180)
k.forward(200)
k.right(135)
k.forward(259)
k.right(90)
k.forward(142)
k.setheading(180)
k.forward(120)
k.end_fill()
k.hideturtle()
# windows
y = Turtle()
y.speed(10)
y.penup()
y.goto(-200,200)
y.right(90)
y.forward(400)
y.left(90)
y.forward(50)
y.pendown()
y.left(90)
y.forward(150)
y.right(90)
y.forward(200)
y.right(90)
y.forward(150)
y.right(90)
y.forward(100)
y.right(90)
y.forward(150)
y.right(90)
y.forward(100)
y.right(90)
y.forward(75)
y.right(90)
y.forward(200)
y.right(180)
y.forward(200)
y.right(90)
y.forward(75)
y.left(90)
y.backward(200)
y.hideturtle()
z = Turtle()
z.penup()
z.speed(10)
z.goto(-90,40)
z.pendown()
z.forward(50)
z.setheading(90)
z.forward(50)
z.setheading(180)
z.forward(50)
z.setheading(270)
z.forward(50)
z.setheading(0)
z.forward(25)
z.setheading(90)
z.forward(50)
z.setheading(180)
z.forward(25)
z.setheading(270)
z.forward(25)
z.setheading(0)
z.forward(50)
z.hideturtle()
s =Screen()
s.listen()
def func(e,t):
print(e,t)
s.onclick(func,btn=1)
x = Turtle()
x.speed(10)
x.penup()
x.goto(110,140)
x.begin_fill()
x.fillcolor('#205375')
x.setheading(90)
x.forward(50)
x.setheading(0)
x.forward(20)
x.setheading(270)
x.forward(50)
x.end_fill()
x.hideturtle()
done()