JavaScript
math

単振動とバネ

More than 3 years have passed since last update.

単振動に必要な要素は以下。

k  = 0.1;
x  = 0;
px = x;
ax = 0;
vx = 0;

k はばね定数。
ばねの強さを表し、値が大きいと固いばねになる。

以下のように動かす。

ax = (px - x) * k;
vx += ax;
x  += vx;

抗力(cd)がないと単振動になる。
抗力を加えると、ばねになる。

cd = 0.2;
k  = 0.1;
x  = 0;
px = x;
ax = 0;
vx = 0;

以下のように動かす。

ax = (px - x) * k;
ax -= cd * vx;
vx += ax;
x  += vx;

応用すると以下のような動きが表現できる。

http://codepen.io/ykob/details/XJqVVa/