


1.0.1 Variáveis

1.0.2 Desenhando polígonos

1.0.3 O que é indentação? - primeiro contato com setup() e draw()


1.1.0 Execução condicional (if/else), operadores relacionais e operadores lógicos

1.1.2 Qual a diferença entre = (atribuição) e == (comparação)?

1.1.3 Criando uma animação




1.2.0 Definindo novas funções

1.2.3 Modificando o sistema de coordenadas com translate(), rotate(), scale() e mais!

1.2.4 Funções recursivas e a recursividade no seu desenho

1.2.5 Primeiros passos de desenho em 3D - size(…, …, P3D)

1.3.0 Repetição com laços for



1.3.3 Mais sobre polígonos

1.3.4 Desenhando formas curvas

1.4.0 Tipos de valores como texto (strings) e números inteiros (int) ou de ponto flutuante (float)


1.4.4 O valor especial None
1.4.5 Números inteiros (int) e números de ponto flutuante (float)



1.5.2 Um botão simples

1.5.3 Arrastando círculos


1.5.5 Parando o draw()
2.1.1 Primeiros passos de orientação a objetos: usando a classe Slider





3.1.1 Métodos das listas



4.1.0 Mais sobre aleatoriedade e as diferenças ente o random do py5 e o do Python

4.1.1 Perlin Noise (ruído de Perlin) um tipo especial de número pseudoaleatório


4.3.1 Como usar seno sin(), cosseno cos() e arco tangente atan2()

4.4.1 Manipulando números com remap() e lerp() e também interpolando cores

4.5.1 O que é easing? - transições de movimento
4.6.1 Funções como argumentos de outras funções - sort() e funções lambda

4.7.1 Detectando a sobreposição de elementos geométricos - o problema das "colisões"

4.8.1 Desenhando em um espaço fora da tela (offscreen buffer)




6.2.1 Criando retículas a partir de amostras de pixels de image

6.2.2 Lendo todas as imagens da pasta data e sorteando uma

6.2.3 Lendo todas as imagens de uma pasta selecionada pela pessoa usuária (avançado)



7.1.1 Usando várias abas no IDE e importando código de outros módulos

7.1.2 Dicas para portar exemplos de Processing para Python com py5

7.1.3 Usando bibliotecas externas feitas para Processing Java
7.2.1 Manipulando a janela - Tela cheia, redimensionamento e múltiplas janelas


8.1.1 Módulos de Truchet - Azulejos e rotações

8.1.2 Jogo PONG - Estudos para o fazer um jogo
8.1.3 L-System - Sistema de Lindenmayer
8.1.4 Autômatos Celulares - Jogo da vida de Conway (Conway's Game of Life)

8.2.1 Lousa mágica - Desenho com Arduino e potenciômetros
8.2.2 Paper Objects with Processing and Python - Volumes para cortar e montar

8.2.3 Arc, tangents & Bezier studies - Como desenhar linhas tangentes entre arcos e polígonos com arredondamentos

8.2.4 Simulações física 2D com PyMunk - Pinball
• Para obter a biblioteca py5, que recomendamos para a versão mais recente deste material, siga as instruções de instalação usando Thonny IDE + plugin.
• O projeto pyp5js, que combina pyodide e p5js, pode ser usado a partir de um editor online, que na variante do link tenta adaptar os nomes das funções para que fiquem semelhantes aos da biblioteca py5.
• Você pode explorar outras opções em Resources-for-teaching-programming
Este material começou usando Processing modo Python, uma ferramenta com a sintaxe de Python dentro do Processing IDE, e que não é mais ativamente mantida. Por conta disso, a versão mais antiga do material, desenvolvida entre 2019 e 2022, não tem sido mais atualizada, permanecendo no entanto disponível aqui.
Este material didático pode ser modificado e usado para dar aulas. Leia as instruções para colaborar com este repositório e abra issues apontando problemas, sugerindo assuntos e melhorias, ou contribua com Pull Requests para o repositório.
Se você quer apoiar a continuidade deste projeto, que produz material didático aberto, faça um PIX 46c37783-5edb-4f1c-b3a8-1309db11488c, doação de qualquer valor aqui ou também com
Wise!
• Quebra-cabeças de Parsons com resultado visual
• Fanzines e pôsters desenho() """Para desenhar com código, para desenhar junto, com o computador e com outras pessoas!"""
• Desenhos diários com código: sketch-a-day
• NumPy para leigos[Trabalho em andamento]
Texto e imagens: © 2021-2025 Alexandre B A Villares - Licença CC BY-SA 4.0, para o material acrescentado a partir de 2022 (usando a biblioteca py5), exceto onde indicado, confira atribuições em cada página para materiais adaptados/remixados de outras fontes. Agradeço aos colaboradores do repositório que doam suas contribuições nestes termos!
Código: GNU GPL v3.0, exceto onde for indicado, por alguma razão.