让我们定义一个二维圆:
struct Vec2D
{
float x;
float y;
};
// Assume dot, normalize, length, sum, subtract, and scale to exist.
struct Circle2D
{
Vec2D center;
float radius;
};
给定两个圆,需要确定两个圆之间的0、1或2个交点:
bool circleVsCircleIntersection( const Circle& a, const Circle& b,
std::array<std::optional<Vec2D>,2>& intersPos);
如何在C++中确定两个圆的0、1或2个交点?