25
Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

Embed Size (px)

Citation preview

Page 1: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

Introdução à ProgramaçãoFunções Matemáticas

1º Semestre 2009 > PUCPR > Design Digital

Bruno C. de PaulaBruno C. de Paula

Page 2: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

Resumo da aula

O objetivo hoje é conhecer algumas funções matemáticas e sua aplicação na programação gráfica;

Page 3: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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.

Page 4: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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;

Page 6: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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.

Page 8: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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).

Page 9: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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;

Page 10: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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

Page 11: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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;

Page 12: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1211/04/23

Mouse restringido via constrain

Page 13: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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.

Page 14: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1411/04/23

Normalização

Page 15: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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

Page 16: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1611/04/23

Mapeamento

Page 17: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1711/04/23

Mapeamento

Page 18: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1811/04/23

Mapeamento e restrição (1)

Page 19: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

1911/04/23

Page 20: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

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

Page 21: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

2111/04/23

Pontos aleatórios

Page 22: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

2211/04/23

Linhas aleatórias

Page 23: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

2311/04/23

Retângulos aleatórios

Page 24: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

2411/04/23

+ Linhas aleatórias

Page 25: Introdução à Programação Funções Matemáticas 1º Semestre 2009 > PUCPR > Design Digital Bruno C. de Paula

2511/04/23

Movimento Browniano