hinekure.net が http://hspdev-wiki.net/ から自動クローリングした結果を表示しています。画像やリソースなどのリンクが切れています。予めご了承ください。 |
飛行機などのようにスピードが速い場合の空気抵抗は慣性抵抗の影響を大きくうけます。
<法則>~
b011.as
|
|
というわけで、今回の追加分はここ〜。
;空気抵抗(慣性抵抗) if vx<0 : hvx =-1 if vx>0 : hvx = 1 if vy<0 : hvy =-1 if vy>0 : hvy = 1 ax -= vx*vx *cd/100 /2/m * hvx ay -= vy*vy *cd/100 /2/m * hvy
cd/100は慣性抵抗係数ぐらいに考えてください。
小数点以下を使うために1/100倍しています。
慣性抵抗の力の大きさは
F = -1/2 * Cd * ρ * v*v * s
で求められます。
ρは空気密度、sは代表面積、cdは抗力係数でものの形と風に対する向きで決まります。。
速度が2倍になると抵抗4倍。
面積が2倍になると抵抗2倍。
同じ物体が同じ空間にあるなら、ρ、s、は変化しない。
という感じです。
Cdが結構くせもので、風に対する物体の向きによってかわります。この曲線は物体の形で決まります。
平べったいものがあったとして、それを面積の広いほうを風に向ければCdは大きくなるし、
面積の小さいほうを風に向ければCdは小さくなります。
えーっと非常に分かりにくい説明ですが、つまり、球体(ボール)ならどの方向を向いてもCdは同じです。
ゲームぐらいなら深く考えず、球体じゃなくてもCd一定と考えて問題ないでしょう。
加速度は…
F = -1/2 * Cd * ρ * v*v * s = ma -1/2 * Cd * ρ * v*v * s / m = a - v*v * (Cd * ρ * s) /2 / m = a
と、こんな感じ。
おまけ機能
cl = 1:ay -= vx*vx *cl/100 /2/m ;おまけ…揚力もどき
揚力が発生する方向がいい加減です。
横に移動すると上方向に揚力が発生します。
そのまま実行しても慣性抵抗の影響はほとんど見えません。
粘性抵抗と地面の摩擦抵抗を無効にして地面を水平に加速しつづけると見やすいと思います。