If you're seeing this message, it means we're having trouble loading external resources on our website.

Se você está atrás de um filtro da Web, certifique-se que os domínios *.kastatic.org e *.kasandbox.org estão desbloqueados.

Conteúdo principal

Oscilação com velocidade angular

O conhecimento dos conceitos de oscilação, amplitude e frequência/período geralmente é necessário para o curso de simulação de comportamentos do mundo real. No entanto, há uma maneira um pouco mais fácil de reescrever o exemplo acima e obter o mesmo resultado. Vamos dar uma olhada na nossa fórmula de oscilação mais uma vez:
var x = amplitude * sin(TWO_PI * frameCount / period);
Agora vamos reescrevê-la de um modo um pouco diferente:
var x = amplitude * sin(algum valor que aumenta lentamente);
Se nos importamos em definir precisamente o período de oscilação em termos de quadros de animação, poderíamos precisar da fórmula na maneira em que a escrevemos pela primeira vez, mas podemos simplesmente reescrever nosso exemplo usando o conceito de velocidade angular (e aceleração) da lição de Movimento Angular. Considerando:
var angle = 0;
var aVelocity = 0.03;
...em draw(), podemos dizer simplesmente que:
angle += aVelocity;
var x = amplitude * sin(angle);
...em que angle é o nosso “algum valor que aumenta lentamente.”
Aqui nosso programa modificado:
Só porque não há uma referência direta a ele, não quer dizer que eliminamos o conceito de período. Afinal, quanto maior a velocidade angular, mais rapidamente o círculo oscilará (reduzindo, então, o período). Na verdade, o número de vezes necessárias para aumentar a velocidade angular até chegar a TWO_PI é igual ao período ou:
período = TWO_PI / velocidade angular
Vamos expandir um pouco esse exemplo e criar um objeto Oscillator. E vamos supor que a oscilação ocorra junto ao eixo x (como acima) e ao eixo y. Para isso, vamos precisar de dois ângulos, duas velocidades angulares e duas amplitudes (um para cada eixo). Another perfect opportunity for PVector!
Leia o código abaixo:

Este curso "Natural Simulations" é um derivado do "The Nature of Code" por Daniel Shiffman, usado sob a Creative Commons Attribution-NonCommercial 3.0 Unported License.

Quer participar da conversa?

Nenhuma postagem por enquanto.
Você entende inglês? Clique aqui para ver mais debates na versão em inglês do site da Khan Academy.