- Crie um desenho geométrico de sua escolha (uma casa, um boneco, uma árvore, um símbolo, uma cerveja, etc.), podendo usar primitivas já implementadas, vistas na videoaula assíncrona (por exemplo: quadrado, polígono, arco ou círculo).
Você pode usar as funções disponíveis no turtle, como por exemplo:
- up()
- down()
- begin_fill()
- end_fill()
- color()
- goto()
- right()
- left()
- forward()
- backward()
- reset()
Passo 1
O que o enunciado pede: criar um desenho geométrico usando as primitivas do módulo turtle (por exemplo: quadrado, polígono, arco ou círculo) e as funções disponíveis como
Informações que temos: podemos usar as funções acima para traçar formas, preencher com cor e mover a “caneta” sem desenhar. Não foi exigido um desenho específico, então escolhi desenhar uma casa simples com: base (quadrado/retângulo), telhado (triângulo), porta (retângulo), duas janelas (quadrados com cruz), sol (círculo) e uma árvore ao lado (tronco retangular + copa circular).
up(), down(), begin_fill(), end_fill(), color(), goto(), right(), left(), forward(), backward(), reset().Informações que temos: podemos usar as funções acima para traçar formas, preencher com cor e mover a “caneta” sem desenhar. Não foi exigido um desenho específico, então escolhi desenhar uma casa simples com: base (quadrado/retângulo), telhado (triângulo), porta (retângulo), duas janelas (quadrados com cruz), sol (círculo) e uma árvore ao lado (tronco retangular + copa circular).
Passo 2
Entendendo o “ambiente” do turtle (aula rápida e necessária):
- O ponto
é o centro da janela do turtle. Coordenadas positivas em vão para a direita e em para cima. - A tartaruga começa em
apontando para a direita (leste). up()levanta a caneta — mover sem desenhar.down()abaixa a caneta — mover desenhando.goto(x,y)teleporta a tartaruga para(útil para posicionamento preciso). Quando a caneta está abaixada, gotodesenha uma linha.begin_fill()+end_fill()permitem preencher a área desenhada entre as chamadas com a cor de preenchimento.color(pen, fill)define a cor do traço (pen) e da área de preenchimento (fill).right(angle)eleft(angle)giram a tartaruga em graus.forward(dist)move a tartaruga para frente pordistunidades (pixels).backward(dist)move para trás.
Esses são os comandos que você usará na prova para desenhar formas com precisão ou para posicionar a tartaruga.
Passo 3
Planejamento do desenho (tamanhos e posições explícitas):
- Base da casa: retângulo que vai de
até — isso dá largura e altura . - Telhado: triângulo com vértices em
, e . (telhado um pouco maior que a base para sobrepor) - Porta: retângulo central na base indo de
até . - Janelas: duas janelas quadradas de lado
: esquerda com canto inferior esquerdo em , direita com canto inferior esquerdo em . Nas janelas vamos desenhar a cruz interna com duas linhas (vertical e horizontal). - Sol: círculo centrado em
com raio . - Árvore (à esquerda): tronco retangular de
até e copa com centro em e raio .
Eu escolhi coordenadas inteiras simples para que você consiga replicar tudo à mão na prova se precisar.
Passo 4
Começando o desenho: limpeza e posicionamento inicial.
- Use
reset()para limpar e voltar ao estado inicial. Isso garante que a tela e a tartaruga comecem limpas. - Sempre que for posicionar a tartaruga sem desenhar, use
up()antes edown()depois. Ex.: para começar a desenhar a base da casa, vá paracom a caneta levantada.
Conceito didático:reset()zera tudo;up()/down()são seus amigos para ir “teletransportando” sem rabiscar no caminho.
Passo 5
Desenhando a base da casa (retângulo). Passo a passo didático:
- Posicione a tartaruga em
com up()egoto. - Abaixe a caneta com
down(). Escolha cor de traço e preenchimento, por exemplocolor('black','lightyellow'). - Inicie preenchimento com
begin_fill(). - Trace os vértices do retângulo usando
gotoem sequência:, , , e volte para . - Termine o preenchimento com
end_fill().
Explicação conceitual: desenhar comgotoe fechar o laço antes deend_fill()cria uma área fechada que será preenchida.
Passo 6
Desenhando o telhado (triângulo). Passo a passo didático:
- Posicione em
com up()+goto. down(), escolhacolor('black','firebrick')para um telhado vermelho.begin_fill(), entãogoto(0,150),goto(120,50)egoto(-120,50)para fechar o triângulo.end_fill().
Dica de prova: para triângulos use trêsgotoem sequência; manter as coordenadas escritas ajuda a evitar erros.
Passo 7
Desenhando a porta (retângulo menor). Passo a passo:
up()egoto(-20,-100).down().color('black','sienna').begin_fill().goto(20,-100),goto(20,20),goto(-20,20),goto(-20,-100).end_fill().
Observação: a porta está centralizada na base — isso facilita o cálculo rápido de coordenadas na prova.
Passo 8
Desenhando as janelas e a cruz nelas (dois quadrados com linhas internas). Para cada janela:
- Janela esquerda:
up()para, down(),color('black','skyblue'),begin_fill(),goto(-40,-10),goto(-40,30),goto(-80,30),goto(-80,-10),end_fill(). - Depois desenhe a cruz:
up()para e canto superior direito em.
Ensino rápido: preencher primeiro, depois traçar linhas internas com a caneta; quando você usagotocom a caneta abaixada, a linha aparece.)
Passo 9
Desenhando o sol (círculo) e alguns raios (opcional). Procedimento:
up()para, down().color('orange','gold').begin_fill().- Use a primitiva
circle(30)para desenhar o sol com raio. end_fill(). - Se quiser raios, levante a caneta, mova ligeiramente para fora do círculo e desenhe pequenas linhas com
forward/backward+left/right. (No código abaixo eu deixei só o círculo para simplicidade.)
Comentário: a primitivacircle(r)desenha um círculo de raio. É a forma mais simples de desenhar o sol.
Passo 10
Desenhando a árvore (tronco + copa). Passo a passo:
- Tronco:
up()para, down(),color('black','saddlebrown'),begin_fill(),goto(-150,-100),goto(-150,10),goto(-180,10),goto(-180,-100),end_fill(). - Copa:
up()para, down(),color('black','forestgreen'),begin_fill(),circle(35),end_fill().
Didática: para formas arredondadas (folhagem), a primitivacircleé mais rápida; para tronco, use polígono simples.
Passo 11
Acabamentos e boas práticas para a prova:
- Sempre verifique se usou
begin_fill()antes de desenhar a forma fechada eend_fill()depois. Esquecer um desses dá erro visual. - Use
up()sempre que for reposicionar sem querer uma linha no desenho. - Escreva as coordenadas no rascunho da prova antes de digitar — evita erros.
- Se precisar de um elemento simétrico (duas janelas), calcule uma coordenada e some/subtraia um valor constante para obter a outra (ex.: janela direita = janela esquerda +
no eixo ). - Para testar localmente copie o código abaixo num arquivo
.pye execute. A janela do turtle deve mostrar a casa.
Resposta
import turtle
t = turtle
t.reset()
t.reset()
Base da casa
t.up()
t.goto(-100, -100)
t.down()
t.color(‘black’, ‘lightyellow’)
t.begin_fill()
t.goto(100, -100)
t.goto(100, 50)
t.goto(-100, 50)
t.goto(-100, -100)
t.end_fill()
t.goto(-100, -100)
t.down()
t.color(‘black’, ‘lightyellow’)
t.begin_fill()
t.goto(100, -100)
t.goto(100, 50)
t.goto(-100, 50)
t.goto(-100, -100)
t.end_fill()
Telhado
t.up()
t.goto(-120, 50)
t.down()
t.color(‘black’, ‘firebrick’)
t.begin_fill()
t.goto(0, 150)
t.goto(120, 50)
t.goto(-120, 50)
t.end_fill()
t.goto(-120, 50)
t.down()
t.color(‘black’, ‘firebrick’)
t.begin_fill()
t.goto(0, 150)
t.goto(120, 50)
t.goto(-120, 50)
t.end_fill()
Porta
t.up()
t.goto(-20, -100)
t.down()
t.color(‘black’, ‘sienna’)
t.begin_fill()
t.goto(20, -100)
t.goto(20, 20)
t.goto(-20, 20)
t.goto(-20, -100)
t.end_fill()
t.goto(-20, -100)
t.down()
t.color(‘black’, ‘sienna’)
t.begin_fill()
t.goto(20, -100)
t.goto(20, 20)
t.goto(-20, 20)
t.goto(-20, -100)
t.end_fill()
Janela esquerda
t.up()
t.goto(-80, -10)
t.down()
t.color(‘black’, ‘skyblue’)
t.begin_fill()
t.goto(-40, -10)
t.goto(-40, 30)
t.goto(-80, 30)
t.goto(-80, -10)
t.end_fill()
t.goto(-80, -10)
t.down()
t.color(‘black’, ‘skyblue’)
t.begin_fill()
t.goto(-40, -10)
t.goto(-40, 30)
t.goto(-80, 30)
t.goto(-80, -10)
t.end_fill()
Cruz na janela esquerda
t.up()
t.goto(-60, -10)
t.down()
t.goto(-60, 30)
t.up()
t.goto(-80, 10)
t.down()
t.goto(-40, 10)
t.goto(-60, -10)
t.down()
t.goto(-60, 30)
t.up()
t.goto(-80, 10)
t.down()
t.goto(-40, 10)
Janela direita
t.up()
t.goto(40, -10)
t.down()
t.color(‘black’, ‘skyblue’)
t.begin_fill()
t.goto(80, -10)
t.goto(80, 30)
t.goto(40, 30)
t.goto(40, -10)
t.end_fill()
t.goto(40, -10)
t.down()
t.color(‘black’, ‘skyblue’)
t.begin_fill()
t.goto(80, -10)
t.goto(80, 30)
t.goto(40, 30)
t.goto(40, -10)
t.end_fill()
Cruz na janela direita
t.up()
t.goto(60, -10)
t.down()
t.goto(60, 30)
t.up()
t.goto(40, 10)
t.down()
t.goto(80, 10)
t.goto(60, -10)
t.down()
t.goto(60, 30)
t.up()
t.goto(40, 10)
t.down()
t.goto(80, 10)
Sol
t.up()
t.goto(170, 140)
t.down()
t.color(‘orange’, ‘gold’)
t.begin_fill()
t.circle(30)
t.end_fill()
t.goto(170, 140)
t.down()
t.color(‘orange’, ‘gold’)
t.begin_fill()
t.circle(30)
t.end_fill()
Árvore - tronco
t.up()
t.goto(-180, -100)
t.down()
t.color(‘black’, ‘saddlebrown’)
t.begin_fill()
t.goto(-150, -100)
t.goto(-150, 10)
t.goto(-180, 10)
t.goto(-180, -100)
t.end_fill()
t.goto(-180, -100)
t.down()
t.color(‘black’, ‘saddlebrown’)
t.begin_fill()
t.goto(-150, -100)
t.goto(-150, 10)
t.goto(-180, 10)
t.goto(-180, -100)
t.end_fill()
Árvore - copa
t.up()
t.goto(-165, 60)
t.down()
t.color(‘black’, ‘forestgreen’)
t.begin_fill()
t.circle(35)
t.end_fill()
t.goto(-165, 60)
t.down()
t.color(‘black’, ‘forestgreen’)
t.begin_fill()
t.circle(35)
t.end_fill()
t.up()
t.goto(0, -200)
t.down()
t.goto(0, -200)
t.down()
turtle.done()