我正在学习 C++,我一直在研究如何让两个球体彼此交互。我发现的大部分内容都非常复杂或者是实际的数学公式。是否有更简单的方法来创建一个函数,该函数可以识别球体的任何一边何时与另一边接触?我不是要求你做我的工作,但我真的很欣赏某种干净的视觉效果、伪代码或代码片段,这可以帮助我理解更多。或者也许是一些我还没有找到的链接?
谢谢!
最佳答案
检查球体中心之间的距离是否小于其半径之和。
class Sphere {
public:
double centerX, centerY, centerZ, radius;
// ....
};
double distanceBetween( const Sphere& a, const Sphere& b ) {
return sqrt( pow( a.centerX - b.centerX, 2 ) + pow( a.centerY - b.centerY, 2 ) + pow( a.centerZ - b.centerZ, 2 ) );
}
bool areColliding( const Sphere& a, const Sphere& b ) {
return distanceBetween( a, b ) < ( a.radius + b.radius );
}
关于geometry - C++ 检查两个球体相交/碰撞,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15377656/