动量守恒计算

package cn.d
{
import flash.display.Sprite;
import flash.events.Event;

public class Billiard1 extends Sprite
{
private var ball10:Ball;
private var ball11:Ball

public function Billiard1()
{

init();
}

private function init():void
{

ball10=new Ball(20);
ball10.x=50;
ball10.y=stage.stageHeight/2;
ball10.mass=2;
ball10.vx=1;

this.addChild(ball10)

ball11=new Ball(30);
ball11.x=300;
ball11.y=stage.stageHeight/2;
ball11.mass=1;
ball11.vx=-1;

this.addChild(ball11)

this.addEventListener(Event.ENTER_FRAME,onEnterFrame);
}

private function onEnterFrame(e:Event):void
{
ball10.x+=ball10.vx;
ball11.x+=ball11.vx;

var dic:Number=ball11.x-ball10.x;

if(Math.abs(dic)<ball10.radius+ball11.radius)
{
var v0:Number=((ball10.mass-ball11.mass)*ball10.vx+2*ball11.mass*ball11.vx)/(ball10.mass+ball11.mass);
var v1:Number=((ball11.mass-ball10.mass)*ball11.vx+2*ball10.mass*ball10.vx)/(ball10.mass+ball11.mass);

ball10.vx=v0;
ball11.vx=v1;

ball10.x+=ball10.vx;
ball11.y+=ball11.vy;

}
}
}
}

 

转载于:https://www.cnblogs.com/ndljava/archive/2012/02/29/2374419.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值