我想到了以下几种选择:
1. bool getIntersectionPoint(Line& a, Line& b, Point& result); 如果直线平行则返回false。否则返回true,并将结果写入变量。
2. Point getIntersectionPoint(Line& a, Line& b); 如果直线平行,则抛出异常。
[更新] 如果我们制作两个函数bool doLinesIntersect(const Line&, const Line&)和Point twoLinesIntersection(const Line&, const Line&),第二个函数仍然可以在第一个函数返回false后调用。
calculateIntersectionPoint
或类似的名称。还有第三种可能性:返回一个特殊值,表示不存在交点。在Java中,你可以返回null
。在C++中,这可以是一个std::pair<bool,Point>
(我不会返回一个指针)。 - Axel