Ball
互いに衝突する丸い物体を表すクラス
constructor(ps, x, y, vx, vy, m, c, r)
親クラスであるDynamicalObjectのコンストラクタを呼んだ後、自分を識別するために、this.isBallというプロパティをtrueに設定する。 interactionForce(to)
code:js
interactionForce(to) {
if( to.isBall == true ) {
var r=to.displacementFrom(this);
var rlens=r.lengthSquare();
var rlen=Math.sqrt(rlens);
var rr=this.r + to.r;
r.normalize();
var meri=rlen-rr;
if( meri >= 0 ) {
return new Force(new Vector(0,0));
} else {
return new Force(r.prod(-this.strength*meri*meri*meri));
}
}
return new Force(new Vector(0,0));
}
相手がBallであった場合に限り、接触していれば反発力を生じる。
strength
Ballの硬さを表す。デフォルトは1000。小さくするとめり込みが起きやすくなる。あまり大きくすると吹っ飛んでいってしまう。