如何在cbuilder中实现三个小球碰撞的程序

来源:百度知道 编辑:UC知道 时间:2024/05/28 15:42:31
在C++Builder中实现
相互碰撞的小球交换相互速度(完全弹性碰撞)
鼠标拖拽窗口 随着窗口的增大或减小 小球的大小和速度(速度的模)随机变化

可以使用以下函数//x,y分别表示小球水平和竖直的速度
bool collision(TShape* sh1, TShape* sh2) {
float x1 = sh1->Left + sh1->Width/2.0;
float y1 = sh1->Top + sh1->Height/2.0;
float x2 = sh2->Left + sh2->Width/2.0;
float y2 = sh2->Top + sh2->Height/2.0;
if (sqrt((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2)) <= sh1->Width/2.0 + sh2->Width/2.0)
return true;
else
return false;
}

各位帮帮忙啊 满意有更多的分数相送

三个小球碰撞的程序?
只要知道三个小球的初始化状态,如果有摩擦系数就乘一下,没有就不用乘了,记住被撞球的接触点,然后算出与初始球的摩擦角度和摩擦系数,然后让球滚动起来就可以了!