Функции within
и contains
являются взаимными функциями. a contains
b , если и только если, b равно within
a .Исходный код C ++ говорит то же самое:
bool
Geometry::within(const Geometry* g) const
{
return g->contains(this);
}
Функции crosses () и intersects () имеют разную реализацию.
Согласно этой странице документации , пересечения возвращают истину, если дизъюнкт возвращает ложь, а непересекающийся предикат означает, что две геометрии не имеют общей точки.Мы можем заключить, что пересечение означает, что две геометрии имеют по крайней мере одну общую точку.
С другой стороны, предикат пересечения означает, что геометрия имеет некоторые, но не все внутренние точки, общие.Что является более строгим, чем предикат пересечения.