O que é indentação?
A palavra indentação também significa ‘recuo’, veja este exemplo de uma lista de compras relativamente organizada:
comes:
pão
cebola
abacate
alho
bebes:
chá mate
sucos:
maçã
uva
laranja
refrigerantes:
água tônica
O espaço que faz os itens ficarem ‘dentro’ das categorias é a indentação. Exatamente da mesma maneira, em Python, criamos blocos de código que estão ‘dentro’ de estruturas. Note os dois pontos(:
) antes de um bloco indentado na lista de compras.
Essa sintaxe com o espaço de indentação, e com :
, vai ser usada em inúmeras estruturas de Python, como if
/elif
/else
, nos laços de repetição for
e while
, na definição de funções com def
, entre outras.
Animando uma estrela com o movimento do mouse
Vamos ver agora um exemplo que precisa de indentação, avançando um pouco em ideias cujos detalhes você pode retomar depois na página sobre movimento e interatividade.
A função setup()
e a função draw()
Você vai ler mais para frente sobre as definições de funções, e como o py5 chama (aciona) essas funções para você. Por enquanto, encare como uma forma de organização do código que você vai imitar.
Podemos reorganizar o código anterior mostrado no primeiro contato com polígonos colocando os configurações iniciais (setup), como size(200, 200)
, dentro da definição de função def setup():
, e a parte que desenha (draw) dentro de def draw():
.
A função setup()
vai ser executada apenas uma vez no começo, e a função draw()
fica repetindo sem parar, permitindo o movimento. Dentro do draw()
a linha background(0, 0, 200)
pinta o fundo de azul, mas também apaga o desenho do quadro anterior.
Repare como a indentação é o que determina o que está dentro de cada função.
def setup():
size(400, 400)
def draw():
background(0, 0, 200) # para limpar a área de desenho
x, y = width / 2, height / 2 # coordenadas do centro
a = mouse_x / 4 # `a` é calculado dividindo o X do mouse por 4
b = mouse_y / 4 # `b` é calculado dividindo o Y do mouse por 4
begin_shape() # começa a desenhar o polígono
vertex(x - a, y - a)
vertex(x - b, y)
vertex(x - a, y + a)
vertex(x, y + b)
vertex(x + a, y + a)
vertex(x + b, y)
vertex(x + a, y - a)
vertex(x, y - b)
end_shape(CLOSE) # garante que o polígono é fechado
Assuntos relacionados
- Movimento e interatividade com
setup()
edraw()
- Criando uma animação
- Definição de funções
- Estrelas de muitas pontas com laços de repetição
while
- Você pode ver usos mais avançados de
begin_shape()
na referência. - Você pode montar os vértices a partir de estruturas de dados com laços de repetição ou fazer polígonos com furos