Quero simular uma corda com um peso preso, balançando para frente e para trás como um pêndulo. Qualquer física real é um exagero; é apenas repetir sem parar o mesmo movimento.
O JQuery possui uma facilidade de "balanço" semelhante ao que estou procurando. Como funciona?
Eu estava pensando em girar de um ângulo para outro com Math.easeOutExpo
, mas os pêndulos reais facilitam de maneira diferente ...
cocos2d-iphone
rotation
easing
mjanisz1
fonte
fonte
Respostas:
Bem, você terá que usar um pouco de física, mas não precisa simular nenhuma física. Existem fórmulas para o movimento do pêndulo que você pode usar facilmente para definir a rotação do seu pêndulo. Para pequenas oscilações, o movimento pode ser aproximado com um simples movimento harmônico .
O deslocamento angular em um momento específico pode ser aproximado com:
Isso é mais preciso para um pequeno θ máximo, mas provavelmente será preciso o suficiente para seus propósitos. Crie uma função que leva o tempo atual e gera o ângulo para o qual seu pêndulo deve ser girado e gire seu sprite nessa quantidade.
fonte
Aqui está um cálculo sem trigonometria, derivado do Trig 11 e da Física de Grau 11. Ele assume que a origem é o ponto mais baixo da suspensão do pêndulo, que L é o comprimento do pêndulo e que é adotada a convenção gráfica normal de y aumentando para baixo ex de aumento para a direita:
Atualização: Eu errei o yAcceleration inicialmente; isso é mais fácil.
Atualização 2 : Adicionado controle de tempo explícito e unidades de medida adicionadas.
fonte