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.4.1 Como usar seno sin()
, cosseno cos()
e arco tangente atan2()
4.5.1 Manipulando números com remap()
e lerp()
e também interpolando cores
4.6.1 O que é easing? - transições de movimento
4.7.1 Funções como argumentos de outras funções - sort()
e funções lambda
4.7.2 Detectando a sobreposição de elementos geométricos - o problema das "colisões"
4.7.3 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.2.1 Dicas para portar exemplos de Processing para Python com py5
7.3.1 Manipulando a janela - Tela cheia, redimensionamento e múltiplas janelas
Módulos de Truchet - Azulejos e rotações
Jogo PONG - Estudos para o fazer um jogo
L-System - Sistema de Lindenmayer
Autômatos Celulares - Jogo da vida de Conway (Conway's Game of Life)
Lousa mágica - Desenho com Arduino e potenciômetros
Paper Objects with Processing and Python - Volumes para cortar e montar
Arc, tangents & Bezier studies - Como desenhar linhas tangentes entre arcos e polígonos com arredondamentos
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.