introdução à programação funções matemáticas 1º semestre 2009 > pucpr > design...
Post on 16-Apr-2015
105 Views
Preview:
TRANSCRIPT
Introdução à ProgramaçãoFunções Matemáticas
1º Semestre 2009 > PUCPR > Design Digital
Bruno C. de PaulaBruno C. de Paula
Resumo da aula
O objetivo hoje é conhecer algumas funções matemáticas e sua aplicação na programação gráfica;
311/04/23
Motivação
Vamos ver que tipo de arredondamentos, comparações, restrições, comparações e transformações podem ser feitas com números e onde tais operações se aplicam em situações reais de:–Movimentação;– Desenho;– Texturização;– Etc.
411/04/23
Sintaxe introduzida:comparação entre números
min (en/pt): obtém o mínimo entre 2 ou 3 números;
max (en/pt): obtém o máximo entre 2 ou 3 números;
511/04/23
Sintaxe Introduzida:restrições de valor
abs (en/pt): retorna valor absoluto de um número;
ceil (en/pt): arredonda para cima;floor (en/pt): arredonda para baixo;round (en/pt): arredondamento para o
inteiro mais próximo;constrain (en/pt): restringe um valor a
um intervalo;
611/04/23
Sintaxe introduzida:normalização, mapeamento e interpolação
Operações de “regra de 3”;norm (en/pt): Normaliza. Transforma
um número de um intervalo para outro entre 0 e 1;
map (en/pt): Mapeia. Converte um número de um intervalo para outro;
lerp (en/pt): Interpola. Calcula um número entre 2 em um intervalo específico.
711/04/23
Sintaxe introduzida:geração de números aleatóriosrandom (en/pt): devolve um valor
pseudo-aleatório;randomSeed (en/pt): escolhe a raiz do
número aleatório;noise (en/pt): devolve valor de ruído de
Perlin;noiseSeed (en/pt): ajusta a raiz do
ruído de Perlin;noiseDetail (en/pt): ajusta o detalhe do
ruído de Perlin.
811/04/23
Sintaxe introduzida:expoentes e raízes
sq (en/pt): Retorna o quadrado de um número;
sqrt (en/pt): Calcula a raiz quadrada de um número;
pow (en/pt): Devolve um número elevado a um expoente (potência).
911/04/23
Sintaxe introduzida:funções diversas
dist (en/pt): Calcula a distância entre 2 pontos;
mag (en/pt): Calcula o comprimento de um vetor. Mesmo que dist(0,0,x,y);
exp (en/pt): Retorna e (2.71...) elevado à uma potência;
log (en/pt): Calcula o logaritmo neperiano de um número;
1011/04/23
Restrições e comparaçõesmin, max, abs, ceil, floor, round
float a = min(2.3, 3.1); // valor mínimoprintln(a); // Exibe 2.3;float b = max(2.3, 3.1); // valor máxprintln(b); // Exibe 3.1;float c = abs(-12); // valor absolutoprintln(c); // Exibe 12.0 float d = ceil(12.2); // arredonda cimaprintln(d); // Exibe 13
1111/04/23
constrain (valor, mínimo, máximo)
int f = constrain(5, 10, 20);println(f); // Exibe 10int g = constrain(30, 10, 20);println(g); // Exibe 20
Útil para restringir movimento do mouse;
1211/04/23
Mouse restringido via constrain
1311/04/23
Normalização
Regra de três;Conversão de um valor para um
intervalo entre 0 e 1;float h = norm(0, 0, 255);println(h); // Exibe 0;float i = norm(127, 0, 255);println(i); // Exibe 0.49...float(j) = norm(255, 0, 255);println(j); // Exibe 1.
1411/04/23
Normalização
1511/04/23
Mapeamento
Regra de três;Conversão de um valor de um intervalo
para outro;float k = map(20, 0, 100, 0, 255);println(k); // Exibe 51.0
1611/04/23
Mapeamento
1711/04/23
Mapeamento
1811/04/23
Mapeamento e restrição (1)
1911/04/23
2011/04/23
Geração de números pseudo-aleatórios
Permite que se dê a ilusão da remoção do determinismo de um programa;
random(min, max):–Retorna um número pseudo-aleatório
entre os 2 intervalos;float m = random(-10,10);println(m); // Não sei! Com certeza
exibe um número entre -10 e 10
2111/04/23
Pontos aleatórios
2211/04/23
Linhas aleatórias
2311/04/23
Retângulos aleatórios
2411/04/23
+ Linhas aleatórias
2511/04/23
Movimento Browniano
top related