Rect :: contains(Point)或Point :: is_inside(Rect)

4 api math symmetric

API应该提供Rect :: contains(Point)还是Point :: is_inside(Rect)或两者?或Math :: contains(Point,Rect)导致它是对称的?

相同的Q适用于LineSegment :: contains(Point),Rect :: fully_contains(Circle)等.

kmk*_*lan 8

Rect::contains(Point)因为它是一个积木,所以最有意义.另一个并不是必需的,因为您希望每个特定的形状都能实现操作,而Point不必知道每个可能的形状.同样的答案也适用LineSegment.

关于它之间的关系,使用大多数面向对象的框架并且没有任何确定的答案Circle,Rect它更棘手.像CLOS这样的其他一些面向对象的方式通过使用泛型函数和方法来实现它,使其成为一个非问题.